<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:appf="http://www.appfolio.com/20210331"
  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:srt="http://fasb.org/srt/2020-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="appf-20210331.xsd" xlink:type="simple"/>
    <context id="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i931ddc5edbb0466e9147adb89742ef8e_I20210503">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-05-03</instant>
        </period>
    </context>
    <context id="i9d13ea6a91704fc183d4b7ef772feb2b_I20210503">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-05-03</instant>
        </period>
    </context>
    <context id="i635e6530a71a4760b9634c24c8e0488e_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i7f861f95aaa4485db7c1f9e9696b0914_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i38eabc6dfb5d446e914a8905b93aa34e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="ic2b6e7144aef4567943a3a11935b30d1_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i8dbf1a62272248c7b08551e20c2c13d6_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i931d921531874cdd95f81970c8b3bb76_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="idb0728129351425ab29acae152f83774_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i65a1b1a73dd64792af7cc07483f944a1_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ibb96168342fc4b498c5f6efa712d3f1e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i967c72beb44942dc84827f76207fcf3f_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i3740dc01d1584de1bcf22ab1e64c9881_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="ic9e9bfa7c798422c93f0b85099ce07d7_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i898a2ca79de94b52a9c793fece4385a4_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <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="i80fdaa3fec154535a228af391364db4f_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i259226573f4e4d64bf08578228754421_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <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="i53deb20019504d0f9c97c540e1c7c66c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="ide7755334b2045109c83d8673993ecb5_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i5abdc356b66f468db4d10458087106eb_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i800ff75dd710478989b4f9f81ac9fa66_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i23d019a6c71b46ac834284e5d7498b30_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i077a596c2f264be6add73e66a5ede514_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i4c370ac5a59c462ea2edac4615fdde56_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i259186ec079d43959f0f7d53a9aca77f_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="ic6c665330dcf4d8dac69968ce9623485_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i8183eb76e7974025a3c95a3f3cf00909_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i4727ba2c4b664fc4876086fad0f7c4cf_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i9944fb89b8404fd58bdd9f58fbb4a936_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i3f7121b7115d465c964000eb8cb7787e_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="ib3f478ab4f86436097faa2d4cf8ae206_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i30680d57921f46cca32b4a4373a6f822_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ibcde0ebffc914587b4369bbbf5b69ed1_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <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="ia653299662a6468facb1d4d165ad7d5f_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="icbeba9bbe6804ffe8c16e0201ff1295e_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <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="i39e170a1c4304c7bbab26b177517b793_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i2dc0c6f5e70e45c39feb68d4b177123b_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i02688f260ef043d1ad480abae9c7ea67_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i298659119ab446649be582e5828c214b_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="iaadbf78a230c49ee827589d156433a11_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i8acfc0733a3f4f57a85e09267c6938b4_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="ia17d00b7af9d4bfc89083a42eac62529_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i5917be22d1b040609b994c7a2c39b243_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i667afa8805384549aff508c6231abd24_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i24143d6170294c59802a646f48726e7f_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i800a5cc605a0440e9d17fd631415111d_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i7817ed2641854ed4b22b7d8bef612862_I20200930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">us-gaap:DiscontinuedOperationsDisposedOfBySaleMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">appf:MyCaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-09-30</instant>
        </period>
    </context>
    <context id="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">us-gaap:DiscontinuedOperationsDisposedOfBySaleMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">appf:MyCaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-09-30</startDate>
            <endDate>2020-09-30</endDate>
        </period>
    </context>
    <context id="i0b70899ca415492cb8ad553e1f13279c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">us-gaap:DiscontinuedOperationsDisposedOfBySaleMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">appf:MyCaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i69f36b85de384d5fbf27d5b5185918f8_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="id65901dd4b7d4f7d8bf92290398fb15f_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i0fc1f66404e84254b4f4c7d4fcf05722_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i11aa534b2d37424f895f1c77357a509e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i4f7c634b450249acaa90e2a45a33cd82_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i06c8a0a91fad45cd9a4ab34082448f9f_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i73ab109a54284d329c4f3bec6438b8ea_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i35cef8df26bf47049a15bf0847dd0125_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i5d74baa48317444e9c6f95e16455ff74_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="ic94d8bbf87d34bddb6c93882a918b928_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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-03-31</instant>
        </period>
    </context>
    <context id="i2c23f5709d11456e90f2d877a922572a_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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-03-31</instant>
        </period>
    </context>
    <context id="i1d61f244cb6a40c4bc5691fe17e90549_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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-03-31</instant>
        </period>
    </context>
    <context id="i9fdfa55fe70b4d6185f4788214ba3a7f_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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-03-31</instant>
        </period>
    </context>
    <context id="i00cc48af21d7409db36d0ca5f02f4f7b_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i613ee02027a942fe8231cf45cde01adb_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i2a392b7b591b457db4999e8fc0097e8d_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i01e19b7552de4890ac0bade9ff9e6a1b_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="id6a2cd937a9f4730ab39f971b8525a73_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="ic81c0f7b7b66450e8c1a158efefa8363_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i36d10a93db9d40e2b80e1053262f6382_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i5ffb734058bf4a96a68d2e835183d0c3_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="iae573f58db2e4920b8bcf028e3435064_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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-03-31</instant>
        </period>
    </context>
    <context id="i9578ad87f2f14ba58dc5cd58d21250b7_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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-03-31</instant>
        </period>
    </context>
    <context id="i4607f63e36d84185ba51044860075c4f_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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-03-31</instant>
        </period>
    </context>
    <context id="i387b8916a1bd4ef5aa6b1c2c109cfaec_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i1c5d3099e5fd4cc2aaf25ec4dc6ba748_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="ieb4ad5fe3c1e4a8eb4e87f33b12d4afc_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i970b80f5a4f04759b28d46d3ddb9332b_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i769c770b42be419895d9f447f8d6d202_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i63a4ceaa647c403c9bfc6a0aab373169_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ie4ae85eb247c46c5af0758b3070a1974_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id132ac6f7fe24965ae30aa6e0e08f408_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i3eac005ccb664f00b36420871eae2733_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i578c364eace945cc820f6d46db6d31e2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i4c3dc887b4354977b963755f697b212f_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i40c7fbfcf49c4fe8a20f78cfc944e664_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i2f2103f8ff7c4239b2fb0ec75381077d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AgencySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib4fe8d81e71244849a9ff69f034cdbb9_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i73bec1f40b4e42c8b41413d48dd32138_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="iea53e50a790040f990a5ee51f8a359e2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</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="i1c799d512ae642fe89ca816aa780fb01_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1f515c1d5f4e449596f9fe0774a8ebbe_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="ie45cb110dd894e6691a4edd226a91600_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i02dd1508050e46f5bfcbb5ec1908fa73_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="ie5594103a4ac4978b847eab68323a98c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i8a38f4ea8cfd4bd18a6022c9a1535306_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i794ade7e17e14ea8833b9e6d1cd6c0ed_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="iba00f44b29434eebba0ade523d792b6e_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i6986141104ab49f0b238b438506ae3d5_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ic1f8ad49d2e44ac696abce4c685a7238_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i403125465a484061aedca6ba16497fb6_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i42e518339a6742278596e07b3b36f3be_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="ifcf81b14983d4a3693a595f27c4f86da_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ie50c0fed9a8449bb91ec264ba05efb0d_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i79d6e60bb6424295877e6d242d0558b7_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i657b595e48f14234a90b5c789dfcc341_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i5d0c75c36042417a90ecc699f5150883_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i57d1edb6fd694c5eb93b0d3e8847784f_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ibe7bf4f6741d48679e25ab5e30275c7e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i0a6714623c494b4e9f641f9896af1494_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if256fa3cacc642ef92d2746910907837_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="icb4b13bcc67446b1a428ee271bbc78e5_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:DatabaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i7f9207a4061542b69ec413b1dddcba45_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="icdcac6ae490b4056b3377d424be69e25_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i5a0e15f9969a4afaa4ba54ec59c4c8cd_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i8f992a927e654c7ebdd5f776da884482_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i7b8e10d4f46c44b4ac702d7756148b24_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ie208dfeef02c44b6825ee8bcdf9226f9_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">appf:PartnerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4e4e6327e2874b84b508813378794580_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i37d8ee84ee0e4666ad60f8f12b8dd569_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i6518ddfa4bf74d25942e5e864e16d1b2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i93f6742a61454df08ad32ac309806308_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InternetDomainNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iec180219106e45e6af3eec319621e05d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i3572891b549a4765a637dda00e5af17d_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i5d33d38a9d164ea4ae13f334b62a29f0_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i6299d707fcb74d328a949706b600c055_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">appf:A2021ThreeYearPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i33b5b227d36a4943b49577cc41648801_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i54fafaa58c5c41048d8e9486ec8b0082_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i2edf86b7299041a68aa5951ffff47f0c_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i4eddba29b7b9468d9ad9afa56e582415_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i2d190838ada546598501d0ffc4de110d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i4b76d1c744ec410db795a9dc8b009095_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i27aaa5f9bf324fcb8c2d2898edab3ed2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i0d92483a60644f21ae8cc77df6f9ae80_D20210112-20210112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2021-01-12</startDate>
            <endDate>2021-01-12</endDate>
        </period>
    </context>
    <context id="if660ffeee8e54e9ca14bd0f8a4a7eae6_I20190220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2019-02-20</instant>
        </period>
    </context>
    <context id="iff21c8e8ea6d4156a4b12de485b88580_D20190220-20190220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2019-02-20</startDate>
            <endDate>2019-02-20</endDate>
        </period>
    </context>
    <context id="if61f4ecd59824e1f8ac6376b2bd84e98_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsAndPerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsAndPerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="id2bf981b3e8646b289972785b7090e83_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsAndPerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i6443509fe8e74228952ad0b143b20249_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ic6283d9c85654df08aaf6b70ae4300a3_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ie53d84ff2b18432e919ad8d6059265d1_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i071591bb1d02470ca6c3794013bd7688_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="id4cdde30de004fa39274465d4942a7bb_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i3c7fe50865414c098fed44f005cd2003_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="if6326b166eaf4dbc848381986636c7a5_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="iac5ac3d75bc34ca9acd338d9e4e7a904_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i3e718a89a21f4871bb41f14f91df5114_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i1a4cbeb855fa49fd900bcd764558a7b8_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id0f33375b06f41bfaa2f68a8b353c96b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id37b41dc18a44c4aa6ca721057e0e367_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedIn2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ie059f6e1f8514b8c94ea712adc6bf49a_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i76be600d6cf244d7ab0a2acf0216ec1c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ie34c26484a5946f0bccf659fb94983f2_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ic3fd27dbd8b6473ea50061407c0a0102_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i422ff5997ef349659f50b6202920da6f_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i9e0bba87a8b94ff28780f71beb33028b_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i7f7ccb2f4f05412f862bdb284f68d001_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i0d12051190ea43838c36099224c90564_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="ice1ed6b626de410d887ec3709797d4fc_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i8d238e24f713423cb56edbdf6dc23e00_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ia111bb0a0b3a4c0f9cf1d28d1caf1e3b_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsGrantedin2019and2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="id52525154a5d47939f73e961852c3a22_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsAndPerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="ibd15762db7f14da5a84eda8c00f75ddf_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i6fb93ee5bc804b959fe72d82708efc26_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i662134dd647b4b289b2df565fdfa7671_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i69c3a9c030b74bbd86bce8b42fde8ed9_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i14a9817040a545e6b69734f0ad6a5b86_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:CoreSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i1019431fe3a24913a662757b12e40dbb_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:CoreSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="iba9c2e9b64c7492e924b5c4e83a64843_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:ValuePlusServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i63ef8fa16dbd4936a4a127f3d966aafa_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:ValuePlusServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="iaf9a7990b8be46ffbf026a530ab6fcb8_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:OtherServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i77c0bbd14c304df98447be25902481f7_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:OtherServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i4ba4266e73fb470c85113cfae72f5d77_D20210405-20210510">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-05</startDate>
            <endDate>2021-05-10</endDate>
        </period>
    </context>
    <context id="i5366fc6513a5461c87163ae37d852ceb_I20210405">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-04-05</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>
    <unit id="director">
        <measure>appf:director</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180L2ZyYWc6M2U3MGZkOTE3ZmZhNDRmOThhZDZkZWJlMDMyZTZjYjEvdGFibGU6MWM5NTFjMDY4YzlhNGQ4NGFlMTliZGJjYjQ3ZDRhZDUvdGFibGVyYW5nZToxYzk1MWMwNjhjOWE0ZDg0YWUxOWJkYmNiNDdkNGFkNV8yLTEtMS0xLTA_e17ca136-947b-4a10-89aa-683795e0d112">0001433195</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180L2ZyYWc6M2U3MGZkOTE3ZmZhNDRmOThhZDZkZWJlMDMyZTZjYjEvdGFibGU6MWM5NTFjMDY4YzlhNGQ4NGFlMTliZGJjYjQ3ZDRhZDUvdGFibGVyYW5nZToxYzk1MWMwNjhjOWE0ZDg0YWUxOWJkYmNiNDdkNGFkNV8zLTEtMS0xLTA_ef29b6dd-362d-4baa-960b-bbd0ff8eedc6">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180L2ZyYWc6M2U3MGZkOTE3ZmZhNDRmOThhZDZkZWJlMDMyZTZjYjEvdGFibGU6MWM5NTFjMDY4YzlhNGQ4NGFlMTliZGJjYjQ3ZDRhZDUvdGFibGVyYW5nZToxYzk1MWMwNjhjOWE0ZDg0YWUxOWJkYmNiNDdkNGFkNV83LTEtMS0xLTA_11647fdc-b450-4aeb-aa1a-2a6519d2c3fc">2021</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180L2ZyYWc6M2U3MGZkOTE3ZmZhNDRmOThhZDZkZWJlMDMyZTZjYjEvdGFibGU6MWM5NTFjMDY4YzlhNGQ4NGFlMTliZGJjYjQ3ZDRhZDUvdGFibGVyYW5nZToxYzk1MWMwNjhjOWE0ZDg0YWUxOWJkYmNiNDdkNGFkNV84LTEtMS0xLTA_579698ff-6993-4c02-829b-10f9276a7ce2">Q1</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180L2ZyYWc6M2U3MGZkOTE3ZmZhNDRmOThhZDZkZWJlMDMyZTZjYjEvdGFibGU6MWM5NTFjMDY4YzlhNGQ4NGFlMTliZGJjYjQ3ZDRhZDUvdGFibGVyYW5nZToxYzk1MWMwNjhjOWE0ZDg0YWUxOWJkYmNiNDdkNGFkNV85LTEtMS0xLTA_ab669162-14d8-4111-9fdf-c7af612826b0">false</dei:AmendmentFlag>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i33b5b227d36a4943b49577cc41648801_I20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMTA5OTUxMTYzMDUxOQ_3c6926ba-5b41-44b8-aa76-73ac90cfebef">P1Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <dei:DocumentType
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzIy_3a246d50-a521-48eb-a451-1f47cce5774f">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzE4_171af015-a009-4621-816d-efd29bae5104">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yNzQ4Nzc5MDcxNzkz_f292d166-3964-45c6-980c-5c02c2b15614">2021-03-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzI3_b3872886-aa90-4136-b737-3e86cda49a76">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzE5_a0e3437a-2585-4151-90b8-42b3a65edfdb">001-37468</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzIz_481d04bd-e1a3-457d-bf4d-a04157a942b1">AppFolio, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6ODdkNmYxNWI4ODAyNGRiYjg1MWI4OGNhYTAzODJjNjgvdGFibGVyYW5nZTo4N2Q2ZjE1Yjg4MDI0ZGJiODUxYjg4Y2FhMDM4MmM2OF8wLTAtMS0xLTA_89eef69e-7757-49d1-a41d-49ee597d0624">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6ODdkNmYxNWI4ODAyNGRiYjg1MWI4OGNhYTAzODJjNjgvdGFibGVyYW5nZTo4N2Q2ZjE1Yjg4MDI0ZGJiODUxYjg4Y2FhMDM4MmM2OF8wLTQtMS0xLTA_1de12a7c-960b-4b1e-a406-66b6303a102a">26-0359894</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6ODdkNmYxNWI4ODAyNGRiYjg1MWI4OGNhYTAzODJjNjgvdGFibGVyYW5nZTo4N2Q2ZjE1Yjg4MDI0ZGJiODUxYjg4Y2FhMDM4MmM2OF8zLTAtMS0xLTA_caf51c31-136f-4045-959c-b90ffa83b0a1">50 Castilian Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressPostalZipCode
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6ODdkNmYxNWI4ODAyNGRiYjg1MWI4OGNhYTAzODJjNjgvdGFibGVyYW5nZTo4N2Q2ZjE1Yjg4MDI0ZGJiODUxYjg4Y2FhMDM4MmM2OF8zLTQtMS0xLTA_1e91dd3e-224e-4477-8559-e43217b4f68a">93117</dei:EntityAddressPostalZipCode>
    <dei:EntityAddressCityOrTown
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6ODdkNmYxNWI4ODAyNGRiYjg1MWI4OGNhYTAzODJjNjgvdGFibGVyYW5nZTo4N2Q2ZjE1Yjg4MDI0ZGJiODUxYjg4Y2FhMDM4MmM2OF80LTAtMS0xLTA_e2047002-8d81-4b0f-85ae-0d1b3e4df414">Santa Barbara,</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6ODdkNmYxNWI4ODAyNGRiYjg1MWI4OGNhYTAzODJjNjgvdGFibGVyYW5nZTo4N2Q2ZjE1Yjg4MDI0ZGJiODUxYjg4Y2FhMDM4MmM2OF80LTItMS0xLTA_a4bf4585-b11b-4e8c-b6d7-756236c893a6">CA</dei:EntityAddressStateOrProvince>
    <dei:CityAreaCode
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzI0_14a3d0dd-fde2-46e8-a26a-109c06dcd080">805</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzI1_b4725b10-f510-4061-9e07-1149ad6e925d">364-6093</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6MDVmMWRkOGJiYzk0NDRlNGI2ZTE0Yjg2OWI0NDEyMjUvdGFibGVyYW5nZTowNWYxZGQ4YmJjOTQ0NGU0YjZlMTRiODY5YjQ0MTIyNV8xLTAtMS0xLTA_c90e1e5c-9753-4d6c-a269-08287a292e21">Class A Common Stock, $0.0001 par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6MDVmMWRkOGJiYzk0NDRlNGI2ZTE0Yjg2OWI0NDEyMjUvdGFibGVyYW5nZTowNWYxZGQ4YmJjOTQ0NGU0YjZlMTRiODY5YjQ0MTIyNV8xLTEtMS0xLTA_63821e08-3440-4494-a49e-9678aded532c">APPF</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6MDVmMWRkOGJiYzk0NDRlNGI2ZTE0Yjg2OWI0NDEyMjUvdGFibGVyYW5nZTowNWYxZGQ4YmJjOTQ0NGU0YjZlMTRiODY5YjQ0MTIyNV8xLTItMS0xLTA_15100871-7d3a-4ece-9883-c2463007143a">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzIw_ee5ad66b-bcc7-49b9-a4fe-fb66aefd4fa2">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzI2_9930fe30-4e2f-4e53-8e14-a2714d37c475">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6NzVlNTdmNGUyNGFjNGY0NGI2MDg3Y2ZiZjgxMmZlNGEvdGFibGVyYW5nZTo3NWU1N2Y0ZTI0YWM0ZjQ0YjYwODdjZmJmODEyZmU0YV8wLTAtMS0xLTA_d4fd9087-688a-4a1c-a9a8-b365ab6e876f">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6NzVlNTdmNGUyNGFjNGY0NGI2MDg3Y2ZiZjgxMmZlNGEvdGFibGVyYW5nZTo3NWU1N2Y0ZTI0YWM0ZjQ0YjYwODdjZmJmODEyZmU0YV8yLTUtMS0xLTA_8ffd1199-4fa5-42e9-88ca-0522cc32859f">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGFibGU6NzVlNTdmNGUyNGFjNGY0NGI2MDg3Y2ZiZjgxMmZlNGEvdGFibGVyYW5nZTo3NWU1N2Y0ZTI0YWM0ZjQ0YjYwODdjZmJmODEyZmU0YV80LTUtMS0xLTA_9bb8beb6-c8e9-469f-a6b3-27701bf5cdc6">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzIx_ba8b809e-8cf6-4159-853a-dead3768cef0">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i931ddc5edbb0466e9147adb89742ef8e_I20210503"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMjMx_8c2f0f51-590c-4ccc-aeaa-c13f3d850995"
      unitRef="shares">18951445</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i9d13ea6a91704fc183d4b7ef772feb2b_I20210503"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xL2ZyYWc6MWUxZWU1MjUwZjZjNGQxZmIyOGJhMTEwYmU2MDQzNjIvdGV4dHJlZ2lvbjoxZTFlZTUyNTBmNmM0ZDFmYjI4YmExMTBiZTYwNDM2Ml8yMzE2_c0ff32bd-589f-4997-8508-d8aef940f2e6"
      unitRef="shares">15550875</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMy0yLTEtMS0w_e5fcc751-61e0-4ced-b075-3261b4a17dce"
      unitRef="usd">44744000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMy00LTEtMS0w_6301a85a-f2a0-4510-9c5b-1253b9dab536"
      unitRef="usd">140263000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNC0yLTEtMS0w_fcf59205-6d99-49ac-babb-a932310eba8d"
      unitRef="usd">103341000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNC00LTEtMS0w_80bd61a9-6db2-48a5-8e64-d847bba40499"
      unitRef="usd">28256000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNS0yLTEtMS0w_329cac76-adcf-417e-bd31-6acd33ff2dcb"
      unitRef="usd">12524000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNS00LTEtMS0w_0ede4272-aff7-464e-b542-e8eb19f7d711"
      unitRef="usd">10057000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNi0yLTEtMS0w_1ec117c7-1c40-4a6a-b748-261cc3deb4ab"
      unitRef="usd">20843000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNi00LTEtMS0w_7d3b5d98-d164-4000-9f35-b2895720e41f"
      unitRef="usd">20777000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNy0yLTEtMS0w_1fe1fa9f-5c11-45d5-95e0-df962d0423b3"
      unitRef="usd">181452000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNy00LTEtMS0w_232c626f-5e5a-4153-b4e2-005c92b5395d"
      unitRef="usd">199353000</us-gaap:AssetsCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfOC0yLTEtMS0w_52556e53-35e1-40b7-a07a-36fbdce08638"
      unitRef="usd">11806000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfOC00LTEtMS0w_725741d3-b91f-4683-a034-c7e15e8e7b59"
      unitRef="usd">6770000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfOS0yLTEtMS0w_5f92b5a1-b1db-4a29-8e72-4e42cef7c2c6"
      unitRef="usd">26530000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfOS00LTEtMS0w_94d24a88-ce3f-42dd-88d6-5465ede3fd13"
      unitRef="usd">26439000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTAtMi0xLTEtMA_183d1499-94d5-4ce0-88fb-d8dfd8a07c9f"
      unitRef="usd">30021000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTAtNC0xLTEtMA_17cf735d-225d-46ff-bc04-b55cdbaddb7d"
      unitRef="usd">30561000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTEtMi0xLTEtMA_e88e0070-aa5a-49d0-aff4-1a683e99ce11"
      unitRef="usd">37554000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTEtNC0xLTEtMA_ebca7971-9c0c-4155-8268-aebbf454e927"
      unitRef="usd">35459000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:Goodwill
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTItMi0xLTEtMA_099204df-7357-4cd8-955f-a8369e5f9da3"
      unitRef="usd">56147000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTItNC0xLTEtMA_bcd52592-e016-4e01-8d47-85b73d7bd4d7"
      unitRef="usd">56147000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTMtMi0xLTEtMA_9f05b260-495f-425b-ba64-25e6bcf60ccb"
      unitRef="usd">15170000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTMtNC0xLTEtMA_b69a4212-1b1c-41f4-ae7e-4d382bfc6563"
      unitRef="usd">16357000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTQtMi0xLTEtMA_59e90cbb-6d95-44db-8f1d-96f4e04a6d20"
      unitRef="usd">13401000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTQtNC0xLTEtMA_9dc2a0d0-dc77-4672-885d-e699dca05509"
      unitRef="usd">12181000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTUtMi0xLTEtMA_29667b42-1301-4d78-aa21-461695146c38"
      unitRef="usd">6616000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTUtNC0xLTEtMA_cf6a0011-f866-44ad-8144-e7ad408bad55"
      unitRef="usd">6213000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTYtMi0xLTEtMA_dbca7c72-5c6b-46a1-9d55-888646a1ef8c"
      unitRef="usd">378697000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTYtNC0xLTEtMA_bb2c9500-59ef-44d8-9df6-1fab244bc97d"
      unitRef="usd">389480000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTktMi0xLTEtMA_946fd20e-f495-4eff-b3e8-95a05f206f0c"
      unitRef="usd">2262000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMTktNC0xLTEtMA_6b593ce5-a8a7-4575-bbe0-8d70981adf3e"
      unitRef="usd">1040000</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjAtMi0xLTEtMA_a56ad2c0-2ca6-48c8-8db4-ffa82f6839f1"
      unitRef="usd">20050000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjAtNC0xLTEtMA_64015014-3efe-480e-ac5f-8a0cd664059a"
      unitRef="usd">18888000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjEtMi0xLTEtMA_cb85bf67-5c67-4dd7-94ff-9d96d142b5af"
      unitRef="usd">10231000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjEtNC0xLTEtMA_85045846-fbdd-495d-a194-c644f7db28cb"
      unitRef="usd">14069000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjItMi0xLTEtMA_9ce8012d-741a-48d8-b910-ea18382432ba"
      unitRef="usd">3135000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjItNC0xLTEtMA_71b9da10-7d83-40b3-b1c7-9d9804c0f5b1"
      unitRef="usd">2262000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:TaxesPayableCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjMtMi0xLTEtMA_0782c4cd-3bbb-4a1d-b756-8c2522716415"
      unitRef="usd">2601000</us-gaap:TaxesPayableCurrent>
    <us-gaap:TaxesPayableCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjMtNC0xLTEtMA_2eaf084c-efbd-430a-822e-c1369877a9ea"
      unitRef="usd">9095000</us-gaap:TaxesPayableCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjQtMi0xLTEtMA_2bfee7df-1917-460c-ba6c-3ce85652381a"
      unitRef="usd">4758000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjQtNC0xLTEtMA_b7edac31-3060-4e7e-812b-3970ed2fab06"
      unitRef="usd">4451000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjYtMi0xLTEtMA_0cff5b56-2f3b-4714-a448-242a7213b8c3"
      unitRef="usd">43037000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjYtNC0xLTEtMA_b03dd678-cddf-4722-b7d8-6a6d0706c715"
      unitRef="usd">49805000</us-gaap:LiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjgtMi0xLTEtMzk4OQ_dc45b619-1bda-4079-ae7e-d645bc684e36"
      unitRef="usd">1172000</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjgtNC0xLTEtMzk4OQ_2e91b852-cdac-4d79-afbd-1cdd40e53e7f"
      unitRef="usd">0</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjctMi0xLTEtMA_8bba9681-7284-4f29-a69f-49af8703454d"
      unitRef="usd">39598000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMjctNC0xLTEtMA_a945c675-b7e6-440a-a735-66573f05a111"
      unitRef="usd">40146000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzAtMi0xLTEtMA_787c0e6e-0db4-4d9f-b447-131db36bccef"
      unitRef="usd">9106000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzAtNC0xLTEtMA_6f231dfc-87d5-43ee-b166-b18dc40e4c22"
      unitRef="usd">13609000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:Liabilities
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzItMi0xLTEtMA_9b517b31-149d-4822-ab4d-aa0faa7b347d"
      unitRef="usd">92913000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzItNC0xLTEtMA_eed36bd4-d33a-4152-8e81-f080db7a5e73"
      unitRef="usd">103560000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzMtMi0xLTEtMA_b110f82e-78c2-43d9-b31f-0086875507a1"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzMtNC0xLTEtMA_41ac5114-207d-4b41-86b2-1cdcc51e59dd"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTcwMw_169d18c4-6f0e-48f2-b84f-b57476a78826"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTcwMw_31db80f4-f347-4a45-a00c-c803ebda2c58"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTcxMg_3b6b7f38-5d4d-4541-9bf8-d36474692739"
      unitRef="shares">25000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTcxMg_eac331aa-ed45-4e73-a26c-3029caa19ce2"
      unitRef="shares">25000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTc1NA_39156a73-970b-475f-ba43-f23baa50efc5"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTc1NA_696c479e-f3de-463d-b95f-c18de8e3de57"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTc1NA_7363779b-2971-4291-a010-65a8bdb59d27"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMC0xLTEtMTI5L3RleHRyZWdpb246MjA1ZWU4ODk3MjY3NDU1MWJjMTVhMzg1NDYwOWM0YWZfMjE5OTAyMzI1NTc1NA_9de6da0d-7bb2-411b-b645-3070747d2272"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValue
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtMi0xLTEtMA_1657bba9-1a30-4fe4-b981-f7d244e99d71"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzUtNC0xLTEtMA_cb7e9610-1cf4-4a22-882e-6b1fbd9f86be"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i38eabc6dfb5d446e914a8905b93aa34e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTU5Njg_50b58faa-2370-4b2c-b800-643f48ee46f0"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="ic2b6e7144aef4567943a3a11935b30d1_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTU5Njg_75ea4b87-f782-4a9d-a92e-91a23900a374"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i38eabc6dfb5d446e914a8905b93aa34e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTU5Nzg_158a6bcb-6952-46ea-ac5a-3a84d296d62d"
      unitRef="shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ic2b6e7144aef4567943a3a11935b30d1_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTU5Nzg_b7b386a3-d264-4448-88a2-feba9b138663"
      unitRef="shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="ic2b6e7144aef4567943a3a11935b30d1_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTU5ODc_8e4c632d-6688-4910-b55c-9f37fa5d215f"
      unitRef="shares">19321000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="i38eabc6dfb5d446e914a8905b93aa34e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTU5OTY_a0ad2fe8-8390-4511-82e8-2bc57178228b"
      unitRef="shares">19148000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ic2b6e7144aef4567943a3a11935b30d1_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTYwMDU_e9f238dc-98ba-43e6-aa97-b2ee54080df9"
      unitRef="shares">18902000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i38eabc6dfb5d446e914a8905b93aa34e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMC0xLTEtMC90ZXh0cmVnaW9uOmZkYzYxNjA5NTVlOTQ2ZmQ5ZjI3YWQyMmY4N2UwZjBkXzIxOTkwMjMyNTYwMTQ_84319877-4c97-4a4f-a4ea-7c38a76ccc19"
      unitRef="shares">18729000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="ic2b6e7144aef4567943a3a11935b30d1_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtMi0xLTEtMA_bd4d3ff8-2bba-40da-ae29-5c3896437a76"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i38eabc6dfb5d446e914a8905b93aa34e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzYtNC0xLTEtMA_138bf4d1-86be-4e2b-af74-7e11dcde6e13"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i8dbf1a62272248c7b08551e20c2c13d6_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4NTA_5b56ff0d-53c2-4a72-8e8f-11a9777dca13"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i931d921531874cdd95f81970c8b3bb76_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4NTA_c9874dbc-fe9d-416c-a428-737235ef8ccc"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i8dbf1a62272248c7b08551e20c2c13d6_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4NTk_43a298d9-c268-4411-b050-041d82734c16"
      unitRef="shares">50000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i931d921531874cdd95f81970c8b3bb76_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4NTk_f2394757-78ed-4385-b045-6c81ec76a993"
      unitRef="shares">50000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i8dbf1a62272248c7b08551e20c2c13d6_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4Njg_35c8f825-4ecb-486b-bc87-83bb96fd28db"
      unitRef="shares">15551000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i8dbf1a62272248c7b08551e20c2c13d6_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4Njg_ce88f417-c855-4ad6-952e-8cc69517e80c"
      unitRef="shares">15551000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i931d921531874cdd95f81970c8b3bb76_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4Nzg_27334e16-5b4c-4bc0-acd8-f6cc809b2882"
      unitRef="shares">15659000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i931d921531874cdd95f81970c8b3bb76_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMC0xLTEtMC90ZXh0cmVnaW9uOjYzODFlZTE1ZjJjYjQ5MDQ5ZTYyNDJmZDMxNDIzN2FjXzIxOTkwMjMyNTU4Nzg_e2a54ce9-d502-42e5-9ae3-cbeca085c97a"
      unitRef="shares">15659000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="i8dbf1a62272248c7b08551e20c2c13d6_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctMi0xLTEtMA_c72ff25f-7721-4c0d-b6ac-5c815419b495"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i931d921531874cdd95f81970c8b3bb76_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzctNC0xLTEtMA_6db177c5-bafb-4dae-bc84-b0e6d2d36046"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzgtMi0xLTEtMA_46751f12-8847-4bec-b336-7c45aaa41032"
      unitRef="usd">160650000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzgtNC0xLTEtMA_2731ca30-4492-4bc5-8558-9eaa422a08f2"
      unitRef="usd">161247000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzktMi0xLTEtMA_c56520a7-b18b-40ea-846b-2358fe3e1dfb"
      unitRef="usd">38000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfMzktNC0xLTEtMA_f6fe0609-c022-494b-a55c-558277a2c273"
      unitRef="usd">56000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:TreasuryStockShares
      contextRef="ic2b6e7144aef4567943a3a11935b30d1_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDAtMC0xLTEtMC90ZXh0cmVnaW9uOjAwYjI3Yjc0NWM0NTRiMzFiYWQzMjVhODk5MDdiZWM5XzIxOTkwMjMyNTU3MjA_7c728ffe-a9c0-4571-b396-6dbbe19f5c7e"
      unitRef="shares">419000</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockShares
      contextRef="i38eabc6dfb5d446e914a8905b93aa34e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDAtMC0xLTEtMC90ZXh0cmVnaW9uOjAwYjI3Yjc0NWM0NTRiMzFiYWQzMjVhODk5MDdiZWM5XzIxOTkwMjMyNTU3MjA_d4529bdd-f721-48b0-a722-7b4c025d0ef8"
      unitRef="shares">419000</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockValue
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDAtMi0xLTEtMA_e90fd8f7-8d8e-4171-9974-7bb207b04418"
      unitRef="usd">25756000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDAtNC0xLTEtMA_b8a3b180-51bf-48e7-b47d-a78494e934fe"
      unitRef="usd">25756000</us-gaap:TreasuryStockValue>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDEtMi0xLTEtMA_4c1ae7fa-ee92-4b78-90a2-2b2bc197db20"
      unitRef="usd">150848000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDEtNC0xLTEtMA_7aaafb20-0f6f-43f5-94ea-7b3a4ef78c09"
      unitRef="usd">150369000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDItMi0xLTEtMA_9f36a857-8b31-4ae5-b89c-f8ba322c41e4"
      unitRef="usd">285784000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDItNC0xLTEtMA_c10a820d-8781-44bf-910c-a7979966534c"
      unitRef="usd">285920000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDMtMi0xLTEtMA_a28c1766-d339-42b6-a7d7-00aa485b6269"
      unitRef="usd">378697000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xNi9mcmFnOjY1ZGQ0ODgyNjlhNDQyYzc5YjAzMzFlNDM3MTA1ZjY2L3RhYmxlOmNiZjVhMGI5MmVhOTRhNGRhMTMxMzExNjc3NTBjY2Q5L3RhYmxlcmFuZ2U6Y2JmNWEwYjkyZWE5NGE0ZGExMzEzMTE2Nzc1MGNjZDlfNDMtNC0xLTEtMA_6a8596af-7331-44e4-9fd1-00353d1fc6ce"
      unitRef="usd">389480000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMi0xLTEtMS0w_6a6bcac5-432c-4274-a1bb-ebeab3eaba10"
      unitRef="usd">78921000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMi0zLTEtMS0w_60dfd5c9-666b-47d8-967d-41c6129ebf19"
      unitRef="usd">72495000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNC0xLTEtMS0w_a3635828-ea51-4df3-8006-5037dd8e73bf"
      unitRef="usd">33298000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNC0zLTEtMS0w_ecd36543-2f65-4a7a-a50c-67d8d8b684c4"
      unitRef="usd">28961000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:SellingAndMarketingExpense
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNS0xLTEtMS0w_4131acdb-3d78-4618-99e6-ac5748e8c831"
      unitRef="usd">16179000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNS0zLTEtMS0w_94f47c20-b494-48aa-9810-1a6304715495"
      unitRef="usd">14506000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNi0xLTEtMS0w_0e6d6115-906f-4c75-b27f-64aceaa56969"
      unitRef="usd">14383000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNi0zLTEtMS0w_61c937b0-b01c-437c-9f76-9a9e8792f369"
      unitRef="usd">11212000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNy0xLTEtMS0w_305a788f-5880-457a-96aa-9a85f2070d80"
      unitRef="usd">13361000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfNy0zLTEtMS0w_38f7f882-f7d6-4a49-b776-9a8391b9c8cb"
      unitRef="usd">8572000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfOC0xLTEtMS0w_744d579c-91ce-4752-8abf-6dcc92b58506"
      unitRef="usd">7369000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfOC0zLTEtMS0w_46e71970-0baa-4a34-bdfb-202592944bc2"
      unitRef="usd">6414000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:CostsAndExpenses
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfOS0xLTEtMS0w_8381d6ff-6801-4114-96a2-1f37061901c8"
      unitRef="usd">84590000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfOS0zLTEtMS0w_c92162e1-f4c0-44ee-a0df-19b91a699f21"
      unitRef="usd">69665000</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTAtMS0xLTEtMA_c18cde04-fdc9-4bcd-a4b0-2f135bd40d19"
      unitRef="usd">-5669000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTAtMy0xLTEtMA_239ebb3b-d664-4292-b74f-0f6afbe00d6f"
      unitRef="usd">2830000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTEtMS0xLTEtMA_5d9f9a24-a4b2-435e-80d9-52dd4a055dac"
      unitRef="usd">562000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTEtMy0xLTEtMA_ac9a8be7-25f8-4a37-882c-e8de9a63c035"
      unitRef="usd">22000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTItMS0xLTEtMA_fa2a9e7a-4d81-4b1b-a01b-248b3b784897"
      unitRef="usd">53000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTItMy0xLTEtMA_e52631e9-f444-47e3-8a02-f010e9fe3fab"
      unitRef="usd">-494000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTMtMS0xLTEtMA_e9c0bd90-82cf-40b2-8b92-5299bf2f0daf"
      unitRef="usd">-5054000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTMtMy0xLTEtMA_b081afd1-de86-41cc-8a3c-7bf365a61e3d"
      unitRef="usd">2358000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTQtMS0xLTEtMA_fea013cd-a819-4964-9f86-0c094afdff3f"
      unitRef="usd">-5533000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTQtMy0xLTEtMA_6ee13ec7-f86a-4db1-a58a-dbe693bcd9f5"
      unitRef="usd">375000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTUtMS0xLTEtMA_c86855df-4d0f-4341-af27-679c3ca26667"
      unitRef="usd">479000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTUtMy0xLTEtMA_92c2b32e-ecd4-407a-abaa-c462a39aecfd"
      unitRef="usd">1983000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTgtMS0xLTEtMA_626da8fb-9491-401e-a20a-77f4f7f4f8b2"
      unitRef="usdPerShare">0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTgtMy0xLTEtMA_a581b708-7621-40ed-bd06-f11d47871899"
      unitRef="usdPerShare">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTktMS0xLTEtMA_5c804b2f-2449-4838-9411-90e28d18d73c"
      unitRef="usdPerShare">0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMTktMy0xLTEtMA_a8a53bac-6740-46ab-b6f1-12be75414a41"
      unitRef="usdPerShare">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMjEtMS0xLTEtMA_6126363d-ff21-4a17-ae0e-701723951e84"
      unitRef="shares">34409000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMjEtMy0xLTEtMA_053440d5-4ddd-4b2a-8fa8-ba3da1e4effd"
      unitRef="shares">34175000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMjItMS0xLTEtMA_566a8994-d9ef-46e4-b290-13b5d6f0bd31"
      unitRef="shares">35712000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yMi9mcmFnOjExZWY0MjkzMGRjNTQxNDJhMzZiZWM0YmU4YTUxNTkxL3RhYmxlOjI2N2VmODNjZmU1ZjRkNmI5MzhjNTlkMWFlZmQ1YmM0L3RhYmxlcmFuZ2U6MjY3ZWY4M2NmZTVmNGQ2YjkzOGM1OWQxYWVmZDViYzRfMjItMy0xLTEtMA_8a63b53c-50e2-4a52-b3f0-470bbc057d7c"
      unitRef="shares">35681000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yNS9mcmFnOmUzZTE5ZWI5MDU0NTQzNWQ5OTdjNWRmMTA1ZDBmZTI3L3RhYmxlOjU0ZDExZDZjOWM4NzQ0MTNiYzBhYjIyNjlkMDkyMmFlL3RhYmxlcmFuZ2U6NTRkMTFkNmM5Yzg3NDQxM2JjMGFiMjI2OWQwOTIyYWVfMi0xLTEtMS0w_c86855df-4d0f-4341-af27-679c3ca26667"
      unitRef="usd">479000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yNS9mcmFnOmUzZTE5ZWI5MDU0NTQzNWQ5OTdjNWRmMTA1ZDBmZTI3L3RhYmxlOjU0ZDExZDZjOWM4NzQ0MTNiYzBhYjIyNjlkMDkyMmFlL3RhYmxlcmFuZ2U6NTRkMTFkNmM5Yzg3NDQxM2JjMGFiMjI2OWQwOTIyYWVfMi0zLTEtMS0w_92c2b32e-ecd4-407a-abaa-c462a39aecfd"
      unitRef="usd">1983000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yNS9mcmFnOmUzZTE5ZWI5MDU0NTQzNWQ5OTdjNWRmMTA1ZDBmZTI3L3RhYmxlOjU0ZDExZDZjOWM4NzQ0MTNiYzBhYjIyNjlkMDkyMmFlL3RhYmxlcmFuZ2U6NTRkMTFkNmM5Yzg3NDQxM2JjMGFiMjI2OWQwOTIyYWVfNC0xLTEtMS0w_826baaf9-30b9-4c8b-b70d-59773c000278"
      unitRef="usd">-18000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yNS9mcmFnOmUzZTE5ZWI5MDU0NTQzNWQ5OTdjNWRmMTA1ZDBmZTI3L3RhYmxlOjU0ZDExZDZjOWM4NzQ0MTNiYzBhYjIyNjlkMDkyMmFlL3RhYmxlcmFuZ2U6NTRkMTFkNmM5Yzg3NDQxM2JjMGFiMjI2OWQwOTIyYWVfNC0zLTEtMS0w_1c0a5f76-8f1d-4c74-8f7f-66254a7ddf6a"
      unitRef="usd">132000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yNS9mcmFnOmUzZTE5ZWI5MDU0NTQzNWQ5OTdjNWRmMTA1ZDBmZTI3L3RhYmxlOjU0ZDExZDZjOWM4NzQ0MTNiYzBhYjIyNjlkMDkyMmFlL3RhYmxlcmFuZ2U6NTRkMTFkNmM5Yzg3NDQxM2JjMGFiMjI2OWQwOTIyYWVfNS0xLTEtMS0w_99da5ab9-7d1d-4a3d-83ac-4ea343b8ee85"
      unitRef="usd">461000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yNS9mcmFnOmUzZTE5ZWI5MDU0NTQzNWQ5OTdjNWRmMTA1ZDBmZTI3L3RhYmxlOjU0ZDExZDZjOWM4NzQ0MTNiYzBhYjIyNjlkMDkyMmFlL3RhYmxlcmFuZ2U6NTRkMTFkNmM5Yzg3NDQxM2JjMGFiMjI2OWQwOTIyYWVfNS0zLTEtMS0w_6cc8ec05-df7b-4851-8bda-355417bd0b88"
      unitRef="usd">2115000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:SharesOutstanding
      contextRef="idb0728129351425ab29acae152f83774_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS0xLTEtMS0w_ef9f3eed-8f3a-410c-9e4a-a8d445822437"
      unitRef="shares">18729000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="idb0728129351425ab29acae152f83774_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS0zLTEtMS0w_c2ec624b-d13d-4e11-8d38-17ed2f032345"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="i65a1b1a73dd64792af7cc07483f944a1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS01LTEtMS0w_b17820bb-6ebf-4ef0-98e9-08f30dacda14"
      unitRef="shares">15659000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i65a1b1a73dd64792af7cc07483f944a1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS03LTEtMS0w_6441055d-e6dc-4aa4-b1eb-f45448ec07ab"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ibb96168342fc4b498c5f6efa712d3f1e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS05LTEtMS0w_bd227d1a-cc47-4162-b27a-ac427fd42a96"
      unitRef="usd">161247000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i967c72beb44942dc84827f76207fcf3f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS0xMS0xLTEtMA_58f8c117-3b28-4d96-9b7f-b5e7d83fa789"
      unitRef="usd">56000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i3740dc01d1584de1bcf22ab1e64c9881_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS0xMy0xLTEtMA_f2c62af4-402b-4afe-aa90-5992c17932af"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic9e9bfa7c798422c93f0b85099ce07d7_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS0xNS0xLTEtMA_e696f7c6-3bc9-4575-80d6-e43ef678e183"
      unitRef="usd">150369000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNS0xNy0xLTEtMA_0f0c5278-bf84-4257-bf81-8981513eadbc"
      unitRef="usd">285920000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i898a2ca79de94b52a9c793fece4385a4_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNi0xLTEtMS0w_493f2c0d-9a4d-4452-a8d0-b9da5e0c4ee4"
      unitRef="shares">23000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i80fdaa3fec154535a228af391364db4f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNi05LTEtMS0w_cb13e974-06b7-4ef6-9e97-6d3cf21983a3"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNi0xNy0xLTEtMA_f1f9452b-287b-4fbb-82e4-3f2d573244c8"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i80fdaa3fec154535a228af391364db4f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNy05LTEtMS0w_d661f3a0-dead-42f3-9b08-b931ddb4f185"
      unitRef="usd">3295000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfNy0xNy0xLTEtMA_774123b2-a642-4a43-8630-540d49bc1b08"
      unitRef="usd">3295000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="i898a2ca79de94b52a9c793fece4385a4_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfOC0xLTEtMS0w_54749dbd-7597-4404-bbee-97e88fa6c4dc"
      unitRef="shares">42000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i80fdaa3fec154535a228af391364db4f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfOC05LTEtMS0w_929abd45-6de8-4958-b6cd-e31c0873c45f"
      unitRef="usd">-3992000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfOC0xNy0xLTEtMA_52fe4cae-28b8-4326-9022-b7eef12a5889"
      unitRef="usd">-3992000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i898a2ca79de94b52a9c793fece4385a4_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfOS0xLTEtMS0w_b4c90a5b-3b48-4a7c-8b9d-822fcb1fdea2"
      unitRef="shares">-108000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i259226573f4e4d64bf08578228754421_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfOS01LTEtMS0w_179638bb-37dc-42e7-9611-746a156287e6"
      unitRef="shares">108000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockAmountConverted1
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfOS0xNy0xLTEtMA_f50b5f93-8517-4466-b1aa-ecbf75cf0f37"
      unitRef="usd">0</us-gaap:ConversionOfStockAmountConverted1>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i53deb20019504d0f9c97c540e1c7c66c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTEtMTEtMS0xLTA_c229f32b-0633-4eed-bd85-c39b77326e2f"
      unitRef="usd">-18000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTEtMTctMS0xLTA_1b8ca1ca-2f60-4693-a9ee-c890be743833"
      unitRef="usd">-18000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="ide7755334b2045109c83d8673993ecb5_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTItMTUtMS0xLTA_2eb088cf-a447-4b2f-b83e-e2138f874e82"
      unitRef="usd">479000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTItMTctMS0xLTA_b19f9897-e3f7-454d-ab53-c34114dc0a71"
      unitRef="usd">479000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="i5abdc356b66f468db4d10458087106eb_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtMS0xLTEtMA_0fbe825d-0648-4943-a0f8-b6219a7e8417"
      unitRef="shares">18902000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i5abdc356b66f468db4d10458087106eb_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtMy0xLTEtMA_533cda6c-d96b-447d-8caf-00be6cc23aed"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="i800ff75dd710478989b4f9f81ac9fa66_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtNS0xLTEtMA_5396425d-116b-4770-88a5-497ee8515182"
      unitRef="shares">15551000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i800ff75dd710478989b4f9f81ac9fa66_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtNy0xLTEtMA_fc7c7369-1a51-4c52-8b2f-02d2440203a1"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i23d019a6c71b46ac834284e5d7498b30_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtOS0xLTEtMA_576e1f1c-547b-4e8f-93aa-561e9b42e6df"
      unitRef="usd">160650000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i077a596c2f264be6add73e66a5ede514_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtMTEtMS0xLTA_c433c1fd-b923-48f3-a967-419fec247ef0"
      unitRef="usd">38000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i4c370ac5a59c462ea2edac4615fdde56_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtMTMtMS0xLTA_b10ee7cb-e68b-47bc-91c5-7dcf78f47ad4"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i259186ec079d43959f0f7d53a9aca77f_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtMTUtMS0xLTA_d82bab6a-1a6f-401c-9536-e29ad0bbfb7e"
      unitRef="usd">150848000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjMyNzJlY2VlMDNjZjQxYzE4MDYyNWY0YjJkYWQzMGRjL3RhYmxlcmFuZ2U6MzI3MmVjZWUwM2NmNDFjMTgwNjI1ZjRiMmRhZDMwZGNfMTMtMTctMS0xLTA_cc6674f0-fc4a-4ed7-8b6b-12af8ebd23a4"
      unitRef="usd">285784000</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="ic6c665330dcf4d8dac69968ce9623485_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS0xLTEtMS0w_f38f9330-fe8e-46bf-aa4c-64c4e6af7ff4"
      unitRef="shares">16552000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ic6c665330dcf4d8dac69968ce9623485_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS0zLTEtMS0w_bcf5e17c-70ce-43c3-aad7-aa3faa717746"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="i8183eb76e7974025a3c95a3f3cf00909_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS01LTEtMS0w_d2fa2c86-5054-44d4-bb07-8a931cb8dde3"
      unitRef="shares">17594000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i8183eb76e7974025a3c95a3f3cf00909_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS03LTEtMS0w_3069866d-e987-485e-8624-d5569d57c3c4"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i4727ba2c4b664fc4876086fad0f7c4cf_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS05LTEtMS0w_7107bc95-281c-4825-865c-daa293ba16be"
      unitRef="usd">161509000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9944fb89b8404fd58bdd9f58fbb4a936_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS0xMS0xLTEtMA_80421902-4594-433a-99cb-90f8d347aca1"
      unitRef="usd">33000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i3f7121b7115d465c964000eb8cb7787e_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS0xMy0xLTEtMA_936ed66f-ed7b-421a-9489-27490c32bf49"
      unitRef="usd">-21562000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib3f478ab4f86436097faa2d4cf8ae206_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS0xNS0xLTEtMA_5b49af4e-ae8b-4a2e-ae7e-9948286ed643"
      unitRef="usd">-8034000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i30680d57921f46cca32b4a4373a6f822_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNS0xNy0xLTEtMA_74996124-11f6-4d02-ba2a-37f16c39cb33"
      unitRef="usd">131950000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ibcde0ebffc914587b4369bbbf5b69ed1_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNi0xLTEtMS0w_bc1b2b54-a904-4c02-be85-c7d3c0e47d61"
      unitRef="shares">17000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ia653299662a6468facb1d4d165ad7d5f_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNi05LTEtMS0w_7715ac7b-6288-4d62-84b6-f6db8f947fb6"
      unitRef="usd">97000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNi0xNy0xLTEtMA_2760c69a-0527-4107-b498-1d6376bcabf3"
      unitRef="usd">97000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ia653299662a6468facb1d4d165ad7d5f_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNy05LTEtMS0w_201a1482-1f95-41db-a292-412cd73dd9ac"
      unitRef="usd">1365000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfNy0xNy0xLTEtMA_14f0f5ff-2c80-4016-9e25-1c35025737ef"
      unitRef="usd">1365000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="ibcde0ebffc914587b4369bbbf5b69ed1_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfOC0xLTEtMS0w_5c20a1ce-15ec-48aa-81dc-ca9d045379ab"
      unitRef="shares">91000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="ia653299662a6468facb1d4d165ad7d5f_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfOC05LTEtMS0w_27e73791-4b08-4592-8862-d26aa894ff0a"
      unitRef="usd">-6458000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfOC0xNy0xLTEtMA_1f51c435-f602-4657-8b4f-f3bc75c9f18f"
      unitRef="usd">-6458000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="ibcde0ebffc914587b4369bbbf5b69ed1_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfOS0xLTEtMS0yMDY_d11637b4-956c-4bc8-89cc-3560007db9a0"
      unitRef="shares">-58000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="icbeba9bbe6804ffe8c16e0201ff1295e_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfOS01LTEtMS0yMDY_71010faa-6477-4cc7-b085-b64ed426ae37"
      unitRef="shares">58000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockAmountConverted1
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfOS0xNy0xLTEtMjA2_63f19963-3ee5-45e5-bcb7-b3b46404515f"
      unitRef="usd">0</us-gaap:ConversionOfStockAmountConverted1>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i39e170a1c4304c7bbab26b177517b793_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTAtMTEtMS0xLTA_ffbba988-99d1-45e9-b5d2-9572e49f8f9d"
      unitRef="usd">132000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTAtMTctMS0xLTA_998d1ef0-87ba-40a3-9335-6cb98ec27c80"
      unitRef="usd">132000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="ibcde0ebffc914587b4369bbbf5b69ed1_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTEtMS0xLTEtMA_f3549522-478e-4825-b1e0-7a476bb57eaa"
      unitRef="shares">48000</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="i2dc0c6f5e70e45c39feb68d4b177123b_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTEtMTMtMS0xLTA_4274174f-dad4-4306-8c38-e2330510cab6"
      unitRef="usd">4194000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTEtMTctMS0xLTE2Nw_8d5fbd91-dc6a-4201-a23e-cf6784de4489"
      unitRef="usd">4194000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:NetIncomeLoss
      contextRef="i02688f260ef043d1ad480abae9c7ea67_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTItMTUtMS0xLTA_69c2663e-adc9-4a25-a961-704efc8131ce"
      unitRef="usd">1983000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTItMTctMS0xLTA_c52b1b52-7f6e-4225-951d-2eb252e09446"
      unitRef="usd">1983000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="i298659119ab446649be582e5828c214b_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtMS0xLTEtMA_8e36ef81-61c8-45b8-9006-8d1f16004651"
      unitRef="shares">16670000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i298659119ab446649be582e5828c214b_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtMy0xLTEtMA_7b73a437-54c7-4a9a-9ae6-204b6689375b"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="iaadbf78a230c49ee827589d156433a11_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtNS0xLTEtMA_adbb4c96-d3fd-42a8-ae0c-7a38ec9628b0"
      unitRef="shares">17536000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="iaadbf78a230c49ee827589d156433a11_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtNy0xLTEtMA_870a1d96-fdf3-48bd-a143-a24636fa7aa6"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8acfc0733a3f4f57a85e09267c6938b4_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtOS0xLTEtMA_8bb473ba-af8a-4882-898e-f5852a861ab5"
      unitRef="usd">156513000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia17d00b7af9d4bfc89083a42eac62529_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtMTEtMS0xLTA_5e01b464-fd7b-4eef-b061-f6c9144f24e0"
      unitRef="usd">165000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i5917be22d1b040609b994c7a2c39b243_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtMTMtMS0xLTA_23f80eb9-19d0-4889-9483-222c05e6de46"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i667afa8805384549aff508c6231abd24_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtMTUtMS0xLTA_f91f8a8f-7897-44e3-a6c6-c121f37b2b00"
      unitRef="usd">-6051000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i24143d6170294c59802a646f48726e7f_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18yOC9mcmFnOmVmMWU5OTc1Mzk0MTQ3YjBhYzYwN2UzNmE5OTkxY2RiL3RhYmxlOjYyNGJjMDk3ZThiMjQ5ZGJhNTk0MTRkMGUwZWY2NzAzL3RhYmxlcmFuZ2U6NjI0YmMwOTdlOGIyNDlkYmE1OTQxNGQwZTBlZjY3MDNfMTMtMTctMS0xLTA_9630dff0-047c-42db-8d65-35fda22a4b71"
      unitRef="usd">124875000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfOC0xLTEtMS0w_8d73da56-f803-4bd9-b4c5-e3f0132194ef"
      unitRef="usd">479000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfOC0zLTEtMS0w_717acb03-0bc1-48be-bb73-ab2d24a70c03"
      unitRef="usd">1983000</us-gaap:NetIncomeLoss>
    <appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTAtMS0xLTEtMA_e989c607-7100-4753-86b8-03a6f5696095"
      unitRef="usd">7369000</appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts>
    <appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTAtMy0xLTEtMA_2c8ee465-4ace-447b-a27c-8879523e12ae"
      unitRef="usd">6414000</appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts>
    <appf:AmortizationOfOperatingLeaseRightOfUseAssets
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTEtMS0xLTEtMA_05940eab-35c9-403c-ac3f-9bb59416ff08"
      unitRef="usd">662000</appf:AmortizationOfOperatingLeaseRightOfUseAssets>
    <appf:AmortizationOfOperatingLeaseRightOfUseAssets
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTEtMy0xLTEtMA_b0eb9d14-ff82-4d4a-85fc-bec8e674dc56"
      unitRef="usd">1053000</appf:AmortizationOfOperatingLeaseRightOfUseAssets>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTItMS0xLTEtMA_d8f920a9-3a89-4963-be55-ae86ac8ab848"
      unitRef="usd">-5723000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTItMy0xLTEtMA_fad3fcff-03ee-43c7-8dbb-57f01287e5c5"
      unitRef="usd">362000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:ShareBasedCompensation
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTMtMS0xLTEtMA_f63699b9-a1ff-4a2a-887b-805ed518ea46"
      unitRef="usd">2776000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTMtMy0xLTEtMA_ebb64cae-cdaa-49d5-a4de-8dc86e69466f"
      unitRef="usd">959000</us-gaap:ShareBasedCompensation>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTUtMS0xLTEtMA_72d9bbd5-b786-4a57-8955-365002ebecf9"
      unitRef="usd">157000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTUtMy0xLTEtMA_ee4e7116-79e7-4297-9158-bd21062eeef7"
      unitRef="usd">38000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTgtMS0xLTEtMA_c633c649-c225-4ab4-a803-a72fcbb9645b"
      unitRef="usd">1896000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTgtMy0xLTEtMA_698b58f1-1fb6-4ad0-be47-42cbeaaaf81a"
      unitRef="usd">1616000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTktMS0xLTEtMA_1707bc9b-e3e8-4468-950f-6656e35c3c52"
      unitRef="usd">-47000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMTktMy0xLTEtMA_a7fd03ff-d04d-449d-b055-dcc63945b7b2"
      unitRef="usd">2822000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjAtMS0xLTEtMA_fa362ecf-3eeb-49a4-94da-bf7e10797847"
      unitRef="usd">403000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjAtMy0xLTEtMA_158c87b5-bfca-4e70-8f18-167b5f68a199"
      unitRef="usd">148000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjEtMS0xLTEtMA_af465bc8-8d21-4e35-8257-cb6843c9960c"
      unitRef="usd">870000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjEtMy0xLTEtMA_47b86915-823a-4e97-96f7-dd086325c72e"
      unitRef="usd">-362000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjItMS0xLTEtMA_1f024d72-cab8-4569-9a04-f6f17627b88f"
      unitRef="usd">728000</us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities>
    <us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjItMy0xLTEtMA_1d6349ca-de54-410b-9e03-88b0cb3c1747"
      unitRef="usd">-5427000</us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccruedLiabilities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjMtMS0xLTEtMA_8a2eda53-f52d-429f-a17a-54437afe07a6"
      unitRef="usd">-3804000</us-gaap:IncreaseDecreaseInOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccruedLiabilities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjMtMy0xLTEtMA_22205667-8e8b-42cf-8be4-8622f87c73e9"
      unitRef="usd">726000</us-gaap:IncreaseDecreaseInOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjQtMS0xLTEtMA_436c8884-c83e-4b5e-bfa2-01c3ff0e55bf"
      unitRef="usd">299000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjQtMy0xLTEtMA_969b1dab-1f3a-46c8-9ae9-aa0b251bf068"
      unitRef="usd">693000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMS0xLTEtMjQ0Mw_2cd667c7-c4a1-47de-8cee-b0847cb59174"
      unitRef="usd">-6494000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMy0xLTEtMjQ0Nw_5477c256-e820-426d-9dcf-1a47d7ff5e90"
      unitRef="usd">0</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInOtherCurrentLiabilities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMS0xLTEtMzczNw_5ee0ec1e-4eb5-4bdb-ba0d-9a928d0c7c39"
      unitRef="usd">310000</us-gaap:IncreaseDecreaseInOtherCurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherCurrentLiabilities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMy0xLTEtMzczNw_df1ca1a7-5c22-452d-ab37-180c615d4e20"
      unitRef="usd">522000</us-gaap:IncreaseDecreaseInOtherCurrentLiabilities>
    <appf:IncreaseDecreaseInEmployeeRelatedLiabilitiesNoncurrent
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMS0xLTEtMzcyNA_99005c8c-140f-46e8-8a46-2144eb3174e4"
      unitRef="usd">1172000</appf:IncreaseDecreaseInEmployeeRelatedLiabilitiesNoncurrent>
    <appf:IncreaseDecreaseInEmployeeRelatedLiabilitiesNoncurrent
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMy0xLTEtMzcyNA_c197f675-e0ae-48af-8dea-b539bccd8d18"
      unitRef="usd">0</appf:IncreaseDecreaseInEmployeeRelatedLiabilitiesNoncurrent>
    <appf:IncreaseDecreaseInOperatingLeases
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMS0xLTEtMA_7284d661-97fc-4e88-ade6-63f1b381cf5d"
      unitRef="usd">-672000</appf:IncreaseDecreaseInOperatingLeases>
    <appf:IncreaseDecreaseInOperatingLeases
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjUtMy0xLTEtMA_b479027f-bbd2-4d95-8b71-5cb6e6516866"
      unitRef="usd">784000</appf:IncreaseDecreaseInOperatingLeases>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjctMS0xLTEtMA_d2267740-ffd6-4963-bd0a-eb6285ef48d5"
      unitRef="usd">-4437000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjctMy0xLTEtMA_906e782f-4254-4685-955d-5bc837ef583e"
      unitRef="usd">3083000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjktMS0xLTEtMA_828c3709-8ecd-4d4a-9033-0c2c08f03c8d"
      unitRef="usd">99011000</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMjktMy0xLTEtMA_8ef46370-dc6b-4455-ac03-a36cfea29842"
      unitRef="usd">649000</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzAtMS0xLTEtMA_1d49cd77-eedf-4a94-8cd3-a62b43c7c5fd"
      unitRef="usd">17899000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzAtMy0xLTEtMA_6e8ae08a-c487-461e-bcec-21e59c33184a"
      unitRef="usd">13942000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzEtMS0xLTEtMA_6c4373aa-5217-42da-b026-9f32c1450ca9"
      unitRef="usd">1000000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzEtMy0xLTEtMA_a3ab3778-178c-4567-a42d-56f32628ae7c"
      unitRef="usd">7250000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzItMS0xLTEtMA_a5083ee0-fa35-4df3-85b8-a0190649f269"
      unitRef="usd">938000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzItMy0xLTEtMA_8fcc1425-f2cd-48f1-9d08-8006db04b9bf"
      unitRef="usd">7992000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzMtMS0xLTEtMA_6bba8571-3593-4269-9c0d-8d5ad7a26291"
      unitRef="usd">6140000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzMtMy0xLTEtMA_8f444dda-4f70-4c43-8a3b-03196002cdf6"
      unitRef="usd">6822000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzctMS0xLTEtMA_5aaa437c-ee7f-4ea1-a915-398b4036d802"
      unitRef="usd">-87190000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzctMy0xLTEtMA_0fd7278f-a5fc-4df9-aecf-67d682ad377b"
      unitRef="usd">5729000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzktMS0xLTEtMA_09c3d215-1eb7-4780-894e-3e68d728a87f"
      unitRef="usd">100000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfMzktMy0xLTEtMA_6cfc435f-835a-4c70-8caa-d36af19563bb"
      unitRef="usd">97000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDItMS0xLTEtMA_66bf184d-df72-4333-af97-ce18298c2c35"
      unitRef="usd">3992000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDItMy0xLTEtMA_b7b8a904-5bdd-4cbc-aaeb-8ecf58cda703"
      unitRef="usd">6458000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDQtMS0xLTEtMA_7eee95fc-f136-47ba-b399-c5b559a3e270"
      unitRef="usd">0</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDQtMy0xLTEtMA_aac1169c-ae76-45c4-a5e3-4e9416077b95"
      unitRef="usd">5977000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:ProceedsFromIssuanceOfSecuredDebt
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDUtMS0xLTEtMA_fcbbc4fd-2433-457e-bbdd-8adc9b9aa5f0"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfSecuredDebt>
    <us-gaap:ProceedsFromIssuanceOfSecuredDebt
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDUtMy0xLTEtMA_7a9e712b-67f5-443c-917e-c928d9cea62c"
      unitRef="usd">49437000</us-gaap:ProceedsFromIssuanceOfSecuredDebt>
    <us-gaap:RepaymentsOfSecuredDebt
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDYtMS0xLTEtMA_0ab982a4-6d94-4ac8-916d-2422a13ea488"
      unitRef="usd">0</us-gaap:RepaymentsOfSecuredDebt>
    <us-gaap:RepaymentsOfSecuredDebt
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDYtMy0xLTEtMA_2d04c473-698b-425c-851a-dc6ebb904c09"
      unitRef="usd">749000</us-gaap:RepaymentsOfSecuredDebt>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDgtMS0xLTEtMA_a4bf78e4-9db9-4d17-baa3-669417c3668d"
      unitRef="usd">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDgtMy0xLTEtMA_748c206d-1c70-495d-94b1-6e5c87e2b79e"
      unitRef="usd">4194000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDktMS0xLTEtMA_b383d0d9-8870-468a-98a5-8d978220a93a"
      unitRef="usd">-3892000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNDktMy0xLTEtMA_1c4948fa-f2b7-4b3d-9c78-fd30faa89159"
      unitRef="usd">32156000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTAtMS0xLTEtMA_1b5633cf-57c3-4b43-8db9-c50c6f10a634"
      unitRef="usd">-95519000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTAtMy0xLTEtMA_7b34bdf9-2cf6-4d16-8f08-c95195681c3b"
      unitRef="usd">40968000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTItMS0xLTEtMA_ef1293eb-39d6-4c7c-a7d4-5f671ef1f3f5"
      unitRef="usd">140699000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i30680d57921f46cca32b4a4373a6f822_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTItMy0xLTEtMA_46af4eeb-c9ea-4cd2-9e0e-19825803a4e9"
      unitRef="usd">16247000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTMtMS0xLTEtMA_838db49f-6e7c-49ff-8388-f641aa5f6015"
      unitRef="usd">45180000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i24143d6170294c59802a646f48726e7f_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTMtMy0xLTEtMA_0b09a0ab-2e38-4fa4-9998-23dd5fa5444e"
      unitRef="usd">57215000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTYtMS0xLTEtMA_06ffca84-123f-4859-a7d2-5daaf82adce5"
      unitRef="usd">688000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTYtMy0xLTEtMA_20a48b77-40ed-4b58-93e6-f05b3fab9add"
      unitRef="usd">4251000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTctMS0xLTEtMA_821bf1da-05ab-4b93-9014-def1a64955ab"
      unitRef="usd">817000</appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid>
    <appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTctMy0xLTEtMA_a67c1362-eab2-4eeb-a923-e6e87dae887b"
      unitRef="usd">687000</appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTgtMS0xLTEtMA_2f0d4442-f650-4b9c-87ac-c9cb328a3ffb"
      unitRef="usd">520000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOmMxZTRiOWYwYmJkNjQ4MTA4ZDg3NjViYTczNmMwZGFkL3RhYmxlcmFuZ2U6YzFlNGI5ZjBiYmQ2NDgxMDhkODc2NWJhNzM2YzBkYWRfNTgtMy0xLTEtMA_b20b7a92-f72e-4ea9-978f-a88a1169c92f"
      unitRef="usd">406000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOjRiMmU1MGY0MmNjODRkOTJhYzg2ZDY2ODU4OTNmYjJiL3RhYmxlcmFuZ2U6NGIyZTUwZjQyY2M4NGQ5MmFjODZkNjY4NTg5M2ZiMmJfMi0xLTEtMS0w_1387833c-31f2-413b-9e58-6a88bb8c943d"
      unitRef="usd">44744000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i24143d6170294c59802a646f48726e7f_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOjRiMmU1MGY0MmNjODRkOTJhYzg2ZDY2ODU4OTNmYjJiL3RhYmxlcmFuZ2U6NGIyZTUwZjQyY2M4NGQ5MmFjODZkNjY4NTg5M2ZiMmJfMi0zLTEtMS0w_13644f3d-56ef-47aa-8c37-c06fcc18b67a"
      unitRef="usd">56779000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCashAndCashEquivalents
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOjRiMmU1MGY0MmNjODRkOTJhYzg2ZDY2ODU4OTNmYjJiL3RhYmxlcmFuZ2U6NGIyZTUwZjQyY2M4NGQ5MmFjODZkNjY4NTg5M2ZiMmJfMy0xLTEtMS0w_05ef38eb-e2c5-4671-9423-75cfa16784b8"
      unitRef="usd">436000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:RestrictedCashAndCashEquivalents
      contextRef="i24143d6170294c59802a646f48726e7f_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOjRiMmU1MGY0MmNjODRkOTJhYzg2ZDY2ODU4OTNmYjJiL3RhYmxlcmFuZ2U6NGIyZTUwZjQyY2M4NGQ5MmFjODZkNjY4NTg5M2ZiMmJfMy0zLTEtMS0w_7ab94e9d-35c7-4df2-9d76-4cd11a052c05"
      unitRef="usd">436000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOjRiMmU1MGY0MmNjODRkOTJhYzg2ZDY2ODU4OTNmYjJiL3RhYmxlcmFuZ2U6NGIyZTUwZjQyY2M4NGQ5MmFjODZkNjY4NTg5M2ZiMmJfNC0xLTEtMS0w_9e97066b-9002-4f82-83a6-a2d22cca7d7e"
      unitRef="usd">45180000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i24143d6170294c59802a646f48726e7f_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zMS9mcmFnOmI1NGU3YWY1NTYzMjRlZjZiYzg4MmQwZWI0MGE4ZmNlL3RhYmxlOjRiMmU1MGY0MmNjODRkOTJhYzg2ZDY2ODU4OTNmYjJiL3RhYmxlcmFuZ2U6NGIyZTUwZjQyY2M4NGQ5MmFjODZkNjY4NTg5M2ZiMmJfNC0zLTEtMS0w_df4f9caa-3047-4e6c-b0bc-986a2c3748f3"
      unitRef="usd">57215000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:NatureOfOperations
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18zNy9mcmFnOjNiMDM0NGRlNzJlNjQ3YjBiOWU5ODA0MDNhNjZjZGZmL3RleHRyZWdpb246M2IwMzQ0ZGU3MmU2NDdiMGI5ZTk4MDQwM2E2NmNkZmZfMzEwMA_2a145e5f-7be3-46a5-8c71-7205781d6204">Nature of Business&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;AppFolio, Inc. (the "Company," "we," "us" or "our") provides innovative software, services and data analytics to the real estate industry. Our industry-specific, cloud-based solutions are used primarily by property managers, and also by numerous other constituencies in the property management business ecosystem. These other constituencies include property owners, rental prospects, tenants and service providers, whom we refer to collectively as "users". Although specific functionality varies by product, our core solutions are designed to enable our customers to digitally transform their businesses, address critical business operations and enable exceptional customer service. In addition to our core solutions, we offer an array of optional, but often business-critical, Value+ services that are designed to enhance, automate and streamline processes and workflows that are essential to our customers' businesses. Our Value+ services are generally available on an as-needed basis and enable our customers to adapt our offerings to their specific operational requirements.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Our solutions and services are designed to be a system of record to automate essential business processes, a system of engagement to enhance business interactions between our customers and their business ecosystems and a system of intelligence designed to leverage data to predict and optimize business workflows in order to enable exceptional customer experiences and increase efficiency across our customers' businesses.&lt;/span&gt;&lt;span style="color:#3051f2;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:115%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Our mobile-optimized software solutions are designed for use across multiple devices and operating systems. Our software solutions are offered as a service, are hosted using a modern cloud-based architecture, and in part, use artificial intelligence technologies. This architecture leads to rich data sets that have a consistent schema across our customer and user base and enables us to deploy data-powered products and services for our customers and users.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;During the three months ended March&#160;31, 2020, we also provided software solutions and services to the legal vertical. As previously disclosed, we completed our divestiture of MyCase, Inc. on September 30, 2020. For additional details, see Note 3, &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:115%"&gt;Divestitures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;.&lt;/span&gt;&lt;/div&gt;</us-gaap:NatureOfOperations>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfOTU0Mw_993133ec-a68d-4b43-8294-f474a9012e2f">Summary of Significant Accounting Policies&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&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 and Significant Accounting Policies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 unaudited Condensed Consolidated Financial Statements were prepared in accordance with accounting principles generally accepted in the United States (&#x201c;GAAP&#x201d;) for interim financial information. Certain information and disclosures normally included in consolidated financial statements prepared in accordance with GAAP have been condensed or omitted. Accordingly, these Condensed Consolidated Financial Statements should be read in conjunction with our audited consolidated financial statements and the related notes included in our Annual Report, which was filed with the SEC on March 1, 2021. The year-end condensed balance sheet was derived from our audited consolidated financial statements. Our unaudited interim Condensed Consolidated Financial Statements include, in the opinion of management, all adjustments, consisting of normal and recurring items, necessary for the fair statement of our Condensed Consolidated Financial Statements. The operating results for the three months ended March&#160;31, 2021 are not necessarily indicative of the results expected for the full year ending December&#160;31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&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;Reclassifications&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We reclassified certain amounts in our Condensed Consolidated Statements of Cash Flows within the cash from operating activities section in the prior year to conform to the current year's presentation. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&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;Changes in Accounting Policies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Except as described below under&#160;&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;Recently Adopted Accounting Pronouncements&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;, there have been no significant changes in our accounting policies from those disclosed in our annual consolidated financial statements and the related notes included in our Annual Report.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and the disclosure of contingent assets and liabilities at the dates of the financial statements, and the reported amounts of revenue, expenses, other income, and provision for income taxes during the reporting period. Assets and liabilities which are subject to judgment and use of estimates include the fair value of assets and liabilities assumed in business combinations, fair value of financial instruments, capitalized software costs, period of benefit associated with deferred costs, incremental borrowing rate used to measure operating lease liabilities, the recoverability of goodwill and long-lived assets, income taxes, useful lives associated with property and equipment and intangible assets, contingencies, assumptions underlying performance-based compensation, and valuation and assumptions underlying stock-based compensation and other equity instruments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In light of the unknown duration and severity of COVID-19, we face a greater degree of uncertainty than normal in making the judgments and estimates needed to apply our significant accounting policies. We assessed certain accounting matters that generally require consideration of forecasted financial information in context with the information reasonably available to us and the unknown future impacts of COVID-19 as of March&#160;31, 2021 and through the date of this report. The accounting matters assessed included, but were not limited to, our allowance for credit losses, the carrying value of goodwill and other long-lived assets, performance-based compensation and income taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 the date of our Condensed Consolidated Financial Statements, we are not aware of any specific event or circumstance that would require us to update our estimates or judgments or to revise the carrying value of our assets or liabilities. However, these estimates and judgments may change as new events occur and additional information is obtained, which may result in changes being recognized in our consolidated financial statements in future periods. While we considered the effects of COVID-19 in our estimates and assumptions, due to the level of uncertainty regarding the economic and operational impacts of COVID-19 on our business, there may be other judgments and assumptions that we have not considered. Such judgments and assumptions could result in a meaningful impact on our financial statements in future periods. Actual results could differ from those estimates and any such differences may have a material impact on our Condensed Consolidated Financial Statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 Common Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify;text-indent:36pt"&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 common share was the same for shares of our Class A and Class B common stock because they are entitled to the same liquidation and dividend rights and are therefore combined in the table below. The following table presents a reconciliation of the weighted average number of shares of our Class A and Class B common stock used to compute net income per common share (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:79.016%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.114%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Weighted average unvested restricted shares subject to repurchase&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Weighted average common shares outstanding; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,409&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Plus:  Weighted average options, restricted stock units and restricted shares used to compute diluted net income per common share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,303&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average common shares outstanding; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,712&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,681&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the three months ended March&#160;31, 2020, an aggregate of 109,000 shares underlying performance-based restricted stock units ("PSUs") were not included in the computations of diluted and anti-dilutive shares as they are considered contingently issuable upon the satisfaction of predefined performance measures and their performance measures have not been met.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 units ("RSUs") with an anti-dilutive effect were excluded from the calculation of weighted average number of shares used to compute diluted net income per common share and they were not material for the three months ended March&#160;31, 2021 and 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 Adopted in 2020&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2016, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2016-13,&#160;&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 - 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"), which amends the current accounting guidance and requires the measurement of all expected losses based on historical experience, current conditions and reasonable and supportable forecasts. This guidance amends the accounting for credit losses for available-for-sale investment securities and purchased financial assets with credit deterioration. We adopted &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU 2016-13 on January 1, 2020. The adoption of this guidance did not have a material impact on our financial condition, results of operations, cash flows or disclosures. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 FASB issued ASU No. 2018-15,&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;&#160;Intangibles&#x2014;Goodwill and Other&#x2014;Internal-Use Software (Subtopic 350-40): Customer&#x2019;s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract &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 2018-15"), a series of amendments which align the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software (and hosting arrangements that include an internal use software license). The accounting for the service element of a hosting arrangement that is a service contract is not affected by these amendments. We adopted ASU 2018-15 on January 1, 2020. The adoption of this guidance did not have a material impact on our financial condition, results of operations, cash flows or disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 Adopted in 2021&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;In December 2019, the FASB issued ASU No. 2019-12,&#160;&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:115%"&gt;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;("ASU 2019-12").&#160;This amendment was issued to simplify the accounting for income taxes by removing certain exceptions for recognizing deferred taxes, performing intraperiod allocation, and calculating income taxes in interim periods. Further, ASU 2019-12 adds guidance to reduce complexity in certain areas, including recognizing deferred taxes for tax basis goodwill and allocating taxes to members of a consolidated group. This guidance also requires an entity to reflect the effect of an enacted change in tax laws or rates in its effective income tax rate in the first interim period that includes the enactment date of the new legislation, aligning the timing of recognition of the effects from enacted tax law changes on the effective income tax rate with the effects on deferred income tax assets and liabilities. Under existing guidance, an entity recognizes the effects of the enacted tax law change on the effective income tax rate in the period that includes the effective date of the tax law. We adopted ASU 2019-12 on January 1, 2021. The adoption of this guidance did not have a material impact on our financial condition, results of operations, cash flows or disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfOTU0NQ_8a6b96fc-4ca9-4559-b155-0447d9d5501a">Basis of Presentation and Significant Accounting PoliciesThe accompanying unaudited Condensed Consolidated Financial Statements were prepared in accordance with accounting principles generally accepted in the United States (&#x201c;GAAP&#x201d;) for interim financial information. Certain information and disclosures normally included in consolidated financial statements prepared in accordance with GAAP have been condensed or omitted. Accordingly, these Condensed Consolidated Financial Statements should be read in conjunction with our audited consolidated financial statements and the related notes included in our Annual Report, which was filed with the SEC on March 1, 2021. The year-end condensed balance sheet was derived from our audited consolidated financial statements. Our unaudited interim Condensed Consolidated Financial Statements include, in the opinion of management, all adjustments, consisting of normal and recurring items, necessary for the fair statement of our Condensed Consolidated Financial Statements.</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfMjc0ODc3OTA5NjI5MQ_6833feb2-fc75-4d5c-8841-c7a022e875af">ReclassificationsWe reclassified certain amounts in our Condensed Consolidated Statements of Cash Flows within the cash from operating activities section in the prior year to conform to the current year's presentation.</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:UseOfEstimates
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfOTUyMw_403d28b2-80c2-4ca6-a942-0ec821fc9ab3">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and the disclosure of contingent assets and liabilities at the dates of the financial statements, and the reported amounts of revenue, expenses, other income, and provision for income taxes during the reporting period. Assets and liabilities which are subject to judgment and use of estimates include the fair value of assets and liabilities assumed in business combinations, fair value of financial instruments, capitalized software costs, period of benefit associated with deferred costs, incremental borrowing rate used to measure operating lease liabilities, the recoverability of goodwill and long-lived assets, income taxes, useful lives associated with property and equipment and intangible assets, contingencies, assumptions underlying performance-based compensation, and valuation and assumptions underlying stock-based compensation and other equity instruments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In light of the unknown duration and severity of COVID-19, we face a greater degree of uncertainty than normal in making the judgments and estimates needed to apply our significant accounting policies. We assessed certain accounting matters that generally require consideration of forecasted financial information in context with the information reasonably available to us and the unknown future impacts of COVID-19 as of March&#160;31, 2021 and through the date of this report. The accounting matters assessed included, but were not limited to, our allowance for credit losses, the carrying value of goodwill and other long-lived assets, performance-based compensation and income taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 the date of our Condensed Consolidated Financial Statements, we are not aware of any specific event or circumstance that would require us to update our estimates or judgments or to revise the carrying value of our assets or liabilities. However, these estimates and judgments may change as new events occur and additional information is obtained, which may result in changes being recognized in our consolidated financial statements in future periods. While we considered the effects of COVID-19 in our estimates and assumptions, due to the level of uncertainty regarding the economic and operational impacts of COVID-19 on our business, there may be other judgments and assumptions that we have not considered. Such judgments and assumptions could result in a meaningful impact on our financial statements in future periods. Actual results could differ from those estimates and any such differences may have a material impact on our Condensed Consolidated Financial Statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfOTU0OA_64d58475-ad4e-4c03-9653-fdbe7eb66905">Net Income per Common ShareNet income per common share was the same for shares of our Class A and Class B common stock because they are entitled to the same liquidation and dividend rights and are therefore combined in the table below.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfOTUzNQ_f93a04d4-bdcf-4050-a361-45b1436ff61f">The following table presents a reconciliation of the weighted average number of shares of our Class A and Class B common stock used to compute net income per common share (in thousands):&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:79.016%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.114%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Weighted average unvested restricted shares subject to repurchase&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Weighted average common shares outstanding; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,409&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Plus:  Weighted average options, restricted stock units and restricted shares used to compute diluted net income per common share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,303&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Weighted average common shares outstanding; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,712&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,681&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMi0yLTEtMS0w_f3c2e2c5-6f87-41b0-b91f-0a06d884d573"
      unitRef="shares">34414000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMi00LTEtMS0w_fb95cce2-df9d-405c-88cd-c592f96f4d3e"
      unitRef="shares">34180000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMy0yLTEtMS0w_e787bd9f-095d-48c9-a603-bb49e41e91e0"
      unitRef="shares">5000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMy00LTEtMS0w_bb802489-4969-4811-a64d-a3fa00d467d8"
      unitRef="shares">5000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfNC0yLTEtMS0w_6126363d-ff21-4a17-ae0e-701723951e84"
      unitRef="shares">34409000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfNC00LTEtMS0w_053440d5-4ddd-4b2a-8fa8-ba3da1e4effd"
      unitRef="shares">34175000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMTEtMi0xLTEtMA_69318092-7d4e-456d-b9a7-575295117512"
      unitRef="shares">1303000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMTEtNC0xLTEtMA_9f649083-e442-4a1e-8f05-b8543db7b969"
      unitRef="shares">1506000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMTItMi0xLTEtMA_566a8994-d9ef-46e4-b290-13b5d6f0bd31"
      unitRef="shares">35712000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RhYmxlOjBlODdjZDRmNTNkNDRkNGU5ZTU5ZWY4M2MyNzBhYTAyL3RhYmxlcmFuZ2U6MGU4N2NkNGY1M2Q0NGQ0ZTllNTllZjgzYzI3MGFhMDJfMTItNC0xLTEtMA_632db8be-413d-4dd7-a6d0-b8e114b5f57e"
      unitRef="shares">35681000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i800a5cc605a0440e9d17fd631415111d_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfMTA5OTUxMTYzNzU1NA_b522821d-ad10-40da-a749-513f5a2dd973"
      unitRef="shares">109000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180MC9mcmFnOjE4N2Q0MWZiMmIxNzQ2YjY4ZGFjYmY0MDk0YTkxNmEyL3RleHRyZWdpb246MTg3ZDQxZmIyYjE3NDZiNjhkYWNiZjQwOTRhOTE2YTJfOTUyNQ_4280813b-e8ea-44dd-8640-32d758ad0733">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 Adopted in 2020&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2016, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2016-13,&#160;&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 - 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"), which amends the current accounting guidance and requires the measurement of all expected losses based on historical experience, current conditions and reasonable and supportable forecasts. This guidance amends the accounting for credit losses for available-for-sale investment securities and purchased financial assets with credit deterioration. We adopted &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU 2016-13 on January 1, 2020. The adoption of this guidance did not have a material impact on our financial condition, results of operations, cash flows or disclosures. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 FASB issued ASU No. 2018-15,&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;&#160;Intangibles&#x2014;Goodwill and Other&#x2014;Internal-Use Software (Subtopic 350-40): Customer&#x2019;s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract &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 2018-15"), a series of amendments which align the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software (and hosting arrangements that include an internal use software license). The accounting for the service element of a hosting arrangement that is a service contract is not affected by these amendments. We adopted ASU 2018-15 on January 1, 2020. The adoption of this guidance did not have a material impact on our financial condition, results of operations, cash flows or disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 Adopted in 2021&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;In December 2019, the FASB issued ASU No. 2019-12,&#160;&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:115%"&gt;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;("ASU 2019-12").&#160;This amendment was issued to simplify the accounting for income taxes by removing certain exceptions for recognizing deferred taxes, performing intraperiod allocation, and calculating income taxes in interim periods. Further, ASU 2019-12 adds guidance to reduce complexity in certain areas, including recognizing deferred taxes for tax basis goodwill and allocating taxes to members of a consolidated group. This guidance also requires an entity to reflect the effect of an enacted change in tax laws or rates in its effective income tax rate in the first interim period that includes the enactment date of the new legislation, aligning the timing of recognition of the effects from enacted tax law changes on the effective income tax rate with the effects on deferred income tax assets and liabilities. Under existing guidance, an entity recognizes the effects of the enacted tax law change on the effective income tax rate in the period that includes the effective date of the tax law. We adopted ASU 2019-12 on January 1, 2021. The adoption of this guidance did not have a material impact on our financial condition, results of operations, cash flows or disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfNDIzNQ_ce18afc9-296a-4db5-a0a5-192976e96742">Divestitures &lt;div style="margin-top:3pt;text-indent:36pt"&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;Divestiture of MyCase&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On September 30, 2020, we completed our divestiture of 100% of our issued and outstanding equity interests of MyCase, Inc. ("MyCase"), a former wholly owned subsidiary that provided legal practice and case management software solutions to our legal customers, for $193.0&#160;million, consisting of $192.2&#160;million of cash proceeds, plus a $2.2&#160;million employee retention bonus pool funded by us, less cash divested of $0.8&#160;million and a preliminary working capital adjustment of $0.6&#160;million (the "MyCase Transaction"). The retention bonus pool is refundable to the Company to the extent that MyCase employees are terminated prior to the retention period, which is one year from the closing date of the MyCase Transaction.  &lt;/span&gt;&lt;/div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized a pre-tax gain on the sale of $187.7&#160;million on the MyCase Transaction, consisting of cash proceeds of $192.2&#160;million, less net assets divested of $4.6&#160;million. Net assets divested is primarily comprised of capitalized software of $3.9&#160;million, deferred revenue of $2.8&#160;million and goodwill allocated to MyCase of $2.3&#160;million. The gain on the sale was recorded within &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;Other income, net&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; in our Condensed Consolidated Statements of Operations during the three months ended September 30, 2020. Income received during the three months ended March&#160;31, 2021 in relation to the transition services provided by us to MyCase was $0.4&#160;million and is included within &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;Other income (expense), net&lt;/span&gt; in our Condensed Consolidated Statements of Operations.</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration
      contextRef="i7817ed2641854ed4b22b7d8bef612862_I20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMTMy_c38c6ade-9c1c-4017-b782-487988acc909"
      unitRef="usd">193000000.0</us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration>
    <us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries
      contextRef="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMTUw_f64f6265-a378-4500-8c67-93ea40bd70ab"
      unitRef="usd">192200000</us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries>
    <us-gaap:NoncashOrPartNoncashDivestitureAmountOfConsiderationReceived1
      contextRef="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMTc4_6d5bb7eb-a38a-4c22-8557-c64bc7cb45e7"
      unitRef="usd">2200000</us-gaap:NoncashOrPartNoncashDivestitureAmountOfConsiderationReceived1>
    <us-gaap:CashDivestedFromDeconsolidation
      contextRef="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMjU2_6c1e944f-6d92-4392-926c-25f13d6d8992"
      unitRef="usd">800000</us-gaap:CashDivestedFromDeconsolidation>
    <appf:DisposalGroupIncludingDiscontinuedOperationWorkingCapitalAdjustment
      contextRef="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMzA3_2df308e7-9b52-4db9-8257-f03975f6cdb7"
      unitRef="usd">600000</appf:DisposalGroupIncludingDiscontinuedOperationWorkingCapitalAdjustment>
    <appf:DisposalGroupIncludingDiscontinuedOperationRetentionPeriod
      contextRef="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfNDIyOA_4550953b-0915-4fc8-bd8e-aa5bc08eaa64">P1Y</appf:DisposalGroupIncludingDiscontinuedOperationRetentionPeriod>
    <us-gaap:DiscontinuedOperationGainLossFromDisposalOfDiscontinuedOperationBeforeIncomeTax
      contextRef="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfODEw_52b5acc5-816b-4a34-b88d-01252a98594a"
      unitRef="usd">187700000</us-gaap:DiscontinuedOperationGainLossFromDisposalOfDiscontinuedOperationBeforeIncomeTax>
    <us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries
      contextRef="i94a72812ee99444c883f924efdb3dd6f_D20200930-20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfODcx_f64f6265-a378-4500-8c67-93ea40bd70ab"
      unitRef="usd">192200000</us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries>
    <us-gaap:AssetsOfDisposalGroupIncludingDiscontinuedOperation
      contextRef="i7817ed2641854ed4b22b7d8bef612862_I20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfOTAz_959f3a82-3be8-45de-b59b-6c53c6c69d14"
      unitRef="usd">4600000</us-gaap:AssetsOfDisposalGroupIncludingDiscontinuedOperation>
    <appf:DisposalGroupIncludingDiscontinuedOperationCapitalizedSoftware
      contextRef="i7817ed2641854ed4b22b7d8bef612862_I20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfOTc3_86250be9-6fda-4999-a396-8ceb2ecd09b4"
      unitRef="usd">3900000</appf:DisposalGroupIncludingDiscontinuedOperationCapitalizedSoftware>
    <us-gaap:DisposalGroupIncludingDiscontinuedOperationDeferredRevenue
      contextRef="i7817ed2641854ed4b22b7d8bef612862_I20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMTAwMQ_11a80b13-9c40-45e2-9df8-c14683afad25"
      unitRef="usd">2800000</us-gaap:DisposalGroupIncludingDiscontinuedOperationDeferredRevenue>
    <us-gaap:DisposalGroupIncludingDiscontinuedOperationGoodwill1
      contextRef="i7817ed2641854ed4b22b7d8bef612862_I20200930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMTA0MA_9e5bd805-6972-4996-9010-6c77001811ab"
      unitRef="usd">2300000</us-gaap:DisposalGroupIncludingDiscontinuedOperationGoodwill1>
    <us-gaap:DisposalGroupIncludingDiscontinuedOperationOtherIncome
      contextRef="i0b70899ca415492cb8ad553e1f13279c_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180My9mcmFnOjE0ZWIwZmM0OGI5YjQ0YjliOGVhZGZmNWRhNzhjNDBjL3RleHRyZWdpb246MTRlYjBmYzQ4YjliNDRiOWI4ZWFkZmY1ZGE3OGM0MGNfMTA5OTUxMTYzODM5MA_f451d72e-9665-4394-83f7-2643d78f0270"
      unitRef="usd">400000</us-gaap:DisposalGroupIncludingDiscontinuedOperationOtherIncome>
    <appf:InvestmentSecuritiesAndFairValueMeasurementsDisclosureTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfNDI1Mg_0d132493-a263-4951-886a-772d05c3b709">Investment Securities and Fair Value Measurements&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&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;Investment Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Investment securities classified as available-for-sale consisted of the following as of March&#160;31, 2021 and December&#160;31, 2020&#160;(in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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:100%"&gt;March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;98,030&#160;&lt;/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 available-for-sale investment securities&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:23pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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:100%"&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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated 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:100%"&gt;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,847&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;17,894&#160;&lt;/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 available-for-sale investment securities&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,951&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,026&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For available-for-sale debt securities in an unrealized loss position, we first assess whether we intend to sell, or whether it is more likely than not that we will be required to sell the security before recovery of its amortized cost basis. If either of these criteria is met, the security&#x2019;s amortized cost basis is written down to fair value through income. For securities in an unrealized loss position that do not meet these criteria, we evaluate whether the decline in fair value has resulted from&#160;credit loss&#160;or other factors. If this assessment indicates a&#160;credit loss&#160;exists, the credit-related portion of the loss is recorded as an allowance for losses on the security. No allowance for credit losses for available-for-sale investment securities was recorded as of March&#160;31, 2021 or December&#160;31, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of March&#160;31, 2021 and December&#160;31, 2020, the contractual maturities of our investments did not exceed&#160;36 months. The fair values of available-for-sale investment securities, by remaining contractual maturity, are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.263%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.226%"/&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;March 31, 2021&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;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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated 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:100%"&gt;Due in one year or less&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,341&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due after one year through three years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,810&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,806&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,770&#160;&lt;/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 available-for-sale investment securities&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,951&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,026&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March&#160;31, 2021 and 2020, we had sales and maturities (which include calls) of investment securities, as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.374%"/&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:100%"&gt;Three Months Ended March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Sales &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Maturities&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,899&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.374%"/&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:100%"&gt;Three Months Ended March 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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Maturities&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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,006&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align: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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;7,878&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,250&#160;&lt;/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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;2,058&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Interest income, net of the amortization and accretion of the premium and discount, was $0.1 million for each of the three months ended March&#160;31, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&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;Recurring Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial assets and financial liabilities are classified in their entirety based on the lowest level of input that is significant to the fair value measurement. The following tables summarize our financial assets measured at fair value on a recurring basis as of March&#160;31, 2021 and December&#160;31, 2020 by level within the fair value hierarchy (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.741%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.393%"/&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:100%"&gt;March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&#160;Fair&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&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: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;4,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;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;&#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;4,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 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,275&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,275&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;98,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;98,030&#160;&lt;/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 #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;132,186&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.741%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.393%"/&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:100%"&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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&#160;Fair&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.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:100%"&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: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;4,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;&#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;4,749&#160;&lt;/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 12.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:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.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:100%"&gt;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.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:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,894&#160;&lt;/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 #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;120,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;137,208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The carrying amounts of restricted cash, accounts receivable, accounts payable and accrued liabilities approximate fair value because of the short maturity of these items. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;There were no changes to our valuation techniques used to measure financial asset and financial liability fair values on a recurring basis during the three months ended March&#160;31, 2021. The valuation techniques for the financial assets in the tables above are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of March&#160;31, 2021 and December&#160;31, 2020, cash equivalents include cash invested in money market funds and treasury securities with a maturity of three months or less. Fair value is based on market prices for identical assets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Available-for-Sale Investment Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value for our Level 1 investment securities is based on market prices for identical assets. Our Level 2 securities were priced by a pricing vendor. The pricing vendor utilizes the most recent observable market information in pricing these securities or, if specific prices are not available for these securities, other observable inputs like market transactions involving comparable securities are used.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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;Non-Recurring Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain assets, including goodwill, intangible assets and our note receivable with SecureDocs, Inc., are also subject to measurement at fair value on a non-recurring basis using Level 3 measurement, but only when they are deemed to be impaired. For the three months ended March&#160;31, 2021 and 2020, no impairments were identified on those assets required to be measured at fair value on a non-recurring basis.&lt;/span&gt;&lt;/div&gt;</appf:InvestmentSecuritiesAndFairValueMeasurementsDisclosureTextBlock>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfNDI0OQ_e577bb1a-6a42-4fe0-919c-19441e3bb660">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Investment securities classified as available-for-sale consisted of the following as of March&#160;31, 2021 and December&#160;31, 2020&#160;(in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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:100%"&gt;March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;98,030&#160;&lt;/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 available-for-sale investment securities&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:23pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.515%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.208%"/&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:100%"&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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated 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:100%"&gt;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,847&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;17,894&#160;&lt;/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 available-for-sale investment securities&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,951&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,026&#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:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i69f36b85de384d5fbf27d5b5185918f8_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfMy0xLTEtMS0w_72486da2-2af6-4bc6-8ebc-07a380fde712"
      unitRef="usd">17098000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i69f36b85de384d5fbf27d5b5185918f8_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfMy0zLTEtMS0w_ebe9ff5b-083b-4718-baf6-fff0018fd1c0"
      unitRef="usd">21000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i69f36b85de384d5fbf27d5b5185918f8_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfMy01LTEtMS0w_e6fd7dc8-a3c3-4040-95bd-bd195ee13790"
      unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i69f36b85de384d5fbf27d5b5185918f8_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfMy03LTEtMS0w_bd7f7bc9-7692-4429-b3cd-c7bc230c8696"
      unitRef="usd">17117000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="id65901dd4b7d4f7d8bf92290398fb15f_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNS0xLTEtMS0w_bb54d25a-0fd6-4a8e-91a1-edc6ec089f9d"
      unitRef="usd">97990000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="id65901dd4b7d4f7d8bf92290398fb15f_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNS0zLTEtMS0w_9deefd65-b275-4fc4-9fb6-59617e49c34a"
      unitRef="usd">43000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="id65901dd4b7d4f7d8bf92290398fb15f_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNS01LTEtMS0w_309f6e65-e202-4f34-9975-1bfede37e9b0"
      unitRef="usd">3000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id65901dd4b7d4f7d8bf92290398fb15f_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNS03LTEtMS0w_e5574b16-cc05-48da-bbe6-7327215d8070"
      unitRef="usd">98030000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNi0xLTEtMS0w_b79432a8-a10b-456e-802b-a17a5730e66d"
      unitRef="usd">115088000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNi0zLTEtMS0w_086e7fc1-3329-42e6-aa05-6ca8433b7ac3"
      unitRef="usd">64000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNi01LTEtMS0w_67672d12-d4e3-43fd-b5e8-97c47fdfc934"
      unitRef="usd">5000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjZlOTU3N2RmMWE1YzQ5NzZiNmFkN2YzN2YzOGMyMmQwL3RhYmxlcmFuZ2U6NmU5NTc3ZGYxYTVjNDk3NmI2YWQ3ZjM3ZjM4YzIyZDBfNi03LTEtMS0w_4e3d98bf-7911-4f4b-83a4-1eb3202ff477"
      unitRef="usd">115147000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i0fc1f66404e84254b4f4c7d4fcf05722_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfMi0xLTEtMS0w_11840ed3-5e01-4a5b-9282-eeea134786b8"
      unitRef="usd">17104000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i0fc1f66404e84254b4f4c7d4fcf05722_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfMi0zLTEtMS0w_9f994d5c-54e5-4846-9c45-a762e2a09cae"
      unitRef="usd">29000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i0fc1f66404e84254b4f4c7d4fcf05722_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfMi01LTEtMS0w_13db8c3d-17a0-47f1-b09f-01a7670ddcbd"
      unitRef="usd">1000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i0fc1f66404e84254b4f4c7d4fcf05722_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfMi03LTEtMS0w_b11df2c0-d7e2-486e-94e2-36f8ec2e55a0"
      unitRef="usd">17132000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i11aa534b2d37424f895f1c77357a509e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNS0xLTEtMS0w_63916bc8-fe06-4e1c-8d42-1a02f1afcef1"
      unitRef="usd">17847000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i11aa534b2d37424f895f1c77357a509e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNS0zLTEtMS0w_f05a95a4-2440-47d3-ac4b-adeeff27c83c"
      unitRef="usd">47000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i11aa534b2d37424f895f1c77357a509e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNS01LTEtMS0w_32339cf7-6eea-4050-a2c0-aa760b26d133"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i11aa534b2d37424f895f1c77357a509e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNS03LTEtMS0w_f9aa0973-1495-40a1-accc-26a0b9a51a85"
      unitRef="usd">17894000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNi0xLTEtMS0w_a18c3c1f-93a7-47ea-a2e9-fcca50c9f713"
      unitRef="usd">34951000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNi0zLTEtMS0w_2c06e64b-d232-497d-a133-eda325105e9c"
      unitRef="usd">76000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNi01LTEtMS0w_e2db81a9-9993-48a9-a5fd-91e93ca10035"
      unitRef="usd">1000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjVjODg1YTNmYTJlOTQ1Y2I4Y2YxYjFkYjk0MGQwYTdhL3RhYmxlcmFuZ2U6NWM4ODVhM2ZhMmU5NDVjYjhjZjFiMWRiOTQwZDBhN2FfNi03LTEtMS0w_c213f606-097a-4f2a-8daa-4336d15230cc"
      unitRef="usd">35026000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <appf:AvailableForSaleSecuritiesMaximumContractualMaturity
      contextRef="i4f7c634b450249acaa90e2a45a33cd82_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfMTA1Ng_7411b51c-d2fd-48a8-b793-b2045af53420">P36M</appf:AvailableForSaleSecuritiesMaximumContractualMaturity>
    <appf:AvailableForSaleSecuritiesMaximumContractualMaturity
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfMTA1Ng_a319cd2b-f348-4b37-9f51-183555233ecc">P36M</appf:AvailableForSaleSecuritiesMaximumContractualMaturity>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfNDI0NQ_36f63164-1e68-4bb0-a558-88e4d8665ac1">The fair values of available-for-sale investment securities, by remaining contractual maturity, are as follows (in thousands):&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.263%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.226%"/&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;March 31, 2021&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;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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Estimated 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:100%"&gt;Due in one year or less&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,341&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Due after one year through three years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,810&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,806&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,770&#160;&lt;/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 available-for-sale investment securities&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,951&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,026&#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;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMi0xLTEtMS0w_689a4725-5413-4af2-8deb-6e07d179fcdb"
      unitRef="usd">103278000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMi0zLTEtMS0w_3bea5cb5-12cb-4160-ab8f-2e51428b8fe5"
      unitRef="usd">103341000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMi01LTEtMS0w_16c447c4-8906-4b7f-bb60-e71f2f3c5cbe"
      unitRef="usd">28197000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMi03LTEtMS0w_b9f08c25-44a2-4755-a642-2a05fc317bb6"
      unitRef="usd">28256000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMy0xLTEtMS0w_b8fae0aa-b6c3-4d9f-99ab-4cfbd47a6f75"
      unitRef="usd">11810000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMy0zLTEtMS0w_769d43f9-1891-471b-ba38-009c612572f6"
      unitRef="usd">11806000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMy01LTEtMS0w_36b7e840-5bc8-4265-bbea-57f8a7932ec2"
      unitRef="usd">6754000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfMy03LTEtMS0w_96c6e250-700b-4915-8929-b44e64f0cce6"
      unitRef="usd">6770000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfNC0xLTEtMS0w_75635565-b651-4329-85fa-24488c0a5648"
      unitRef="usd">115088000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfNC0zLTEtMS0w_313326e7-e634-48ba-900f-a6482d0c4968"
      unitRef="usd">115147000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfNC01LTEtMS0w_291b9553-0fab-4151-a625-808ae68b17e2"
      unitRef="usd">34951000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmU1MDA1NTdmNWM4NTQxODdhY2M0ZGY3NzZiMWZiNmQ0L3RhYmxlcmFuZ2U6ZTUwMDU1N2Y1Yzg1NDE4N2FjYzRkZjc3NmIxZmI2ZDRfNC03LTEtMS0w_3136b1ab-9378-48f3-ad15-3f8aeb33fe85"
      unitRef="usd">35026000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ScheduleOfRealizedGainLossTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfNDIzMw_cc849627-bae7-4911-9d86-ec5f6af0f76a">&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March&#160;31, 2021 and 2020, we had sales and maturities (which include calls) of investment securities, as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.374%"/&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:100%"&gt;Three Months Ended March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Sales &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Maturities&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/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;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,899&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.369%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.374%"/&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:100%"&gt;Three Months Ended March 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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Realized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross Proceeds from Maturities&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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,006&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align: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;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;7,878&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,250&#160;&lt;/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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;2,058&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align: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:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfRealizedGainLossTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i06c8a0a91fad45cd9a4ab34082448f9f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmYyOGRlYmVkZTIzNjRkNDZhMTk4YWJmZjM0YTJjZjE1L3RhYmxlcmFuZ2U6ZjI4ZGViZWRlMjM2NGQ0NmExOThhYmZmMzRhMmNmMTVfNS0xLTEtMS0w_9bf42654-189b-4f54-8842-674971671d13"
      unitRef="usd">1000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i06c8a0a91fad45cd9a4ab34082448f9f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmYyOGRlYmVkZTIzNjRkNDZhMTk4YWJmZjM0YTJjZjE1L3RhYmxlcmFuZ2U6ZjI4ZGViZWRlMjM2NGQ0NmExOThhYmZmMzRhMmNmMTVfNS0zLTEtMS0w_92d268f6-440b-4bc5-bd2f-f9c61cf5311d"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i06c8a0a91fad45cd9a4ab34082448f9f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmYyOGRlYmVkZTIzNjRkNDZhMTk4YWJmZjM0YTJjZjE1L3RhYmxlcmFuZ2U6ZjI4ZGViZWRlMjM2NGQ0NmExOThhYmZmMzRhMmNmMTVfNS01LTEtMS0w_0cd01d42-db37-4d04-beb3-dd90b4b328d3"
      unitRef="usd">17899000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i06c8a0a91fad45cd9a4ab34082448f9f_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOmYyOGRlYmVkZTIzNjRkNDZhMTk4YWJmZjM0YTJjZjE1L3RhYmxlcmFuZ2U6ZjI4ZGViZWRlMjM2NGQ0NmExOThhYmZmMzRhMmNmMTVfNS03LTEtMS0w_2e5575f1-8402-4c3d-af17-aae78243838b"
      unitRef="usd">1000000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i73ab109a54284d329c4f3bec6438b8ea_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMi0xLTEtMS0w_857997ae-f9fd-40e5-9bc3-f8b2c7936c63"
      unitRef="usd">5000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i73ab109a54284d329c4f3bec6438b8ea_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMi0zLTEtMS0w_8e3a24b1-17ab-4d53-b9c8-c584ef6e50aa"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i73ab109a54284d329c4f3bec6438b8ea_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMi01LTEtMS0w_a8f68249-91d3-4295-a42a-67aa11156c34"
      unitRef="usd">4006000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i73ab109a54284d329c4f3bec6438b8ea_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMi03LTEtMS0w_838555fe-e105-4569-b901-fa2e604fce35"
      unitRef="usd">4000000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i35cef8df26bf47049a15bf0847dd0125_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMy0xLTEtMS0w_5e6985b4-0df0-4dd1-a34c-06923bde7bf0"
      unitRef="usd">24000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i35cef8df26bf47049a15bf0847dd0125_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMy0zLTEtMS0w_39dc8462-91da-4127-a6eb-add639d063e7"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i35cef8df26bf47049a15bf0847dd0125_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMy01LTEtMS0w_40ee0c95-a0d5-4b70-9b37-c04cb8fe4a07"
      unitRef="usd">7878000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i35cef8df26bf47049a15bf0847dd0125_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfMy03LTEtMS0w_fb0f589c-a6be-48f8-a66e-26d5fccdb6a8"
      unitRef="usd">1250000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i5d74baa48317444e9c6f95e16455ff74_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNS0xLTEtMS0w_30a562d8-2f47-4653-811b-f0f14ac4b9d9"
      unitRef="usd">4000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i5d74baa48317444e9c6f95e16455ff74_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNS0zLTEtMS0w_fbc0974e-596e-440d-988f-9b8855d2591e"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i5d74baa48317444e9c6f95e16455ff74_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNS01LTEtMS0w_6058c92d-0980-44af-b0e0-62e4657cc59e"
      unitRef="usd">2058000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i5d74baa48317444e9c6f95e16455ff74_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNS03LTEtMS0w_a5a2fe80-7bdc-42fb-b2b4-9c1ec60acb58"
      unitRef="usd">2000000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNi0xLTEtMS0w_89793510-8103-46be-b0f3-be4f23a052a0"
      unitRef="usd">33000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNi0zLTEtMS0w_ae98fb22-80dd-4010-b2a7-1f9fbeda656e"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNi01LTEtMS0w_236da649-f2ce-4c25-9de2-e677c4c89787"
      unitRef="usd">13942000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjU1Yjk0NTVjZTg2YTRiYWRiYTBkN2YyZmQ2YTExMmI4L3RhYmxlcmFuZ2U6NTViOTQ1NWNlODZhNGJhZGJhMGQ3ZjJmZDZhMTEyYjhfNi03LTEtMS0w_c0771911-0142-44b0-af6e-63f85c0393bb"
      unitRef="usd">7250000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:InvestmentIncomeInterest
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfMTQyMw_9e7836b9-d96a-4a76-a1b2-6b91366d07b2"
      unitRef="usd">100000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfMTQyMw_f07b6e6e-853a-450c-a550-b294d5da3411"
      unitRef="usd">100000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RleHRyZWdpb246MzIwMTYwZGI1Y2VjNDExM2EyMWE5YjI0ZWQwNzcwOTNfNDI0Ng_95823ff6-ab6e-42ed-8c84-e5f5778bb1fd">The following tables summarize our financial assets measured at fair value on a recurring basis as of March&#160;31, 2021 and December&#160;31, 2020 by level within the fair value hierarchy (in thousands):&lt;div style="margin-bottom:5pt;margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.741%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.393%"/&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:100%"&gt;March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&#160;Fair&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&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: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;4,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;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;&#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;4,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 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,275&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,275&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;98,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;98,030&#160;&lt;/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 #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;115,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;132,186&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:17pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:42.741%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.393%"/&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:100%"&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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level&#160;2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&#160;Fair&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash equivalents:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.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:100%"&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: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;4,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;&#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;4,749&#160;&lt;/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 12.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:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;97,433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.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:100%"&gt;Agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.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:100%"&gt;Treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,894&#160;&lt;/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 #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;120,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;137,208&#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:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ic94d8bbf87d34bddb6c93882a918b928_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMy0xLTEtMS0w_3255996f-a535-4745-869f-33b986206c6c"
      unitRef="usd">4764000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i2c23f5709d11456e90f2d877a922572a_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMy0zLTEtMS0w_72cf90e2-1fd2-47ac-afdb-f27b0caa834d"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i1d61f244cb6a40c4bc5691fe17e90549_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMy01LTEtMS0w_5a00658e-7656-4cd8-a837-012338df3f76"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i9fdfa55fe70b4d6185f4788214ba3a7f_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMy03LTEtMS0w_f2435e03-82a1-4024-9840-662ad351b219"
      unitRef="usd">4764000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i00cc48af21d7409db36d0ca5f02f4f7b_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNC0xLTEtMS0w_d3fe61e6-71b6-41d8-abad-cab5e19555fe"
      unitRef="usd">12275000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i613ee02027a942fe8231cf45cde01adb_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNC0zLTEtMS0w_159f8a2d-1c79-4520-abd8-1d94db911d71"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i2a392b7b591b457db4999e8fc0097e8d_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNC01LTEtMS0w_9d5db2af-3138-4a00-8263-cc66b0d87b66"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i01e19b7552de4890ac0bade9ff9e6a1b_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNC03LTEtMS0w_de30cc72-be76-4afc-91da-7298b9b4fdf4"
      unitRef="usd">12275000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id6a2cd937a9f4730ab39f971b8525a73_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNy0xLTEtMS0w_c6cc6178-d00f-468e-a905-180ed308027a"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ic81c0f7b7b66450e8c1a158efefa8363_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNy0zLTEtMS0w_e4cf6359-1fdb-4480-8032-574c5a7863a9"
      unitRef="usd">17117000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i36d10a93db9d40e2b80e1053262f6382_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNy01LTEtMS0w_ff0c7143-01dc-4406-b188-ee0803cff5c9"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i5ffb734058bf4a96a68d2e835183d0c3_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfNy03LTEtMS0w_7b42645f-a560-4de4-9553-59f8607cedf9"
      unitRef="usd">17117000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i00cc48af21d7409db36d0ca5f02f4f7b_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfOS0xLTEtMS0w_760ba7c3-5b6b-4b3f-bbac-29adf78fff3d"
      unitRef="usd">98030000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i613ee02027a942fe8231cf45cde01adb_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfOS0zLTEtMS0w_df6c7933-2ac4-4075-9a80-3c878840620d"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i2a392b7b591b457db4999e8fc0097e8d_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfOS01LTEtMS0w_78b2307a-b61a-46fb-907d-09537c9ec648"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i01e19b7552de4890ac0bade9ff9e6a1b_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfOS03LTEtMS0w_3ee6e0d8-0bcc-4177-9cb1-2d7f32008b25"
      unitRef="usd">98030000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="iae573f58db2e4920b8bcf028e3435064_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMTAtMS0xLTEtMA_8b4e3026-dd5b-448b-ba31-75131220b688"
      unitRef="usd">115069000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i9578ad87f2f14ba58dc5cd58d21250b7_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMTAtMy0xLTEtMA_d7a168ee-6397-4dd7-ad1b-3a29d15bd612"
      unitRef="usd">17117000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i4607f63e36d84185ba51044860075c4f_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMTAtNS0xLTEtMA_6fb57eca-0278-4fdb-ac22-9f4e231c7d8c"
      unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i387b8916a1bd4ef5aa6b1c2c109cfaec_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjYxZDA3NDlkMjE4NTRkYjk4NTkwZGIzNjliMjM0OTQ2L3RhYmxlcmFuZ2U6NjFkMDc0OWQyMTg1NGRiOTg1OTBkYjM2OWIyMzQ5NDZfMTAtNy0xLTEtMA_a5dddd3e-6c37-4455-8f78-bf654d2a3071"
      unitRef="usd">132186000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i1c5d3099e5fd4cc2aaf25ec4dc6ba748_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfMy0xLTEtMS0w_de7f327c-6610-4f05-9f08-adcd9029f2c8"
      unitRef="usd">4749000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ieb4ad5fe3c1e4a8eb4e87f33b12d4afc_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfMy0zLTEtMS0w_890d153c-ec0a-478d-a222-88d9be8f17ae"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i970b80f5a4f04759b28d46d3ddb9332b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfMy01LTEtMS0w_d1580bb3-4483-4fad-be07-fbae76d152ae"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i769c770b42be419895d9f447f8d6d202_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfMy03LTEtMS0w_0acc9355-7ca3-4f9c-b866-eb9032b99120"
      unitRef="usd">4749000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i63a4ceaa647c403c9bfc6a0aab373169_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNC0xLTEtMS00NTM_cd39326a-0c65-462a-beb2-cc56002810a1"
      unitRef="usd">97433000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie4ae85eb247c46c5af0758b3070a1974_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNC0zLTEtMS00NTM_351a6555-b119-4e9d-9ad0-3ee7d603d550"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id132ac6f7fe24965ae30aa6e0e08f408_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNC01LTEtMS00NTM_6ec6592d-ae39-4640-b2bc-dde14dcaca24"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i3eac005ccb664f00b36420871eae2733_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNC03LTEtMS00NTM_783a49fc-18e7-4266-95a4-06ea60c56c65"
      unitRef="usd">97433000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i578c364eace945cc820f6d46db6d31e2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNi0xLTEtMS0w_078e46eb-a996-4127-ab56-1b78217c56be"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i4c3dc887b4354977b963755f697b212f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNi0zLTEtMS0w_128264a3-929d-4efd-bd1d-f7139501fd45"
      unitRef="usd">17132000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i40c7fbfcf49c4fe8a20f78cfc944e664_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNi01LTEtMS0w_8bfa46de-caa5-4c39-ad53-9ded1d820abc"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i2f2103f8ff7c4239b2fb0ec75381077d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfNi03LTEtMS0w_205a9a82-e6ba-4e4a-8eee-b226c5b336f9"
      unitRef="usd">17132000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ib4fe8d81e71244849a9ff69f034cdbb9_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOC0xLTEtMS0w_35d2c785-49b5-4229-a79d-53b2d178ca7a"
      unitRef="usd">17894000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i73bec1f40b4e42c8b41413d48dd32138_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOC0zLTEtMS0w_a3d3561d-8491-4ef5-a018-a08c14a01ced"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="iea53e50a790040f990a5ee51f8a359e2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOC01LTEtMS0w_6dd37407-e351-4c3c-ae68-8e74befccf00"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i1c799d512ae642fe89ca816aa780fb01_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOC03LTEtMS0w_7af85aab-a5f2-40c8-ad26-702e30f6def9"
      unitRef="usd">17894000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="ib4fe8d81e71244849a9ff69f034cdbb9_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOS0xLTEtMS0w_3d08106c-99a6-4288-888c-433b2d0d61a8"
      unitRef="usd">120076000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i73bec1f40b4e42c8b41413d48dd32138_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOS0zLTEtMS0w_f1ee76fb-6b2b-4ae1-bbf1-e56338451a56"
      unitRef="usd">17132000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="iea53e50a790040f990a5ee51f8a359e2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOS01LTEtMS0w_5f030e17-537f-4539-9a11-55d7b953a79b"
      unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i1c799d512ae642fe89ca816aa780fb01_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180Ni9mcmFnOjMyMDE2MGRiNWNlYzQxMTNhMjFhOWIyNGVkMDc3MDkzL3RhYmxlOjFlMGNlMDM5Y2RkOTQ4NWRiY2Q0ZjE1Y2M3ZjMwNDQ5L3RhYmxlcmFuZ2U6MWUwY2UwMzljZGQ5NDg1ZGJjZDRmMTVjYzdmMzA0NDlfOS03LTEtMS0w_8a0b37b0-c8f5-4ec3-b858-6ab1a4180843"
      unitRef="usd">137208000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RleHRyZWdpb246ZDZhYzQ1MWVmNGQ1NGM3Zjg4ZWQyMDEwZWI5ZTNjMDlfNzk2_bd151884-2356-4047-94cb-7cb470fd76c9">Software Development Costs, net&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalized software development costs were as follows (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.225%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&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:100%"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, gross&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;104,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,974&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(66,515)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(61,515)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,554&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalized software development costs were $7.1 million and $6.7 million for the three months ended March&#160;31, 2021 and 2020, respectively. Amortization expense with respect to capitalized software development costs totaled $5.0 million and $4.2 million for the three months ended March&#160;31, 2021 and 2020, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future amortization expense with respect to capitalized software development costs as of March&#160;31, 2021 is estimated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:84.864%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.206%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Years Ending December 31,&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,970&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,033&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;404&#160;&lt;/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;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,554&#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:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock>
    <appf:ScheduleOfCapitalizedComputerSoftwareTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RleHRyZWdpb246ZDZhYzQ1MWVmNGQ1NGM3Zjg4ZWQyMDEwZWI5ZTNjMDlfNzk5_2bb6b36f-8c37-4f11-96f0-2c26925c6605">&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalized software development costs were as follows (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.225%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&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:100%"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, gross&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;104,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;96,974&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: Accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(66,515)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(61,515)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalized software development costs, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,554&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,459&#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;</appf:ScheduleOfCapitalizedComputerSoftwareTableTextBlock>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOjQ2OTVkYWEyZGIxNzQyNGY5YWZjNTE4ODg3ZGFlNzFkL3RhYmxlcmFuZ2U6NDY5NWRhYTJkYjE3NDI0ZjlhZmM1MTg4ODdkYWU3MWRfMS0yLTEtMS0w_3d8d1e40-84b2-48dc-aa00-d69a0b18b2ed"
      unitRef="usd">104069000</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOjQ2OTVkYWEyZGIxNzQyNGY5YWZjNTE4ODg3ZGFlNzFkL3RhYmxlcmFuZ2U6NDY5NWRhYTJkYjE3NDI0ZjlhZmM1MTg4ODdkYWU3MWRfMS00LTEtMS0w_6029ff88-f51e-40d3-a817-758833166783"
      unitRef="usd">96974000</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOjQ2OTVkYWEyZGIxNzQyNGY5YWZjNTE4ODg3ZGFlNzFkL3RhYmxlcmFuZ2U6NDY5NWRhYTJkYjE3NDI0ZjlhZmM1MTg4ODdkYWU3MWRfMi0yLTEtMS0w_53a58ea9-ef56-4123-8633-45bcced83a5f"
      unitRef="usd">66515000</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOjQ2OTVkYWEyZGIxNzQyNGY5YWZjNTE4ODg3ZGFlNzFkL3RhYmxlcmFuZ2U6NDY5NWRhYTJkYjE3NDI0ZjlhZmM1MTg4ODdkYWU3MWRfMi00LTEtMS0w_5e4e9e14-5214-4674-bf18-3b89d0423524"
      unitRef="usd">61515000</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOjQ2OTVkYWEyZGIxNzQyNGY5YWZjNTE4ODg3ZGFlNzFkL3RhYmxlcmFuZ2U6NDY5NWRhYTJkYjE3NDI0ZjlhZmM1MTg4ODdkYWU3MWRfMy0yLTEtMS0w_d70ad505-3bb7-403a-82b6-6ecb9244ca0b"
      unitRef="usd">37554000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOjQ2OTVkYWEyZGIxNzQyNGY5YWZjNTE4ODg3ZGFlNzFkL3RhYmxlcmFuZ2U6NDY5NWRhYTJkYjE3NDI0ZjlhZmM1MTg4ODdkYWU3MWRfMy00LTEtMS0w_37e0df85-670f-4fa7-9cad-c3e5ed50333c"
      unitRef="usd">35459000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RleHRyZWdpb246ZDZhYzQ1MWVmNGQ1NGM3Zjg4ZWQyMDEwZWI5ZTNjMDlfMTg0_b9a2a48e-f31a-4f18-9cba-81e2da047fec"
      unitRef="usd">7100000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RleHRyZWdpb246ZDZhYzQ1MWVmNGQ1NGM3Zjg4ZWQyMDEwZWI5ZTNjMDlfMTkx_0a47e815-1634-487d-917a-52f0d900e7e0"
      unitRef="usd">6700000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RleHRyZWdpb246ZDZhYzQ1MWVmNGQ1NGM3Zjg4ZWQyMDEwZWI5ZTNjMDlfMzkz_24e10418-55f9-49d0-9c70-56981d5b5e19"
      unitRef="usd">5000000.0</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RleHRyZWdpb246ZDZhYzQ1MWVmNGQ1NGM3Zjg4ZWQyMDEwZWI5ZTNjMDlfNDAw_a8c6293a-3406-4452-bfdd-c3519741e226"
      unitRef="usd">4200000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <appf:ScheduleOfCapitalizedComputerSoftwareFutureAmortizationExpenseTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RleHRyZWdpb246ZDZhYzQ1MWVmNGQ1NGM3Zjg4ZWQyMDEwZWI5ZTNjMDlfODAx_2e7b3926-8b8b-4bf6-9ae1-03ea713d5280">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future amortization expense with respect to capitalized software development costs as of March&#160;31, 2021 is estimated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:84.864%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.206%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Years Ending December 31,&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,970&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,033&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;404&#160;&lt;/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;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,554&#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;</appf:ScheduleOfCapitalizedComputerSoftwareFutureAmortizationExpenseTableTextBlock>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseRemainderofFiscalYear
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOmZkYTBiOWNmYWUyZjQ0ZWQ4MDQwMDA3YTc3MGJmNGFhL3RhYmxlcmFuZ2U6ZmRhMGI5Y2ZhZTJmNDRlZDgwNDAwMDdhNzcwYmY0YWFfMS0yLTEtMS0w_5c173918-93ac-486f-b025-1e601b7a8763"
      unitRef="usd">14970000</appf:CapitalizedComputerSoftwareAmortizationExpenseRemainderofFiscalYear>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearOne
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOmZkYTBiOWNmYWUyZjQ0ZWQ4MDQwMDA3YTc3MGJmNGFhL3RhYmxlcmFuZ2U6ZmRhMGI5Y2ZhZTJmNDRlZDgwNDAwMDdhNzcwYmY0YWFfMi0yLTEtMS0w_cc42ff50-26b0-4db1-bdbb-740ac4cde1df"
      unitRef="usd">15147000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearOne>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearTwo
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOmZkYTBiOWNmYWUyZjQ0ZWQ4MDQwMDA3YTc3MGJmNGFhL3RhYmxlcmFuZ2U6ZmRhMGI5Y2ZhZTJmNDRlZDgwNDAwMDdhNzcwYmY0YWFfMy0yLTEtMS0w_ff18227a-609f-45dd-8b2b-db44499d6f2e"
      unitRef="usd">7033000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearTwo>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearThree
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOmZkYTBiOWNmYWUyZjQ0ZWQ4MDQwMDA3YTc3MGJmNGFhL3RhYmxlcmFuZ2U6ZmRhMGI5Y2ZhZTJmNDRlZDgwNDAwMDdhNzcwYmY0YWFfNC0yLTEtMS0w_7edb0f4b-4aa5-428f-a44e-eab7120f4e82"
      unitRef="usd">404000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearThree>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM180OS9mcmFnOmQ2YWM0NTFlZjRkNTRjN2Y4OGVkMjAxMGViOWUzYzA5L3RhYmxlOmZkYTBiOWNmYWUyZjQ0ZWQ4MDQwMDA3YTc3MGJmNGFhL3RhYmxlcmFuZ2U6ZmRhMGI5Y2ZhZTJmNDRlZDgwNDAwMDdhNzcwYmY0YWFfNS0yLTEtMS0w_ae475d95-2fbf-45fc-9529-959a57cccc34"
      unitRef="usd">37554000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RleHRyZWdpb246NTA4YTE2M2RjYTJjNDRhMjllY2M4NThmYmQ2ODE2MWVfODY2_27552475-ff55-4f75-b5f4-5b14df15cb65">Intangible Assets, net&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets consisted of the following (in thousands, except years):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.992%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.394%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.394%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.394%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.398%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&#160;Useful Life in Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,664)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,335&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4,033)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(831)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,059&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,334)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(71)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(243)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(12,851)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align: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.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:38.196%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.416%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.122%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.416%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.418%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&#160;Useful Life in Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,550)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,787)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,641)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(732)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,964)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(70)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(240)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,664)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amortization expense with respect to intangible assets totaled $1.2 million and $1.3 million for the three months ended March&#160;31, 2021 and 2020, respectively. Future amortization expense with respect to intangible assets is estimated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:85.449%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.621%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Years Ending December 31,&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,605&#160;&lt;/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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;835&#160;&lt;/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;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;833&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,170&#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:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RleHRyZWdpb246NTA4YTE2M2RjYTJjNDRhMjllY2M4NThmYmQ2ODE2MWVfODY5_568b4724-7109-4bb8-948f-049778f11343">&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets consisted of the following (in thousands, except years):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.992%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.394%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.394%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.394%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.398%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&#160;Useful Life in Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,664)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,335&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4,033)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(831)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,059&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,334)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(71)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(243)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(12,851)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align: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.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:38.196%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.416%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.122%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.416%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.418%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Gross&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Net&#160;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&#160;Useful Life in Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,550)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Database&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,787)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Technology&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,641)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks and trade names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(732)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Partner relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(680)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align: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.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,964)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Domain names&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(70)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(240)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,664)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i1f515c1d5f4e449596f9fe0774a8ebbe_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMi0yLTEtMS0w_9d495b2a-c87c-459d-a862-49c200eb3596"
      unitRef="usd">2840000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i1f515c1d5f4e449596f9fe0774a8ebbe_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMi00LTEtMS0w_7509d95b-c969-4f39-898c-8a3019b76f1c"
      unitRef="usd">1664000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i1f515c1d5f4e449596f9fe0774a8ebbe_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMi02LTEtMS0w_4fe9dcbc-65b3-4111-8d9f-7394618f184e"
      unitRef="usd">1176000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ie45cb110dd894e6691a4edd226a91600_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMi04LTEtMS0w_56e7149d-edd3-45a3-aa87-62cfc185a016">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i02dd1508050e46f5bfcbb5ec1908fa73_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMy0yLTEtMS0w_5341f1a1-6ef6-4148-84da-c8a67ed1b059"
      unitRef="usd">8330000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i02dd1508050e46f5bfcbb5ec1908fa73_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMy00LTEtMS0w_cf17c343-180f-4f64-b95e-dac527fd1008"
      unitRef="usd">1995000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i02dd1508050e46f5bfcbb5ec1908fa73_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMy02LTEtMS0w_16ee46d4-d091-44ce-922e-eb0300a0f542"
      unitRef="usd">6335000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ie5594103a4ac4978b847eab68323a98c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMy04LTEtMS0w_29036530-1ad5-425e-885e-0495036f716b">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i8a38f4ea8cfd4bd18a6022c9a1535306_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNC0yLTEtMS0w_6b5924db-954e-4782-a55d-30f7a0f933a8"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i8a38f4ea8cfd4bd18a6022c9a1535306_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNC00LTEtMS0w_d975891e-7fe5-48f3-b97a-204511e109c6"
      unitRef="usd">4033000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i8a38f4ea8cfd4bd18a6022c9a1535306_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNC02LTEtMS0w_43158673-7d6b-4fd5-9ce8-cdb9761e5d71"
      unitRef="usd">2506000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i794ade7e17e14ea8833b9e6d1cd6c0ed_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNC04LTEtMS0w_571c2210-e3fe-41fa-8b55-a2a095428f22">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="iba00f44b29434eebba0ade523d792b6e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNS0yLTEtMS0w_db266ee1-0dba-404c-8b2b-18bbed2d2e41"
      unitRef="usd">1890000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="iba00f44b29434eebba0ade523d792b6e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNS00LTEtMS0w_66d8950a-3367-4bcb-8652-c64c3069a581"
      unitRef="usd">831000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="iba00f44b29434eebba0ade523d792b6e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNS02LTEtMS0w_ce13ecd8-c487-46a2-8236-b9d1edb140ce"
      unitRef="usd">1059000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i6986141104ab49f0b238b438506ae3d5_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNS04LTEtMS0w_6028c7ea-7c5b-4e75-bcf5-56f0202c89a2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ic1f8ad49d2e44ac696abce4c685a7238_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNi0yLTEtMS0w_a02be491-1c89-4b5a-b29e-d44866c45640"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ic1f8ad49d2e44ac696abce4c685a7238_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNi00LTEtMS0w_98b11eef-e05f-419c-a6bc-57597d98dfc0"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ic1f8ad49d2e44ac696abce4c685a7238_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNi02LTEtMS0w_fe365ff5-c628-42d0-a5e8-d206d164fb82"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i403125465a484061aedca6ba16497fb6_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNi04LTEtMS0w_88625014-5701-4dcd-9cec-eb344a6743ba">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i42e518339a6742278596e07b3b36f3be_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNy0yLTEtMS0w_79d77aa6-0c0b-4e46-bf00-68ed01ba9d95"
      unitRef="usd">7400000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i42e518339a6742278596e07b3b36f3be_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNy00LTEtMS0w_e9880d2f-4381-4d07-a388-d6d481190308"
      unitRef="usd">3334000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i42e518339a6742278596e07b3b36f3be_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNy02LTEtMS0w_730e8cdd-a7a1-402d-a7f6-a53221a687a5"
      unitRef="usd">4066000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ifcf81b14983d4a3693a595f27c4f86da_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfNy04LTEtMS0w_da90c2ae-48b9-48e8-9fe7-aeb34186f882">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ie50c0fed9a8449bb91ec264ba05efb0d_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOC0yLTEtMS0w_725e543f-f950-46e3-9204-52f4019cf527"
      unitRef="usd">90000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ie50c0fed9a8449bb91ec264ba05efb0d_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOC00LTEtMS0w_13738545-afff-4be5-9d4e-d2833f0e0776"
      unitRef="usd">71000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie50c0fed9a8449bb91ec264ba05efb0d_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOC02LTEtMS0w_9be85c71-17f5-4c00-acf8-b282a2771874"
      unitRef="usd">19000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i79d6e60bb6424295877e6d242d0558b7_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOC04LTEtMS0w_1cb2c578-db93-4981-8468-7e6250d5015c">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i657b595e48f14234a90b5c789dfcc341_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOS0yLTEtMS0w_090e57e7-6f53-4e67-aeb8-7f3b5918f14b"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i657b595e48f14234a90b5c789dfcc341_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOS00LTEtMS0w_fb3d97cc-f60e-455d-af9f-fe20535711f1"
      unitRef="usd">243000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i657b595e48f14234a90b5c789dfcc341_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOS02LTEtMS0w_7dbbd936-9c59-4d70-ba9e-cf735f3adce0"
      unitRef="usd">9000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i5d0c75c36042417a90ecc699f5150883_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfOS04LTEtMS0w_f162d53f-d12b-4860-9dc0-ea5f0ac46442">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMTEtMi0xLTEtMA_a6445132-7f16-460c-a61f-5b5c39ab89e6"
      unitRef="usd">28021000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMTEtNC0xLTEtMA_88a9ef41-fbd5-40a3-9f2e-413770f19d2b"
      unitRef="usd">12851000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMTEtNi0xLTEtMA_06a51a0a-0a7c-4395-a52a-f81ba1d33eeb"
      unitRef="usd">15170000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i57d1edb6fd694c5eb93b0d3e8847784f_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmJkOTg4OTU2NjY5ZTQ2MmM4Y2MxMWY2ZDgwZTYzMWM3L3RhYmxlcmFuZ2U6YmQ5ODg5NTY2NjllNDYyYzhjYzExZjZkODBlNjMxYzdfMTEtOC0xLTEtMA_d0ef06ec-85f3-41fc-8025-abf4a08cdb9f">P6Y3M18D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ibe7bf4f6741d48679e25ab5e30275c7e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMi0yLTEtMS0w_7fb3c433-217b-49db-af60-c6d7fb60f4fd"
      unitRef="usd">2840000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ibe7bf4f6741d48679e25ab5e30275c7e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMi00LTEtMS0w_f6809da6-5fee-4856-8e53-bdf2fa201f14"
      unitRef="usd">1550000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ibe7bf4f6741d48679e25ab5e30275c7e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMi02LTEtMS0w_44344bbc-3489-4aaa-9d57-873d43cc446f"
      unitRef="usd">1290000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i0a6714623c494b4e9f641f9896af1494_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMi04LTEtMS0w_dc6bc963-dd18-4f44-9f74-25e4f6a9c2ea">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="if256fa3cacc642ef92d2746910907837_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMy0yLTEtMS0w_5461166c-3ffa-4472-97f3-e57331c7e06b"
      unitRef="usd">8330000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if256fa3cacc642ef92d2746910907837_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMy00LTEtMS0w_1dd741a1-465a-42ea-b161-0f4fc4d5fbd1"
      unitRef="usd">1787000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if256fa3cacc642ef92d2746910907837_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMy02LTEtMS0w_b9b960e5-699b-4b27-8f2f-e60b3c8e648c"
      unitRef="usd">6543000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="icb4b13bcc67446b1a428ee271bbc78e5_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMy04LTEtMS0w_0a6dde94-c3be-4c6b-82b6-171db7745dd2">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i7f9207a4061542b69ec413b1dddcba45_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNC0yLTEtMS0w_24c4fd25-f9e9-4fa4-a3dc-b8a973835439"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i7f9207a4061542b69ec413b1dddcba45_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNC00LTEtMS0w_d306394b-01e8-4d34-955c-0733855b1a72"
      unitRef="usd">3641000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i7f9207a4061542b69ec413b1dddcba45_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNC02LTEtMS0w_5b5b6dad-0e77-40bb-8330-a7ec4fda07bc"
      unitRef="usd">2898000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="icdcac6ae490b4056b3377d424be69e25_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNC04LTEtMS0w_5d0cbe23-c6ea-4b1b-b3bf-15b36166f081">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i5a0e15f9969a4afaa4ba54ec59c4c8cd_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNS0yLTEtMS0w_0127cf00-3397-4ce0-9e18-c611a1ba6859"
      unitRef="usd">1890000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i5a0e15f9969a4afaa4ba54ec59c4c8cd_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNS00LTEtMS0w_850c31db-6fed-42e2-8bdd-e9a644aa80e5"
      unitRef="usd">732000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i5a0e15f9969a4afaa4ba54ec59c4c8cd_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNS02LTEtMS0w_b20f5ebc-c3d2-49dd-b090-5972fa18231f"
      unitRef="usd">1158000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i8f992a927e654c7ebdd5f776da884482_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNS04LTEtMS0w_8e0c368c-7030-482d-8df1-82e1c2f3c4d5">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i7b8e10d4f46c44b4ac702d7756148b24_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNi0yLTEtMS0w_48226089-0a7a-4dd4-b2d9-3e26d8e8b43b"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i7b8e10d4f46c44b4ac702d7756148b24_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNi00LTEtMS0w_b3d57ff6-52bd-423c-9e9d-dc1327237a06"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i7b8e10d4f46c44b4ac702d7756148b24_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNi02LTEtMS0w_7e559dad-06b9-41de-84d7-a33908a8ac30"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ie208dfeef02c44b6825ee8bcdf9226f9_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNi04LTEtMS0w_8d6cd7fe-c8d2-490f-ac6f-b43659b903bc">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i4e4e6327e2874b84b508813378794580_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNy0yLTEtMS0w_6780ed51-1c69-408d-abc8-5cfb96815925"
      unitRef="usd">7400000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i4e4e6327e2874b84b508813378794580_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNy00LTEtMS0w_f67e36f5-8fa6-4311-9807-53b19b22ee7f"
      unitRef="usd">2964000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i4e4e6327e2874b84b508813378794580_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNy02LTEtMS0w_09223f39-5a4c-4f88-b0fd-8652313025fc"
      unitRef="usd">4436000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i37d8ee84ee0e4666ad60f8f12b8dd569_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfNy04LTEtMS0w_d3a4f963-f654-4da2-bef3-b9d6f30638b6">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i6518ddfa4bf74d25942e5e864e16d1b2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOC0yLTEtMS0w_66004a11-1778-40bc-b32b-5118c777db09"
      unitRef="usd">90000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i6518ddfa4bf74d25942e5e864e16d1b2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOC00LTEtMS0w_6a819f0a-05c5-4559-91d0-0ece6a4f8f3c"
      unitRef="usd">70000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i6518ddfa4bf74d25942e5e864e16d1b2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOC02LTEtMS0w_f74da7f7-9ab8-4954-ae85-6ee149aec9d2"
      unitRef="usd">20000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i93f6742a61454df08ad32ac309806308_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOC04LTEtMS0w_9ee50763-ee08-4ad0-ad1a-d113d8fb8c25">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="iec180219106e45e6af3eec319621e05d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOS0yLTEtMS0w_a3bfb489-174f-4a82-b4e4-889549c2007f"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="iec180219106e45e6af3eec319621e05d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOS00LTEtMS0w_4ebc2eac-d536-47ec-8cbe-4dc9a4a55f51"
      unitRef="usd">240000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="iec180219106e45e6af3eec319621e05d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOS02LTEtMS0w_0c07d05d-de7a-4cf8-b06a-44d1fafa6337"
      unitRef="usd">12000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i3572891b549a4765a637dda00e5af17d_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfOS04LTEtMS0w_0dada5e1-74fe-4e59-8489-dd453dcd3dbb">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMTEtMi0xLTEtMA_e739c62d-e529-4a93-910f-a560c5ba58b0"
      unitRef="usd">28021000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMTEtNC0xLTEtMA_f3692c06-8bff-4838-8ace-e7b17aa39bab"
      unitRef="usd">11664000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMTEtNi0xLTEtMA_b2fd6205-b31d-466d-be19-513a3b82b1ca"
      unitRef="usd">16357000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i5d33d38a9d164ea4ae13f334b62a29f0_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOjU2Y2FjNTkzOWRmODQ2NTk4ZmJkNjQ3N2M5MTg1NTdmL3RhYmxlcmFuZ2U6NTZjYWM1OTM5ZGY4NDY1OThmYmQ2NDc3YzkxODU1N2ZfMTEtOC0xLTEtMA_4c8e0b86-a40c-4cf8-a408-26cfeee337c1">P6Y3M18D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RleHRyZWdpb246NTA4YTE2M2RjYTJjNDRhMjllY2M4NThmYmQ2ODE2MWVfMTk5_1cba1562-f4f9-4a2e-9610-33d589fe53d6"
      unitRef="usd">1200000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RleHRyZWdpb246NTA4YTE2M2RjYTJjNDRhMjllY2M4NThmYmQ2ODE2MWVfMjA2_1437d83b-641e-41ea-addc-a499d0765924"
      unitRef="usd">1300000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RleHRyZWdpb246NTA4YTE2M2RjYTJjNDRhMjllY2M4NThmYmQ2ODE2MWVfODYx_16931132-e908-4931-ae5f-16484afee958">Future amortization expense with respect to intangible assets is estimated as follows (in thousands):&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:85.449%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.621%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Years Ending December 31,&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,605&#160;&lt;/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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;835&#160;&lt;/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;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;833&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;Total amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,170&#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;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmYwZTA4N2I2M2U3YjRjYmNhZjhlZjUyZWYxN2M0MWYwL3RhYmxlcmFuZ2U6ZjBlMDg3YjYzZTdiNGNiY2FmOGVmNTJlZjE3YzQxZjBfMS0yLTEtMS0w_d2b35b38-651c-4d3d-bc5a-ad9c35ab5188"
      unitRef="usd">3459000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmYwZTA4N2I2M2U3YjRjYmNhZjhlZjUyZWYxN2M0MWYwL3RhYmxlcmFuZ2U6ZjBlMDg3YjYzZTdiNGNiY2FmOGVmNTJlZjE3YzQxZjBfMi0yLTEtMS0w_3d641200-a6ca-4737-89f0-a1cdeea33746"
      unitRef="usd">4605000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmYwZTA4N2I2M2U3YjRjYmNhZjhlZjUyZWYxN2M0MWYwL3RhYmxlcmFuZ2U6ZjBlMDg3YjYzZTdiNGNiY2FmOGVmNTJlZjE3YzQxZjBfMy0yLTEtMS0w_36f8146c-39e0-4033-9a7b-579f9d1096fe"
      unitRef="usd">3060000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmYwZTA4N2I2M2U3YjRjYmNhZjhlZjUyZWYxN2M0MWYwL3RhYmxlcmFuZ2U6ZjBlMDg3YjYzZTdiNGNiY2FmOGVmNTJlZjE3YzQxZjBfNC0yLTEtMS0w_9a71257d-2d85-4ef5-9229-28438041cb67"
      unitRef="usd">835000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmYwZTA4N2I2M2U3YjRjYmNhZjhlZjUyZWYxN2M0MWYwL3RhYmxlcmFuZ2U6ZjBlMDg3YjYzZTdiNGNiY2FmOGVmNTJlZjE3YzQxZjBfNS0yLTEtMS0w_da6f0725-a06f-46a4-8870-002fb48e21b9"
      unitRef="usd">833000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <appf:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmYwZTA4N2I2M2U3YjRjYmNhZjhlZjUyZWYxN2M0MWYwL3RhYmxlcmFuZ2U6ZjBlMDg3YjYzZTdiNGNiY2FmOGVmNTJlZjE3YzQxZjBfNi0yLTEtMS0w_d49758af-2037-4926-b6bf-8429dc9859f8"
      unitRef="usd">2378000</appf:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181Mi9mcmFnOjUwOGExNjNkY2EyYzQ0YTI5ZWNjODU4ZmJkNjgxNjFlL3RhYmxlOmYwZTA4N2I2M2U3YjRjYmNhZjhlZjUyZWYxN2M0MWYwL3RhYmxlcmFuZ2U6ZjBlMDg3YjYzZTdiNGNiY2FmOGVmNTJlZjE3YzQxZjBfNy0yLTEtMS0w_e037757c-c702-408f-919e-4f08ce6d89b9"
      unitRef="usd">15170000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:CompensationRelatedCostsGeneralTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGV4dHJlZ2lvbjowMGY3NjkwMWRhY2Q0YzdlYTE2NTkxMjE4NGYwM2Y0MV8yNzQ4Nzc5MDY5NTc5_baccf65c-52ed-452c-bc8b-a740ba8584c4">Accrued Employee Expenses &lt;div style="margin-bottom:6pt;margin-top:10pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued employee expenses consisted of the following (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.806%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.792%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&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:100%"&gt;December 31&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued bonuses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,698&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued commissions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,811&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued payroll&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued payroll taxes and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;804&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,057&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;Total accrued employee expenses&#x2014;current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,888&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued employee expenses&#x2014;noncurrent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size: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,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&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 adopted several long-term executive cash incentive plans (the &#x201c;Plan(s)&#x201d;), which are designed to reward certain executives for their contributions toward our long-term strategic objectives (the &#x201c;Performance Conditions&#x201d;), which vary by Plan. We are required to estimate the probable payout under the Plans based on management&#x2019;s judgement using, among other things, an internally developed rolling three year plan (the &#x201c;Three Year Plan&#x201d;). Compensation costs are recorded on a straight-line basis over the relevant service period to the extent it is probable the Performance Conditions in an applicable Plan will be achieved. Adjustments to compensation costs are recognized on a prospective basis over the remaining service period based on changes in our estimate of the probability of achieving the various Performance Conditions. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March 31, 2021, the Board of Directors approved the 2021 Three Year Plan, which allowed us to assess the probability of achieving the Performance Conditions under the Plans through December 31, 2023. As of March 31, 2021, we recorded $0.3&#160;million and $1.2&#160;million in &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;Accrued employee expenses-current&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; and &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;Accrued employee expenses-noncurrent&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;, respectively, in the Condensed Consolidated Balance Sheet related to the Plans. There are Plans for which no accrual has been recorded as it was determined that it is not currently probable that the related Performance Condition will be achieved. Amounts recorded under the Plans are based on assumptions and estimates subject to uncertainties and may fluctuate significantly each reporting period.&lt;/span&gt;&lt;/div&gt;</us-gaap:CompensationRelatedCostsGeneralTextBlock>
    <appf:ScheduleOfAccruedEmployeeExpensesTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGV4dHJlZ2lvbjowMGY3NjkwMWRhY2Q0YzdlYTE2NTkxMjE4NGYwM2Y0MV8yNzQ4Nzc5MDY5NTgw_dec83ba0-197a-47dc-b908-a6261ceb47cb">&lt;div style="margin-bottom:6pt;margin-top:10pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued employee expenses consisted of the following (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.806%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.792%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;March 31,&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:100%"&gt;December 31&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued bonuses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,698&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued commissions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,811&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued payroll&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued payroll taxes and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;804&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,057&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;&#160;Total accrued employee expenses&#x2014;current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,888&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued employee expenses&#x2014;noncurrent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size: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,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</appf:ScheduleOfAccruedEmployeeExpensesTableTextBlock>
    <us-gaap:AccruedVacationCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF8yLTItMS0xLTE0MjU_0269167f-c003-4a2c-a998-68638294d546"
      unitRef="usd">9532000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedVacationCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF8yLTQtMS0xLTE0MjU_d65f8032-64ae-449f-a9c4-d8de95514c32"
      unitRef="usd">8277000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF8zLTItMS0xLTE0MjU_6edada25-dc3d-4188-9105-88045d27e34d"
      unitRef="usd">3698000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF8zLTQtMS0xLTE0MjU_edbf9c61-e470-41cd-955f-42ab312757d0"
      unitRef="usd">5638000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedSalesCommissionCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF80LTItMS0xLTE0MjU_4f79dc46-cdfd-4432-9c6a-92e2195371ea"
      unitRef="usd">1811000</us-gaap:AccruedSalesCommissionCurrent>
    <us-gaap:AccruedSalesCommissionCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF80LTQtMS0xLTE0MjU_5c466de5-29bc-44f0-b8d2-d49cf263388f"
      unitRef="usd">1995000</us-gaap:AccruedSalesCommissionCurrent>
    <us-gaap:AccruedSalariesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF81LTItMS0xLTE0MjU_d5ff9adb-beb7-43b9-97fa-9b460487a057"
      unitRef="usd">4205000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedSalariesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF81LTQtMS0xLTE0MjU_64f4d626-e258-44f2-93da-b0c2cc7820ae"
      unitRef="usd">1921000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedPayrollTaxesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF82LTItMS0xLTE0MjU_cba51ff7-e241-42cc-8aad-e2db633d6f42"
      unitRef="usd">804000</us-gaap:AccruedPayrollTaxesCurrent>
    <us-gaap:AccruedPayrollTaxesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF82LTQtMS0xLTE0MjU_e797d398-72c0-47fb-a9f9-4a5b41547b59"
      unitRef="usd">1057000</us-gaap:AccruedPayrollTaxesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF83LTItMS0xLTE0MjU_9d587c46-c1a4-4a6d-81c8-eb23c1f22f43"
      unitRef="usd">20050000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF83LTQtMS0xLTE0MjU_592670c0-d175-4c5e-9258-c56402a428e7"
      unitRef="usd">18888000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF84LTItMS0xLTM1NzA_dc45b619-1bda-4079-ae7e-d645bc684e36"
      unitRef="usd">1172000</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGFibGU6ZTZjMmI5NDZkMGVmNGU5ODkzMTRkMmRjNDdmY2E4NzAvdGFibGVyYW5nZTplNmMyYjk0NmQwZWY0ZTk4OTMxNGQyZGM0N2ZjYTg3MF84LTQtMS0xLTM3NjM_2e91b852-cdac-4d79-afbd-1cdd40e53e7f"
      unitRef="usd">0</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i6299d707fcb74d328a949706b600c055_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGV4dHJlZ2lvbjowMGY3NjkwMWRhY2Q0YzdlYTE2NTkxMjE4NGYwM2Y0MV8yNzQ4Nzc5MDc2NDQx_435ac076-0639-4d81-946c-40364d009863"
      unitRef="usd">300000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <appf:EmployeeRelatedLiabilitiesNoncurrent
      contextRef="i6299d707fcb74d328a949706b600c055_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDI3L2ZyYWc6MDBmNzY5MDFkYWNkNGM3ZWExNjU5MTIxODRmMDNmNDEvdGV4dHJlZ2lvbjowMGY3NjkwMWRhY2Q0YzdlYTE2NTkxMjE4NGYwM2Y0MV8yNzQ4Nzc5MDc2NDU1_77d5dda8-e27b-4471-bea4-b122f7eba2a3"
      unitRef="usd">1200000</appf:EmployeeRelatedLiabilitiesNoncurrent>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMTM5Mg_4fb53dd3-2fbb-49a8-abe1-b7bf43641519">Leases&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases for our corporate offices have remaining lease terms ranging from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMTA5OTUxMTYzMDUxOQ_3c6926ba-5b41-44b8-aa76-73ac90cfebef"&gt;one&lt;/span&gt; to eleven years, some of which include options to extend the leases for up to ten years. These options to extend have not been recognized as part of our operating lease right-of-use assets and lease liabilities as it is not reasonably certain that we will exercise these options. Our lease agreements do not contain any residual value guarantees or material restrictive covenants. We have lease agreements with lease and non-lease components, which we have elected to combine for all asset classes. Certain leases contain provisions for property-related costs that are variable in nature for which the Company is responsible, including common area maintenance, which are expensed as incurred. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease expense recognized in the Condensed Consolidated Statements of Operations were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.791%"/&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;March 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,095&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Variable lease cost&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;306&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;392&#160;&lt;/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 12.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:100%"&gt;&#160;&#160;Total lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,401&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,828&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease-related assets and liabilities were as follows as of March&#160;31, 2021 and December&#160;31, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.791%"/&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:100%"&gt;March 31,&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:100%"&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:700;line-height:100%"&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Prepaid expenses and other current assets&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,979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;3,972&#160;&lt;/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;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,561&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="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:700;line-height:100%"&gt;Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other current liabilities&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;1,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,598&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,146&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 12.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:100%"&gt;Total lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease payments under non-cancellable leases as of March&#160;31, 2021 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:84.990%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.810%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td 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,935)&lt;/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;2022&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;4,434&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2023&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;4,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,797&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,671&#160;&lt;/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;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 12.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:100%"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,569)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:11.25pt"&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;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,461&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&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;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease payments are presented net of tenant improvement allowances of $4.7&#160;million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2) &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;Total future minimum lease payments include the current portion of lease liabilities recorded in &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;Prepaid expenses and other current assets&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; of $4.0&#160;million on our Condensed Consolidated Balance Sheets, which relates to certain of our leases for which the lease incentives to be received exceed the minimum lease payments to be paid over the next 12 months.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i54fafaa58c5c41048d8e9486ec8b0082_I20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMTA5OTUxMTYzMDU0NA_e20ce765-a755-4457-b8e2-0192e0ea650e">P11Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:LessorOperatingLeaseRenewalTerm
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMTA5OTUxMTYzMDU1Nw_d6b08e70-b1e8-49b9-87ab-fde06482f061">P10Y</us-gaap:LessorOperatingLeaseRenewalTerm>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMjc0ODc3OTA3NjI1Mw_17ac40e0-011e-4aae-ae90-9ed89c34cab9">&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease expense recognized in the Condensed Consolidated Statements of Operations were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.791%"/&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;March 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,095&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Variable lease cost&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;306&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;392&#160;&lt;/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 12.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:100%"&gt;&#160;&#160;Total lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,401&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,828&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease-related assets and liabilities were as follows as of March&#160;31, 2021 and December&#160;31, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.791%"/&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:100%"&gt;March 31,&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:100%"&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:700;line-height:100%"&gt;Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/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;Prepaid expenses and other current assets&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,979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;3,972&#160;&lt;/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;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,561&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="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:700;line-height:100%"&gt;Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other current liabilities&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;1,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,598&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,146&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 12.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:100%"&gt;Total lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjJlNTU0ZWQyYTFkOTQ5ZmZiMzlhYTM3MmYxMTIxZDY4L3RhYmxlcmFuZ2U6MmU1NTRlZDJhMWQ5NDlmZmIzOWFhMzcyZjExMjFkNjhfMS0xLTEtMS0xMzMy_cdcfae5d-191c-480e-9345-efeb73032f48"
      unitRef="usd">1095000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjJlNTU0ZWQyYTFkOTQ5ZmZiMzlhYTM3MmYxMTIxZDY4L3RhYmxlcmFuZ2U6MmU1NTRlZDJhMWQ5NDlmZmIzOWFhMzcyZjExMjFkNjhfMS0zLTEtMS0xMzM1_ae543be2-9f30-49af-a01e-768b9b94415b"
      unitRef="usd">1436000</us-gaap:OperatingLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjJlNTU0ZWQyYTFkOTQ5ZmZiMzlhYTM3MmYxMTIxZDY4L3RhYmxlcmFuZ2U6MmU1NTRlZDJhMWQ5NDlmZmIzOWFhMzcyZjExMjFkNjhfMi0xLTEtMS0xMzQx_081fa4be-bb1a-4d3e-9334-8367ece72bbb"
      unitRef="usd">306000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjJlNTU0ZWQyYTFkOTQ5ZmZiMzlhYTM3MmYxMTIxZDY4L3RhYmxlcmFuZ2U6MmU1NTRlZDJhMWQ5NDlmZmIzOWFhMzcyZjExMjFkNjhfMi0zLTEtMS0xMzQ1_abd49338-dc4b-4717-91eb-9fe7b0c6674e"
      unitRef="usd">392000</us-gaap:VariableLeaseCost>
    <us-gaap:LeaseCost
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjJlNTU0ZWQyYTFkOTQ5ZmZiMzlhYTM3MmYxMTIxZDY4L3RhYmxlcmFuZ2U6MmU1NTRlZDJhMWQ5NDlmZmIzOWFhMzcyZjExMjFkNjhfMy0xLTEtMS0xMzQ5_116b06b3-1254-463c-b822-b3a4cd80c506"
      unitRef="usd">1401000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjJlNTU0ZWQyYTFkOTQ5ZmZiMzlhYTM3MmYxMTIxZDY4L3RhYmxlcmFuZ2U6MmU1NTRlZDJhMWQ5NDlmZmIzOWFhMzcyZjExMjFkNjhfMy0zLTEtMS0xMzUz_7e3b7668-ebf6-4898-84ab-96bf8c6458e7"
      unitRef="usd">1828000</us-gaap:LeaseCost>
    <appf:OperatingLeasePrepaidExpensesAndOtherCurrentAssets
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfMi0xLTEtMS0w_ccf470d4-9727-49c3-a75a-baca2fe094cc"
      unitRef="usd">3979000</appf:OperatingLeasePrepaidExpensesAndOtherCurrentAssets>
    <appf:OperatingLeasePrepaidExpensesAndOtherCurrentAssets
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfMi0zLTEtMS0w_232012fc-e5a0-4ce6-9c3f-4c2bcfecffd8"
      unitRef="usd">3972000</appf:OperatingLeasePrepaidExpensesAndOtherCurrentAssets>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfMy0xLTEtMS0w_c5979913-d7c7-4f70-af6a-35cd81431c30"
      unitRef="usd">30021000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfMy0zLTEtMS0w_96e7e40f-f6f0-4fb5-b2d4-180e15f10b27"
      unitRef="usd">30561000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfNi0xLTEtMS0w_2ef637f8-2ef3-4bf6-9a8b-ef5a5c7ba53c"
      unitRef="usd">1842000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfNi0zLTEtMS0w_a6d2867b-86c6-4c12-9ff8-9933794cd0b3"
      unitRef="usd">1845000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfNy0xLTEtMS0w_84a6a127-a5a4-4136-8e46-1072c083f177"
      unitRef="usd">39598000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfNy0zLTEtMS0w_c363f042-80b1-4330-a712-ffa02f427b62"
      unitRef="usd">40146000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfOC0xLTEtMS0w_823c89aa-863a-4299-b5fe-36024ab01716"
      unitRef="usd">41440000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjI5YmZlZTVkOTNjMzQ0Mjk4OWJiNDI0ZDBmNzIyNjNkL3RhYmxlcmFuZ2U6MjliZmVlNWQ5M2MzNDQyOTg5YmI0MjRkMGY3MjI2M2RfOC0zLTEtMS0w_f3102227-8d49-49e2-a30a-57ea7a2c7c19"
      unitRef="usd">41991000</us-gaap:OperatingLeaseLiability>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMTM5Nw_99bec44e-8886-40d8-81d2-6fa14aef7297">&lt;div style="text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease payments under non-cancellable leases as of March&#160;31, 2021 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:84.990%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.810%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td 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,935)&lt;/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;2022&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;4,434&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2023&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;4,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,797&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,671&#160;&lt;/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;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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 12.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:100%"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,030&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,569)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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:11.25pt"&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;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,461&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&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;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future minimum lease payments are presented net of tenant improvement allowances of $4.7&#160;million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2) &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;Total future minimum lease payments include the current portion of lease liabilities recorded in &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;Prepaid expenses and other current assets&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; of $4.0&#160;million on our Condensed Consolidated Balance Sheets, which relates to certain of our leases for which the lease incentives to be received exceed the minimum lease payments to be paid over the next 12 months.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfMS0xLTEtMS0w_20523865-0420-4835-baa0-3f58da01f83c"
      unitRef="usd">-1935000000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfMi0xLTEtMS0w_d6e8884b-9c5a-4ab7-a9cb-6c2ef9017429"
      unitRef="usd">4434000000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfMy0xLTEtMS0w_71e32951-62d3-4fb1-a67d-07a3b2a02373"
      unitRef="usd">4845000000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfNC0xLTEtMS0w_27219700-7d31-4596-bef7-f60dcd87950c"
      unitRef="usd">4797000000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfNS0xLTEtMS0w_30a8938e-3f90-452f-adcd-94f04f0ef79d"
      unitRef="usd">4671000000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <appf:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfNi0xLTEtMS0w_0382a6e0-4033-4d9b-b0ca-e0008df4e90e"
      unitRef="usd">32218000000</appf:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfNy0xLTEtMS0w_0150b220-fa8c-4580-88ca-ee0f0e780f82"
      unitRef="usd">49030000000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfOC0xLTEtMS0w_e74b459e-130e-4412-ac95-998f24726552"
      unitRef="usd">11569000000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <appf:LesseeOperatingLeaseLiabilityNetOfCurrentPortion
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RhYmxlOjMwM2I1MmEyNGQzNTQ4ZThhNGQwOTc0ZmE4OTk2MTk5L3RhYmxlcmFuZ2U6MzAzYjUyYTI0ZDM1NDhlOGE0ZDA5NzRmYTg5OTYxOTlfOS0xLTEtMS0w_a5801cee-7d08-4eb4-bff5-6aaaa6e39719"
      unitRef="usd">37461000000</appf:LesseeOperatingLeaseLiabilityNetOfCurrentPortion>
    <appf:TenantImprovementAllowance
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMjc0ODc3OTA3NjI4NA_f11a6f85-17c3-4db3-9731-20552835adfe"
      unitRef="usd">4700000</appf:TenantImprovementAllowance>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i2edf86b7299041a68aa5951ffff47f0c_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM181NS9mcmFnOjhhNDM1ZmVkZjc1ODQ0NDFiNWQxMTE2ZDg5YWU2OWM4L3RleHRyZWdpb246OGE0MzVmZWRmNzU4NDQ0MWI1ZDExMTZkODlhZTY5YzhfMjc0ODc3OTA3NjI5OQ_154e5c76-dfbb-44c0-bb3d-867140cb7cda"
      unitRef="usd">4000000.0</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfNTg0Ng_44cdace5-74f0-464d-b0e4-af056e1d8fa7">Commitments and Contingencies&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 Liability to Landlord Insurance&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have a wholly owned subsidiary, Terra Mar Insurance Company, Inc., which was established to provide our customers with the option to purchase legal liability to landlord insurance. If our customers choose to use this insurance service, they are issued an insurance policy underwritten by our third-party service provider. The policy has a limit of $100,000 per incident for each insured residence. We have entered into a reinsurance agreement with our third-party service provider and, as a result, we assume a 100% quota share of the legal liability to landlord insurance provided to our customers through our third-party service provider. We accrue for reported claims, and include an estimate of losses incurred but not reported by our property manager customers, in cost of revenue because we bear the risk related to all such claims. Our liability for reported claims and incurred but not reported claims as of March&#160;31, 2021 and December&#160;31, 2020 was $1.8 million and $1.5 million, respectively, and is included in &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;Other current liabilities&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; on our Condensed Consolidated Balance Sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Included in &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;Prepaid expenses and other current assets&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; as of March&#160;31, 2021 and December&#160;31, 2020 are $1.8 million and $2.7 million, respectively, of deposits held with a third party related to requirements to maintain collateral for this insurance service.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 Proceedings&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 2018, we received a Civil Investigative Demand from the Federal Trade Commission ("FTC") requesting certain information relating to our compliance with the Fair Credit Reporting Act in connection with our tenant screening Value+ service (the "FTC Investigation"). In April 2020, the FTC staff informed us of its belief that there was a reasonable basis for asserting claims against us for our alleged failure to comply with certain sections of the FCRA. We disagreed with the stated belief of the FTC and vigorously defended our position; however, we entered into settlement negotiations primarily to avoid protracted litigation and potential distraction to our business.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; On January 12, 2021, a Stipulated Order for Permanent Injunction and Civil Penalty Judgment (the "Stipulated Order") was finalized resolving all claims and allegations arising out of or related to the FTC Investigation. Under the Stipulated Order, we paid $4.25&#160;million to the FTC and agreed to continue to comply with the FCRA. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In addition to the foregoing, from time to time, we are involved in various other investigatory inquiries or legal proceedings arising from or related to matters incident to the ordinary course of our business activities, including actions with respect to intellectual property, employment, regulatory and contractual issues. Although the results of such investigatory inquiries and legal proceedings cannot be predicted with certainty, we believe that we are not currently a party to any investigatory inquiries or legal proceeding(s) which, if determined adversely to us, would, individually or taken together, have a material adverse effect on our business, operating results, financial condition or cash flows. However, regardless of the merit of any matters raised or the ultimate outcome, investigatory inquiries or legal proceedings may generally have an adverse impact on us as a result of defense and settlement costs, diversion of management resources, and other factors. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:115%"&gt;Indemnification&lt;/span&gt;&lt;/div&gt;In the ordinary course of business, we may provide indemnification of varying scope and terms to customers, investors, directors and officers with respect to certain matters, including, but not limited to, losses arising out of our breach of any applicable agreements, services to be provided by us, or intellectual property infringement claims made by third parties. These indemnification provisions may survive termination of the underlying agreement and the maximum potential amount of future payments we could be required to make under these indemnification provisions may not be subject to maximum loss clauses and is indeterminable. We have never paid a material claim, nor have any legal claims been brought against us, in connection with these indemnification arrangements. As of March&#160;31, 2021 and December&#160;31, 2020, we have not accrued a liability for these indemnification arrangements because we determined that the likelihood of incurring a payment obligation, if any, in connection with these indemnification arrangements is not probable or reasonably possible and the amount or range of amounts of any such liability is not reasonably estimable.</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <appf:PropertyLiabilityAndCasualtyInsurancePerIncidentAndPerResidenceCoverageLimit
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfNDI3_e6140e0d-6e81-43c6-a27d-168955ebf111"
      unitRef="usd">100000</appf:PropertyLiabilityAndCasualtyInsurancePerIncidentAndPerResidenceCoverageLimit>
    <us-gaap:ReinsuranceRetentionPolicyReinsuredRiskPercentage
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfNTg0_ec69001c-81bb-4a4a-9559-aa09929a2d64"
      unitRef="number">1</us-gaap:ReinsuranceRetentionPolicyReinsuredRiskPercentage>
    <us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability
      contextRef="i4eddba29b7b9468d9ad9afa56e582415_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfMTAwMQ_bbd713a5-4efc-4ca7-b616-8904ce320b44"
      unitRef="usd">1800000</us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability>
    <us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability
      contextRef="i2d190838ada546598501d0ffc4de110d_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfMTAwOA_434bb9be-367d-4fa3-9fa5-943673a1857b"
      unitRef="usd">1500000</us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability>
    <appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices
      contextRef="i4b76d1c744ec410db795a9dc8b009095_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfMTE5MQ_3df27b46-0311-41b1-b25c-62ada7fb20be"
      unitRef="usd">1800000</appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices>
    <appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices
      contextRef="i27aaa5f9bf324fcb8c2d2898edab3ed2_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfMTE5OA_d115d56e-25b8-478f-8bab-07c2fa6d40f2"
      unitRef="usd">2700000</appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices>
    <us-gaap:PaymentsForLegalSettlements
      contextRef="i0d92483a60644f21ae8cc77df6f9ae80_D20210112-20210112"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182MS9mcmFnOmE1OGU2ODQwOTYzNDQzOTQ4NjdhNTdkMTUwYTQ1YTE2L3RleHRyZWdpb246YTU4ZTY4NDA5NjM0NDM5NDg2N2E1N2QxNTBhNDVhMTZfMjc0ODc3OTA5MDU5Mg_12a6562d-29a6-45b3-8151-dfd650743b72"
      unitRef="usd">4250000</us-gaap:PaymentsForLegalSettlements>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182NC9mcmFnOmMxMzM3ZjliZDNkYjQ2MWZhZWJlNGQ2MzgwYzVhYzI0L3RleHRyZWdpb246YzEzMzdmOWJkM2RiNDYxZmFlYmU0ZDYzODBjNWFjMjRfMTE1MA_d61073cc-9cb7-4d39-bf27-854bf453e2bf">Share Repurchase Program &lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 20, 2019, our Board of Directors authorized a $100.0 million share repurchase program (the "Share Repurchase Program") relating to our outstanding shares of Class A common stock. Under the Share Repurchase Program, share repurchases may be made from time to time, as directed by a committee consisting of three directors, in open market purchases or privately negotiated transactions at a repurchase price that the members of the committee unanimously believe is below intrinsic value conservatively determined. The Share Repurchase Program does not obligate us to repurchase any specific dollar amount or number of shares, there is no expiration date for the Share Repurchase Program, &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;and it may be modified, suspended or terminated at any time and for any reason. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March 31, 2020, we repurchased a total of 48,002 shares of our Class A common stock through open market repurchases, and recorded a $4.2 million reduction to stockholders' equity, which includes broker commissions. We have not made any repurchases under the Share Repurc&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;hase &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;Program subsequent to the three months ended March 31, 2020.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="if660ffeee8e54e9ca14bd0f8a4a7eae6_I20190220"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182NC9mcmFnOmMxMzM3ZjliZDNkYjQ2MWZhZWJlNGQ2MzgwYzVhYzI0L3RleHRyZWdpb246YzEzMzdmOWJkM2RiNDYxZmFlYmU0ZDYzODBjNWFjMjRfOTM_0de41dc9-c4f2-4522-9850-b08cc8b3c04c"
      unitRef="usd">100000000.0</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <appf:StockRepurchaseProgramNumberOfDirectorsToAuthorizeRepurchases
      contextRef="iff21c8e8ea6d4156a4b12de485b88580_D20190220-20190220"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182NC9mcmFnOmMxMzM3ZjliZDNkYjQ2MWZhZWJlNGQ2MzgwYzVhYzI0L3RleHRyZWdpb246YzEzMzdmOWJkM2RiNDYxZmFlYmU0ZDYzODBjNWFjMjRfMzQw_ebf3d844-eb30-407e-9ce8-e0af5e0aa99a"
      unitRef="director">3</appf:StockRepurchaseProgramNumberOfDirectorsToAuthorizeRepurchases>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182NC9mcmFnOmMxMzM3ZjliZDNkYjQ2MWZhZWJlNGQ2MzgwYzVhYzI0L3RleHRyZWdpb246YzEzMzdmOWJkM2RiNDYxZmFlYmU0ZDYzODBjNWFjMjRfODcx_32ec232b-82c5-4a08-95cc-1e612794f6fe"
      unitRef="shares">48002</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182NC9mcmFnOmMxMzM3ZjliZDNkYjQ2MWZhZWJlNGQ2MzgwYzVhYzI0L3RleHRyZWdpb246YzEzMzdmOWJkM2RiNDYxZmFlYmU0ZDYzODBjNWFjMjRfOTU3_afbdd975-b4cb-43a5-9aa8-8b4db4a74392"
      unitRef="usd">4200000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDQ1Mg_4ccdc8e5-b2cd-4105-9d84-aa654958d0bd">Stock-Based Compensation&lt;div style="margin-top:6pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&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 activity in connection with our stock options for the three months ended March&#160;31, 2021, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:50.952%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.149%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.149%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&#160;per&#160;Share&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:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&#160;Life&lt;br/&gt;in Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of December&#160;31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11.77&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options cancelled/forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,145&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11.92&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our stock-based compensation expense for stock options for the three months ended March&#160;31, 2021 and 2020 was not material. As of March&#160;31, 2021, the total estimated remaining stock-based compensation expense for unvested stock options was not material.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of stock options is estimated on their date of grant using the Black-Scholes option-pricing model. No stock options were granted during the three months ended March&#160;31, 2021 or 2020. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Units&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&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 activity in connection with our RSUs for the three months ended March&#160;31, 2021, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.028%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.104%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant&#160;Date Fair&#160;Value&#160;per&#160;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;143.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(67)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;101.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;559&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99.87&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March&#160;31, 2021, we granted 127,000 RSUs that are subject to time-based vesting in equal annual installments over four years, and 23,000 PSUs that are subject to vesting based on the achievement of pre-established consolidated net revenue growth targets for the years ending December 31, 2022 and 2023, assuming continued employment throughout the performance period. The number of PSUs granted, as included in the above table, assumes achievement of the performance metric at 100% of the performance target. The actual number of shares to be issued at the end of the performance period will range from 0% to 100% of the initial target awards. Achievement of the performance metric between 100% and 150% of the performance target will result in a performance-based cash bonus payment between 0% and 65% of the initial target awards.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March&#160;31, 2021, 50,000 PSUs vested based on the achievement of 106% of the pre-established consolidated net revenue growth performance target for the year ended December 31, 2020 and additional performance-based cash bonuses equal to 12% of the target value of such vested PSUs were also paid. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Included in the unvested RSUs as of March&#160;31, 2021 are 13,000, 31,000 and 35,000 PSUs granted in 2020, 2019 and 2018, respectively. Of these PSUs, 45,000 are subject to vesting based on the achievement of a pre-established consolidated net revenue growth target for the year ending December 31, 2021, and 34,000 are subject to vesting based on the achievement of a pre-established consolidated net revenue growth target for the year ending December 31, 2022. The number of PSUs granted assumes achievement of the performance metric at 100% of the performance target. The actual number of shares to be issued at the end of the performance period will range from 0% to 100% of the initial target awards. Achievement of the performance metric between 100% and 150% of the performance target will result in a performance-based cash bonus payment between 0% and 65% of the initial target awards. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize expense for the PSUs based on the grant date fair value of the PSUs that we determine are probable of vesting. Adjustments to compensation expense are made each period based on changes in our estimate of the number of PSUs that are probable of vesting. Our stock-based compensation expense for the RSUs and PSUs for the three months ended March&#160;31, 2021 and 2020 was $3.1 million and $1.2 million, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March&#160;31, 2021, we granted an award of 7,688 PSUs to an executive that will vest based on achievement of certain pre-established individual performance metrics during fiscal year 2021, for which the achievement is approved on a pass/fail basis by the Board of Directors in its sole discretion after taking into account the recommendation of the President and Chief Executive Officer. The service inception date precedes the grant date for this award as the award was authorized prior to establishing an accounting grant date, the recipient began providing services prior to the grant date and there are performance conditions that, if not met by the accounting grant date, will result in the forfeiture of the award. As the service inception date precedes the grant date, we recognize stock-based compensation expense on a straight-line basis over the requisite service period based on the fair value at each reporting date. Our stock-based compensation expense for this award for the three months ended March&#160;31, 2021 was $0.2&#160;million. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of March&#160;31, 2021, the total estimated remaining stock-based compensation expense for the RSUs and PSUs was $39.6 million, which is expected to be recognized over a weighted average period of 2.6 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Awards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 activity in connection with our restricted stock awards for the three months ended March&#160;31, 2021 is as follows (number of shares in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.935%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.149%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.150%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant&#160;Date&lt;br/&gt;Fair&#160;Value&#160;per&#160;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:12pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have the right to repurchase any unvested restricted stock awards subject to certain conditions. Restricted stock awards vest over a one-year period. We recognized stock-based compensation expense for restricted stock awards of $0.2 million and $0.1 million for the three months ended March&#160;31, 2021 and 2020, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of March&#160;31, 2021, the total estimated remaining stock-based compensation expense for unvested restricted stock awards with a repurchase right was $0.3 million, which is expected to be recognized over a weighted average period of 0.6 years.&lt;/span&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDQ0OA_b19aa8b8-e507-4bb9-95d5-f0d4a30c14f7">&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&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 activity in connection with our stock options for the three months ended March&#160;31, 2021, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:50.952%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.149%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.149%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&#160;per&#160;Share&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:100%"&gt;Weighted&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&#160;Life&lt;br/&gt;in Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of December&#160;31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,168&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11.77&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options cancelled/forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options outstanding as of March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,145&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11.92&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfMS0yLTEtMS0w_5481f156-6577-4cd6-8118-9dbd4bc6cb02"
      unitRef="shares">1168000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i7f861f95aaa4485db7c1f9e9696b0914_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfMS00LTEtMS0w_e3ccda3d-434b-4539-b718-31ffa95e6829"
      unitRef="usdPerShare">11.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i4f7c634b450249acaa90e2a45a33cd82_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfMS02LTEtMS0w_b65d9145-64c1-422c-b469-3534b2614779">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfMi0yLTEtMS0w_65d8af89-585c-4f94-810e-0bcd0ab3d656"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfMi00LTEtMS0w_522407f7-c236-4d8a-ad89-8cfe8d2a7dd9"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfMy0yLTEtMS0w_40e5f04c-7e53-4e66-a895-c2eeddd1acb9"
      unitRef="shares">23000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfMy00LTEtMS0w_baf154af-7016-46a5-907e-4b8898f2cb02"
      unitRef="usdPerShare">4.36</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfNC0yLTEtMS0w_59b5743a-f850-4f04-9158-3a0de96bd726"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfNC00LTEtMS0w_2c7a8517-b40d-4ce8-9cb0-d77347422a36"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfNS0yLTEtMS0w_bcc809b4-6a49-430a-8c55-6402e4ac22f1"
      unitRef="shares">1145000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i635e6530a71a4760b9634c24c8e0488e_I20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfNS00LTEtMS0w_26c91e1f-acdd-4ec5-81d7-5a12030e7a28"
      unitRef="usdPerShare">11.92</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOmMyNjdkNjcxZTMzNTQxNmI5YTU5YThkNThiZjA4NTdmL3RhYmxlcmFuZ2U6YzI2N2Q2NzFlMzM1NDE2YjlhNTlhOGQ1OGJmMDg1N2ZfNS02LTEtMS0w_2fd77355-cb73-495a-96eb-21b55b3c3dfa">P4Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfODI5_4ba18d24-585e-4ffe-9138-dd0acd0d6765"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfODI5_93d09f50-efca-4920-98a8-f432560224b5"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDQ0MA_207552b1-40a3-4477-80b3-44ca5f272d8f">&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&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 activity in connection with our RSUs for the three months ended March&#160;31, 2021, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.028%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.104%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average Grant&#160;Date Fair&#160;Value&#160;per&#160;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;80.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;143.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(67)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;101.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;559&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99.87&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="if61f4ecd59824e1f8ac6376b2bd84e98_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfMS0yLTEtMS0w_895ea86e-5fab-4378-966a-34cb1b91921a"
      unitRef="shares">483000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="if61f4ecd59824e1f8ac6376b2bd84e98_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfMS00LTEtMS0w_773b04b2-c24f-4966-8dab-5a6991751565"
      unitRef="usdPerShare">80.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfMi0yLTEtMS0w_a3476eac-be20-4dc2-bcab-eaa6c5a34b88"
      unitRef="shares">150000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfMi00LTEtMS0w_0cb58b4d-52c8-48f9-9f6e-5cb5d86962aa"
      unitRef="usdPerShare">143.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfMy0yLTEtMS0w_6e77b60b-065c-4d46-a537-dff516c23518"
      unitRef="shares">67000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfMy00LTEtMS0w_16177f29-5ddf-497d-be5c-9ca82593d866"
      unitRef="usdPerShare">54.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfNC0yLTEtMS0w_da87049d-0f98-4682-82e2-02e9ceccc1b5"
      unitRef="shares">7000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfNC00LTEtMS0w_50fb8296-786b-4971-b386-610e5e36d43d"
      unitRef="usdPerShare">101.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="id2bf981b3e8646b289972785b7090e83_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfNS0yLTEtMS0w_5d4600a7-1e87-4dfa-954b-856f907f5bd1"
      unitRef="shares">559000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="id2bf981b3e8646b289972785b7090e83_I20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjdlNGU3MmM1ZDgwZTRjNWNiM2EzNjI5ZDRkN2RiYjM5L3RhYmxlcmFuZ2U6N2U0ZTcyYzVkODBlNGM1Y2IzYTM2MjlkNGQ3ZGJiMzlfNS00LTEtMS0w_27443965-15a2-42bb-87af-b7848d9826b0"
      unitRef="usdPerShare">99.87</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i6443509fe8e74228952ad0b143b20249_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTA4OQ_217715c5-0b76-47f4-9e77-2bdfc944da74"
      unitRef="shares">127000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i6443509fe8e74228952ad0b143b20249_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTE3MA_9c544ac9-cf73-46fc-b756-a2870a505f90">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ic6283d9c85654df08aaf6b70ae4300a3_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTE3OA_bd5c9845-973b-4651-9bb7-80aaca6b1f25"
      unitRef="shares">23000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="ie53d84ff2b18432e919ad8d6059265d1_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTUyNw_8ba3f0f5-0ca8-4f8d-b57c-6789d448b349"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i071591bb1d02470ca6c3794013bd7688_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTY1MQ_587af38a-51bf-41ff-bdf2-51121e6f7556"
      unitRef="number">0</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="id4cdde30de004fa39274465d4942a7bb_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTY1Nw_1273e218-9328-4d1b-9843-bb94adc6cca8"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i3c7fe50865414c098fed44f005cd2003_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTczNg_025cb1dc-eabb-48ac-a9ae-52cc5a941a38"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="if6326b166eaf4dbc848381986636c7a5_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTc0Mw_0cd61093-6904-4613-a4e7-b065a0542a73"
      unitRef="number">1.50</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPerformanceBasedCashBonusPaymentPercent
      contextRef="iac5ac3d75bc34ca9acd338d9e4e7a904_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTgzNA_de789646-8ec2-4a64-a19e-a7c9bd24f4bd"
      unitRef="number">0</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPerformanceBasedCashBonusPaymentPercent>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPerformanceBasedCashBonusPaymentPercent
      contextRef="i3e718a89a21f4871bb41f14f91df5114_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTg0MQ_ce60bd61-8aa8-44ff-94a6-79a93615afdc"
      unitRef="number">0.65</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPerformanceBasedCashBonusPaymentPercent>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ic6283d9c85654df08aaf6b70ae4300a3_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTkwNw_6e1ca885-f15b-4464-a9ab-7cbee9e545b3"
      unitRef="shares">50000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAchievementOfAwardTargetPerformanceMetric
      contextRef="i1a4cbeb855fa49fd900bcd764558a7b8_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTk3Nw_0a2c7c43-8e0c-4e37-b82e-eceae46a913e"
      unitRef="number">1.06</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAchievementOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPerformanceBasedCashBonusPaymentPercent
      contextRef="id0f33375b06f41bfaa2f68a8b353c96b_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjc0ODc3OTA4NDc5Mw_eb7ddf5f-8c9c-428c-8b88-b1fca0bd681d"
      unitRef="number">0.12</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPerformanceBasedCashBonusPaymentPercent>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="id37b41dc18a44c4aa6ca721057e0e367_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjExOQ_36ee33be-098a-4266-8d34-2414ccdd4905"
      unitRef="shares">13000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ie059f6e1f8514b8c94ea712adc6bf49a_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjc0ODc3OTA4NDUzMg_71ddab1c-7ac1-4462-9020-2bd9a38cf846"
      unitRef="shares">31000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i76be600d6cf244d7ab0a2acf0216ec1c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjEyNg_b536e31b-4236-4420-9ce0-08ab11d89bbd"
      unitRef="shares">35000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ie34c26484a5946f0bccf659fb94983f2_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjE4OQ_305328df-a1a7-4f3c-a0c6-46648937cacb"
      unitRef="shares">45000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ic3fd27dbd8b6473ea50061407c0a0102_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjMzOQ_c2f851b1-d601-40ba-b39a-813aab1a6c02"
      unitRef="shares">34000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i422ff5997ef349659f50b6202920da6f_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjcxOQ_dc5bd1a1-ee8f-4712-8ddc-49f450d0e3bd"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i9e0bba87a8b94ff28780f71beb33028b_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjg0Mw_f2f345fa-8085-4eff-a1ee-02c24501e591"
      unitRef="number">0</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i7f7ccb2f4f05412f862bdb284f68d001_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjg0OQ_437cc3f6-f728-4e70-a502-75305b4b52d6"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i0d12051190ea43838c36099224c90564_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjkyOA_957d4476-315e-42e1-b172-9e356ec4b76c"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="ice1ed6b626de410d887ec3709797d4fc_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjkzNQ_74918028-f231-477d-8135-ad84ce8e246c"
      unitRef="number">1.50</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets
      contextRef="i8d238e24f713423cb56edbdf6dc23e00_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMzAyNg_dc835ea9-07d2-42b8-a65c-b0c8cb2dcd76"
      unitRef="number">0</appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets>
    <appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets
      contextRef="ia111bb0a0b3a4c0f9cf1d28d1caf1e3b_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMzAzMw_2fc1b593-7857-4164-a04c-1f5df6f3b5b5"
      unitRef="number">0.65</appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMzQzMw_26c72475-ddd5-4731-8094-240dbc7e0c05"
      unitRef="usd">3100000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id52525154a5d47939f73e961852c3a22_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMzQ0MA_8f200a7b-b9f2-4baa-a2a6-460d0f61a6f0"
      unitRef="usd">1200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ibd15762db7f14da5a84eda8c00f75ddf_D20210101-20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjc0ODc3OTA4NDU0MA_b5096f9d-93ae-471e-93ae-f0a370562b94"
      unitRef="shares">7688</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ibd15762db7f14da5a84eda8c00f75ddf_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMjc0ODc3OTA4NDU0Nw_424b3c30-9b39-496e-b218-75ff542dd4c7"
      unitRef="usd">200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="id2bf981b3e8646b289972785b7090e83_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMzYyMA_aa6df9d5-22c4-4cc1-847b-5612d54be469"
      unitRef="usd">39600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ie089a50eb1ce4c1fa54233a2e91e5a7d_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMzY5Mw_a18f8d69-a3ed-4674-92d7-5f82443853d2">P2Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDQ1NA_519b33da-1255-475e-ae31-b75b77d5530f">&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&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 activity in connection with our restricted stock awards for the three months ended March&#160;31, 2021 is as follows (number of shares in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.935%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.149%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.150%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant&#160;Date&lt;br/&gt;Fair&#160;Value&#160;per&#160;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Unvested as of March 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i6fb93ee5bc804b959fe72d82708efc26_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfMS0yLTEtMS0w_1ba6b65a-cf4c-4d5d-9dab-766f257a8620"
      unitRef="shares">5000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i6fb93ee5bc804b959fe72d82708efc26_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfMS00LTEtMS0w_ccf3b937-f8d2-4417-bed1-d5bd47bb9112"
      unitRef="usdPerShare">153.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfMi0yLTEtMS0w_356feb1b-38fc-4269-a6b2-8e359e260e74"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfMi00LTEtMS0w_8ad998ff-e767-462d-9f69-9caefe428f4c"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfMy0yLTEtMS0w_b11286d5-77f4-495f-a957-13c1ffdda43c"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfMy00LTEtMS0w_f4f34cab-1fdc-4e89-a1b7-8da4675b51ac"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfNC0yLTEtMS0w_a6104b0f-9cad-41ee-b45b-bfe989b968a8"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfNC00LTEtMS0w_5a382c1d-fa4d-470b-a88f-a73e29a77c7f"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i662134dd647b4b289b2df565fdfa7671_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfNS0yLTEtMS0w_c5b75b6e-5910-4051-b8f3-caa0792aa710"
      unitRef="shares">5000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i662134dd647b4b289b2df565fdfa7671_I20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RhYmxlOjUyZDkzMDdiOTVjZTRkMWY5N2JhODU0NDJkNzg2YmE2L3RhYmxlcmFuZ2U6NTJkOTMwN2I5NWNlNGQxZjk3YmE4NTQ0MmQ3ODZiYTZfNS00LTEtMS0w_6eef3d13-60e1-4f40-b15a-f7f712cfd059"
      unitRef="usdPerShare">153.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDQ2Mw_a3042162-0afb-4bfd-a3ed-f95b4a1c6dca">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDA5Nw_99fe622b-379f-4833-8277-114d96b239cd"
      unitRef="usd">200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i69c3a9c030b74bbd86bce8b42fde8ed9_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfMTA5OTUxMTY0MjQzMQ_2d3a712b-7e04-40e8-b14d-c0a23e75ef3e"
      unitRef="usd">100000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i662134dd647b4b289b2df565fdfa7671_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDM2MQ_c1de4c18-af02-412f-926a-73b4c424264a"
      unitRef="usd">300000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i83ac370b928348a7ad87b3d1abef0ef8_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM182Ny9mcmFnOjM3MTNjNGI1OWJjNTRhMzI4NGJjNWIxMTEyMDcyYzZiL3RleHRyZWdpb246MzcxM2M0YjU5YmM1NGEzMjg0YmM1YjExMTIwNzJjNmJfNDQzNA_5a77d8ee-ba97-4bb0-89bb-288558c2cc18">P0Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183MC9mcmFnOmU1MTc3MjAzYzBmZDQzNGFhYTIyZGFiZWFkYWU4Y2ZkL3RleHRyZWdpb246ZTUxNzcyMDNjMGZkNDM0YWFhMjJkYWJlYWRhZThjZmRfMTkxMA_f8e4b58b-a16a-4da2-ab2d-4a13ef03f95e">Income Taxes&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We calculate our (benefit from) provision for income taxes on a quarterly basis by applying an estimated annual effective tax rate to income from operations and by calculating the tax effect of discrete items recognized during the quarter. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;For the three months ended March&#160;31, 2021 and 2020, we recorded an income tax benefit of $5.5 million and income tax expense of $0.4 million, respectively. The effective tax rate as compared to the U.S. federal statutory rate of 21% differs primarily due to the significance of the benefits associated with stock-based compensation expense and research and development tax credits in relation to the forecasted pre-tax results for the year. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:3pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;There were no material changes to our unrecognized tax benefits during the three months ended March&#160;31, 2021 and we do not expect to have any significant changes to unrecognized tax benefits through the end of the fiscal year.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183MC9mcmFnOmU1MTc3MjAzYzBmZDQzNGFhYTIyZGFiZWFkYWU4Y2ZkL3RleHRyZWdpb246ZTUxNzcyMDNjMGZkNDM0YWFhMjJkYWJlYWRhZThjZmRfMzA5_98cf5579-016e-4521-a0db-7c47598bed1f"
      unitRef="usd">-5500000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183MC9mcmFnOmU1MTc3MjAzYzBmZDQzNGFhYTIyZGFiZWFkYWU4Y2ZkL3RleHRyZWdpb246ZTUxNzcyMDNjMGZkNDM0YWFhMjJkYWJlYWRhZThjZmRfMjE5OTAyMzI1OTc3MA_981c19f3-1883-40c5-a31b-de5a962251af"
      unitRef="usd">400000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RleHRyZWdpb246NTkyNjVkODg2NDA4NDNjZjg4ZWEzOGE3N2E2OTNiZGJfNDU4_6247fdb5-7082-4b7d-b838-c4ce977d7c1b">Revenue and Other Information&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents our revenue categories for the three months ended March&#160;31, 2021 and 2020 (in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.014%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Core solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,902&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Value+ services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;51,510&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,138&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;72,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our revenue is generated primarily from customers in the United States. All of our property and equipment is located in the United States.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Deferred Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:10pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the three months ended March&#160;31, 2021 and 2020, we recognized $1.2 million and $2.3 million of revenue, respectively, which were included in the deferred revenue balances as of December&#160;31, 2020 and 2019, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RleHRyZWdpb246NTkyNjVkODg2NDA4NDNjZjg4ZWEzOGE3N2E2OTNiZGJfNDYz_904711b0-33c7-4cda-848e-a1b108066419">&lt;div style="margin-top:6pt;text-align:justify;text-indent:36pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents our revenue categories for the three months ended March&#160;31, 2021 and 2020 (in thousands):&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.215%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.014%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="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&lt;br/&gt;March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Core solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,902&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Value+ services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;51,510&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,138&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;72,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i14a9817040a545e6b69734f0ad6a5b86_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfMi0yLTEtMS0w_4583e6f9-5171-4682-8cdb-69ff4a1560cf"
      unitRef="usd">24174000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1019431fe3a24913a662757b12e40dbb_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfMi00LTEtMS0w_be1041bd-747c-461f-8262-670d1e053384"
      unitRef="usd">24902000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iba9c2e9b64c7492e924b5c4e83a64843_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfMy0yLTEtMS0w_ea64df48-82f7-4184-806e-edd694475e47"
      unitRef="usd">51510000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i63ef8fa16dbd4936a4a127f3d966aafa_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfMy00LTEtMS0w_beabcfbf-ba69-42cb-bf2f-f61e580701f2"
      unitRef="usd">44138000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iaf9a7990b8be46ffbf026a530ab6fcb8_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfNC0yLTEtMS0w_ba157b2e-9ed0-4c77-8eaa-1b4b2c0f9d0e"
      unitRef="usd">3237000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i77c0bbd14c304df98447be25902481f7_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfNC00LTEtMS0w_9f5b1433-9281-41e1-99e6-907690929d17"
      unitRef="usd">3455000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfNS0yLTEtMS0w_fbb4d8ca-de7b-4a72-a996-9b3824664200"
      unitRef="usd">78921000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RhYmxlOjkwNTc1NzE3MjFhZjQ1NGFhM2I2MDMyZmI3ZWVjZjlhL3RhYmxlcmFuZ2U6OTA1NzU3MTcyMWFmNDU0YWEzYjYwMzJmYjdlZWNmOWFfNS00LTEtMS0w_8802fcf4-efbb-4594-acc6-07dd67e8ce44"
      unitRef="usd">72495000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RleHRyZWdpb246NTkyNjVkODg2NDA4NDNjZjg4ZWEzOGE3N2E2OTNiZGJfMTk2_4729380e-eae7-4b3e-8d86-43de877eefce"
      unitRef="usd">1200000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="if2f3010608d74b7b9887d902f4e78302_D20200101-20200331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM183My9mcmFnOjU5MjY1ZDg4NjQwODQzY2Y4OGVhMzhhNzdhNjkzYmRiL3RleHRyZWdpb246NTkyNjVkODg2NDA4NDNjZjg4ZWEzOGE3N2E2OTNiZGJfMjAz_5e1a61c2-2100-4055-afeb-957a001f5089"
      unitRef="usd">2300000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="ic22ba8b1dd564d1f90b146f7f1d1be6c_D20210101-20210331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDM3L2ZyYWc6ZjI2YTQxYmEzZWMzNGJiMGJkZmY4OTFiYTdiMzZmNjIvdGV4dHJlZ2lvbjpmMjZhNDFiYTNlYzM0YmIwYmRmZjg5MWJhN2IzNmY2Ml8yNzQ4Nzc5MDcwMDE5_cec93b2a-2ae4-44f9-b75b-7aac7b9f6f33">Subsequent EventsOn April 5, 2021, we entered into a lease agreement with Sunroad Centrum Office One Partners, L.P (the "Landlord") to lease approximately 40,141 square feet of office space located at 8620 Spectrum Center Blvd, San Diego, California. The lease is for a twelve-year term ending January 31, 2033. The total commitment under this lease is $14.9&#160;million, which is net of tenant improvement allowances of $3.7&#160;million.</us-gaap:SubsequentEventsTextBlock>
    <appf:LesseeOperatingLeaseSquareFeetOfLeasedArea
      contextRef="i4ba4266e73fb470c85113cfae72f5d77_D20210405-20210510"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDM3L2ZyYWc6ZjI2YTQxYmEzZWMzNGJiMGJkZmY4OTFiYTdiMzZmNjIvdGV4dHJlZ2lvbjpmMjZhNDFiYTNlYzM0YmIwYmRmZjg5MWJhN2IzNmY2Ml8yNzQ4Nzc5MDcwMDIx_8fedeb70-61f7-43a0-b0e6-0331040e78bb"
      unitRef="sqft">40141</appf:LesseeOperatingLeaseSquareFeetOfLeasedArea>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i5366fc6513a5461c87163ae37d852ceb_I20210405"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDM3L2ZyYWc6ZjI2YTQxYmEzZWMzNGJiMGJkZmY4OTFiYTdiMzZmNjIvdGV4dHJlZ2lvbjpmMjZhNDFiYTNlYzM0YmIwYmRmZjg5MWJhN2IzNmY2Ml8yNzQ4Nzc5MDcwMDcx_020c8fee-6605-4a9c-be86-f9d56b91f3d7">P12Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:OperatingLeaseLiability
      contextRef="i5366fc6513a5461c87163ae37d852ceb_I20210405"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDM3L2ZyYWc6ZjI2YTQxYmEzZWMzNGJiMGJkZmY4OTFiYTdiMzZmNjIvdGV4dHJlZ2lvbjpmMjZhNDFiYTNlYzM0YmIwYmRmZjg5MWJhN2IzNmY2Ml8yNzQ4Nzc5MDcwMDI5_8c93479c-2ca1-4773-a160-0abf05700230"
      unitRef="usd">14900000</us-gaap:OperatingLeaseLiability>
    <appf:TenantImprovementAllowance
      contextRef="i5366fc6513a5461c87163ae37d852ceb_I20210405"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmIzMzk1ZWUxZjIxMDQ2NmM4MDJiMTIxZDYwZWNlZmIzL3NlYzpiMzM5NWVlMWYyMTA0NjZjODAyYjEyMWQ2MGVjZWZiM18xMDM3L2ZyYWc6ZjI2YTQxYmEzZWMzNGJiMGJkZmY4OTFiYTdiMzZmNjIvdGV4dHJlZ2lvbjpmMjZhNDFiYTNlYzM0YmIwYmRmZjg5MWJhN2IzNmY2Ml8yNzQ4Nzc5MDcwMDQ0_21c65d99-007f-4881-8f16-55c6d460734d"
      unitRef="usd">3700000</appf:TenantImprovementAllowance>
</xbrl>
