<?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/20220630"
  xmlns:dei="http://xbrl.sec.gov/dei/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="appf-20220630.xsd" xlink:type="simple"/>
    <context id="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i6742f993e11d42398aaa6746d338482a_I20220721">
        <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>2022-07-21</instant>
        </period>
    </context>
    <context id="i87e549486c654938b8be67ffa9242ab8_I20220721">
        <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>2022-07-21</instant>
        </period>
    </context>
    <context id="i99298c1302a8458882f7a89f17850703_I20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ida46e9e92991427ba9d2a64027df5784_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="icc5f2eaa506f49b7a0abab047d15329e_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i60e132217e954842a1ead5a2dadd33a5_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="ie6dae9493475435abe198481ea7dd6d4_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="if06c556938f3441facc3462c9fc389da_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i7c53e0cae0cb4d2f83d16d3eb7c22087_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i37147c5661c747b1bc4561906798b2f4_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ib8e3f1a28b1d44c88e8f15c13def3708_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i3666c7684f7f45f1ae48c9e173ad933e_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i36f90b59d4464aa1a20abbcde286276f_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ic83a1bd8d26945faad438f3c4d0f9f21_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i127ae00a1034426ba5f352a9daa35da2_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i120a0a4eb686420396f4668550267f69_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ibad242dbb5c9444cae74278218e1c7e4_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ic542fb8e9a0d4d92a1502c3069551cce_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="if27e6fc943444fd3885a5387190d8657_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ib9e78339402647fd80a8fcb0bb03d906_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i7bd3b45f0ee34262bb57408643250b73_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i48a8bffe3b7940bb8c4ded86d6f43712_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i8f11498aa1cc4d0a956f554d04e18e12_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="id1b161ee924c4c6eb957f1b5bb944659_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ifedce9e08d634b80a4c6356d92e63c62_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="icba107e3ad7f4410a43a5df684ffe14a_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i8eb76310110b4091b632deecf8b9c1cd_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i6b19490ec21f437a9fd71e5cf260f3f4_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i3f9fb3c554004f409f21e5302bdcba66_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="ibbaa7ca080374c80aaa004cc8e3f34e3_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i397754bb0155496d816b0c6b4a154a27_D20220101-20220331">
        <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>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i79c86aaba3dd4d16bfa2be14548f72c5_D20220101-20220331">
        <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>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i40cdd4884ae44233b71a694a8b1171ec_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i78d024ecc9174f92ad6aab9c6fb04ee5_D20220101-20220331">
        <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>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i1f7e4381c4924d45b571a72b6a5ff548_D20220101-20220331">
        <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>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i2fe580777b9b44a3b9ba542eafd4e239_D20220101-20220331">
        <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>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i31c44f511b0a413499b0a780d9bf617e_I20220331">
        <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>2022-03-31</instant>
        </period>
    </context>
    <context id="i84eda38fc8cc45a99117265e4b62e702_I20220331">
        <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>2022-03-31</instant>
        </period>
    </context>
    <context id="i0f020b655d6c4c26b0f99b51ff4d2de2_I20220331">
        <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>2022-03-31</instant>
        </period>
    </context>
    <context id="i56c2cd40279047f8b818510d6abbb26f_I20220331">
        <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>2022-03-31</instant>
        </period>
    </context>
    <context id="i31b2399c562042629c1c13b23a4871b4_I20220331">
        <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>2022-03-31</instant>
        </period>
    </context>
    <context id="i65ef4a516b7043fd91b17030e642d174_I20220331">
        <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>2022-03-31</instant>
        </period>
    </context>
    <context id="i556372d4339b4d8191d46e650dd83359_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="ic9afbd245e654d188fce4932817278d2_D20220401-20220630">
        <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>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i2297c02bfadf4c58b7079667ff7b91c5_D20220401-20220630">
        <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>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i7823bac8d80e4dc4939f0be53ed6bf90_D20220401-20220630">
        <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>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ia11f553aa967421e913e389062d81f5a_D20220401-20220630">
        <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>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i87cd89a4be314a9a83015c6a72fcd56a_D20220401-20220630">
        <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>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="id292cbc0e433454cabc86074433f339a_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="ie88ad77c0df247e6b7152b8c2775e991_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="if26fe817ea344ac58a94ca4b4ef727d3_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i6db190fd51764d55b01c122f0a2b458e_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="id34e8fc9b042440c835edcc43a92f7ae_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i1ea30a6a63a74181b016e4580da67af2_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="ieadccd194016429293464b37c215f196_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="i5320c8488be1476fa5572cb6c1ee31e1_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="ic3f65944a1cc472c8030c991787b17ce_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="iaafed80a755a41ffbc4d118669bd7913_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="iabe0fa7edf304a698fb7fe9a209905a0_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="i99265e89eeb243d0bdface387a6f6e7a_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="i5c0285c45e504a19a0bbb2291f37b5f7_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib97477e9176441c082e351b79468b2a6_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="ic0f01088536e40938f3094faba41170a_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="if0bf7e5324f442aa9963305383915855_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="id66a9199ee234f2b989e9e28510fd6b3_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="idbf443609a7749d5a9bb39c9fa7865e4_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="i492a502fb5ba4dfe8676dab22f8f9216_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="i4065460e7bd744e8ba14d49468dd3260_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="ia853a582e9fd47cca6e51ebe0dd774c6_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="idbf348e424c94cddabef386a2da74fed_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="i9d1129ac20c141e98ad7a54add586a09_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="i2f6cd8acba1d40dcba4155ba17b55eec_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="i2892ba97a56c405cb0109108b56365d9_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="i057b94a957bc4ccb919813db03519519_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i84be88fb8fa2473aad0ea4631f26fb57_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i1afa55a215514dad933940e1d0e81a91_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i64cf69ea40ec4fbe8f8aecaa5d7cd1ad_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ibe42977896a24419ad04abf6efdbeec7_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="icae9ab4b5d4d4c969964bb05c9abb8f7_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="id11d020728a44b11aa79f2b4bb2669b8_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i270423f2c5ab469aacd087ee89f01b81_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i42a2594b29ec4c98b2c44b92916fc991_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ie428f2c0600945908eea334fd7c52e7f_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i11443e05d1764e26aa49b6508ab7d854_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i6ee60aba3a8048a5953d095aa0d019b2_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i43f3373a89ab48148ac2fe334345879d_I20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="i21e61b5251c74e6689fcfe1a405c8564_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i1a79d87407814f2e888628454f568279_D20220401-20220630">
        <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>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i8ab9b7fc9f4e45cc87f7bbab73ee1b87_D20210101-20210630">
        <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>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="id6ad0a657faf43029ab95029099d3cf0_D20210401-20210630">
        <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>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i8a73b86a717d4c8ea9fe40fdc13b4c77_I20220630">
        <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>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i189038f35d8546658426d04177fb9d46_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i06e97cb744c64b8aa8ffbd59644aadd6_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i129cf4ac8f384e85b92a532598ebf5b9_I20211231">
        <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>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="idb82266e68c14f92bff461f4eb2c9906_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i84f050d33e084e578c17e4dab8da1f7d_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i1f204ddd13c544a8a1f179be2cf7ea8c_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ibec20397a16a46e7913a9ef730c9863b_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i8b305d7e58784d3ba71c605f0f0ec087_D20210101-20210630">
        <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>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ibc15dc68b60b4428a9961de88fe8f7dc_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="ie570c30826174a04bd3e14ee9277c200_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i360516f7f2984217bf45229942f7bb47_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="if0ecba1bc25f4054ac6d368e7ba21db4_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="ia083a7682190413c9262591515de4e1d_I20220630">
        <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:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="ic125207cc0e1431e84faea5e08e82ec6_I20220630">
        <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:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="if19dcb41732b4929aa7bf76464482563_I20220630">
        <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:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i2f9ac29b0cc1448a937bb3adbe3c6074_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i0b50a29268ce4c2887cb76d130429cde_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="ibc4301da573e4622b96bdb563e5b93f4_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i7da90b13048143ad9ec51c64fe700ef3_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i806fc50eddb449289e32db78e7282b22_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="iafae3398d0544e4b9a6afc4a039915af_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="if951d9320bcf49748ae9c12940edabdb_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i3b5777f8070a423f83daad5cef997468_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="if4822e9819924b688da0928889f16d7e_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="if7f2d00942904c26b16cc453d5f119a9_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="id295029ab72f44d08ec31de5cad1a07f_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i3a4bb9162cd5422693e05eb242b35380_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="iacf1324265354840affd4f8a0da52fa5_I20211231">
        <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:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i9dfaa9e44fc04beca299a9614c13d934_I20211231">
        <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:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if03afd71449e4a99b8945da61ee6e247_I20211231">
        <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:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i20a70aa230bb4a41b8a243f00fe09b62_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="ice237af628f94f6d9e622b1cb98920de_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i3af1ad99cab54004aaaa2d20281ef949_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i779e91e410f74c4eb54fcdbafa467d91_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i6aaab1f8052341a4a7e29ee6bef7347c_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i968bdee763424c4ea97672db9e1647f9_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i92eeee15856e4a1b86dcc8e7e13187a9_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i6d0618af59594eeda836a83ef64f984c_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i495c244dffd947a29b39ef47c91f4ccd_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i587cf38862374082a5235c9860b8cd31_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i607094e65e4645e781662928b2d9e89d_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ifef2f109db0b46d9a01c5298e3a8520c_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i313034e6c9484e6ea60bf641c85098ea_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ie71f210f884645bb95c176634d7f5f4f_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="ibfd8f36cebc64161ac492132cb0f0135_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ifbd259c88ab54934a91914faed7fae91_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="if330f5f4fdf1489f9aea49916f7d0989_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ic387c3cbb9fc400c96c68731b8f8038b_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i65eada7ab94f4330a2aea9fa1731d5f4_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i1e73160b6b87431e84b9aaf3bcacde07_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i4f851eb4b4fe4c888b004c684b6a562b_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="idabb8f1cc7da4c73ab484f92eaaecce0_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i37a7b9c2a7a74a14b920da454d532c09_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ifdeebb9d7ffc4c4f880f6b0a7d626e63_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i1b2b2a06367d47abbfec8f0206207e77_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ic87dc214d1dc4774a275f4a2a58a6242_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:WeightedAverageMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i89c034078e09425398a77c91637b6e7e_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i3c558c0f243746379a4ca92a0b0a33e3_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="ifd50f711c0ab4d7aa801af480b5abaa4_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i4155bf374ca34bff88a193b31f05315e_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="i314b2cb87d4b46ca80a32f7682f3c763_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i0080f07f678e4f9498bd7415c49dcff4_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="i2e96ecba5d7e4c9a9b2ea6ce8d7e1c79_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i214900e5ed3441979c8f1f8b39b87173_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="ib211593a6e7544b6a94276a1b10cd54d_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="ie63ec4c0db4148829b7e27a5ac7e27d8_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="i6aac99b4f5074efbac050c6a1641abe0_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="ia7a1c421a1f6403b93e717002c25db29_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="i4a94a6189eb14290a45dad219f9af739_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i3104b6c38e824a8aa32242ec2c9389a3_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="ia93ef85ba72344ec9100b46c8f8b5dbd_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="iaf0584408d454dbda225cb1ce6065905_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="i571b4de54178440f8b04392be7711be1_D20210101-20211231">
        <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-12-31</endDate>
        </period>
    </context>
    <context id="ic1cb1fa712de4b599018e293866c994f_I20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i624348d007144f2ba0fbc21954c7db00_I20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i4cba1fcaa48a498381745132251d7dfc_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="icae271fe2d4e4f798ed4f1c8a5399e85_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="i62385e38d01a46d18f3f145091d9af87_I20211231">
        <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>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iee1e4ea66cec4c199c36a23e2d05a711_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i5194d654f9d1426f86ff7e6d96a04fcc_I20220630">
        <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>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i0c7d4c9edc7b4dabbf1917a37653d8ce_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsWithServiceConditionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i1d1200b666ff4cd6a4d07863feccf33d_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">appf:RestrictedStockUnitsWithServiceAndPerformanceConditionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i0e4570d70d2e4780a3e211de84db64ec_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i87f056a0ba34463abf90102afbb3dbab_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ieca0dbfad2c94c15b212637f9662bf37_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i4365d65b314b4f888278410d7228d869_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i2740203f742d4f2da9010775b7547a40_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="iaf80c3537d7d45278c0d16ff652f5180_D20220101-20220630">
        <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:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i56cd963625294936bb1f15e6af46809e_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i1cf015f369fc4f39b54d22dcf7f53e4d_I20220630">
        <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:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i7ea5f1a6bafe4984b90b2029bea3394e_I20220630">
        <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:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="ic91f314cecd649fdb013128eb2ded189_D20220101-20220630">
        <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:ShareBasedCompensationAwardTrancheThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="id584223b0afe4f95a716997ef1c53709_D20220101-20220630">
        <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:ShareBasedCompensationAwardTrancheThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i0821c290677a4d92bc310b8c0e7766c3_D20220401-20220630">
        <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>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ib09dad5fe25f4992b2c29553d50d8c20_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i1f144c2394a7435e8a5cfedec9a2513a_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i824e0a36d8be4a3b8a69edde6500a963_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i9d7bbd9111224f1d9619b86a3d259422_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i4ecbfadcba10437b93feb1cbccc4eb6b_I20211231">
        <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-12-31</instant>
        </period>
    </context>
    <context id="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630">
        <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>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ie311f44679dd4d298d402fc5cc7fce02_I20220630">
        <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>2022-06-30</instant>
        </period>
    </context>
    <context id="i90c5e78246e04a41aca020b462483b81_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:CoreSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i5f54f558e8a641c794abb0443cc435fa_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i75d344a636cb4fa9bceae04ff7a131c7_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:CoreSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ia2dcf79e774e42579ce877b45c93331f_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i38f0e0b1654041ebb21397dd05bbf113_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:ValuePlusServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i11ee439cabe240518fe5702de6614954_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i819cf7f7224b43939607c272c744eaea_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:ValuePlusServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i73d6fe15141f4e52826807265785991f_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i167a9746c7c54a9e94689bb0b792e882_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:OtherServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="ie251e335e27947c897204242255b1c2c_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i70d00f9dde554866bede19b003c609c4_D20220101-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001433195</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">appf:OtherServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="iecb84f2282ea470190ef0cdf40a4f54a_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80L2ZyYWc6MDhiMzkzOGZhNzMwNDhkZGE2ZDA3YjMzOWM4NjYzNGYvdGFibGU6ZWUxYWViZjFkMDY3NDQzODk5ZTgzODRjZmFmZDdjMDUvdGFibGVyYW5nZTplZTFhZWJmMWQwNjc0NDM4OTllODM4NGNmYWZkN2MwNV8yLTEtMS0xLTEwNzY2MA_1ab90b51-ea29-4e9b-b1ba-3517911836d5">0001433195</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80L2ZyYWc6MDhiMzkzOGZhNzMwNDhkZGE2ZDA3YjMzOWM4NjYzNGYvdGFibGU6ZWUxYWViZjFkMDY3NDQzODk5ZTgzODRjZmFmZDdjMDUvdGFibGVyYW5nZTplZTFhZWJmMWQwNjc0NDM4OTllODM4NGNmYWZkN2MwNV8zLTEtMS0xLTEwNzY2MA_3484e641-2926-4452-9475-e1b1f239f5c3">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80L2ZyYWc6MDhiMzkzOGZhNzMwNDhkZGE2ZDA3YjMzOWM4NjYzNGYvdGFibGU6ZWUxYWViZjFkMDY3NDQzODk5ZTgzODRjZmFmZDdjMDUvdGFibGVyYW5nZTplZTFhZWJmMWQwNjc0NDM4OTllODM4NGNmYWZkN2MwNV83LTEtMS0xLTEwNzY2MA_98e20482-e769-46e4-98c1-2ec578f87bd0">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80L2ZyYWc6MDhiMzkzOGZhNzMwNDhkZGE2ZDA3YjMzOWM4NjYzNGYvdGFibGU6ZWUxYWViZjFkMDY3NDQzODk5ZTgzODRjZmFmZDdjMDUvdGFibGVyYW5nZTplZTFhZWJmMWQwNjc0NDM4OTllODM4NGNmYWZkN2MwNV84LTEtMS0xLTEwNzY2MA_1b34565e-7c03-424d-8229-50663c476df3">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80L2ZyYWc6MDhiMzkzOGZhNzMwNDhkZGE2ZDA3YjMzOWM4NjYzNGYvdGFibGU6ZWUxYWViZjFkMDY3NDQzODk5ZTgzODRjZmFmZDdjMDUvdGFibGVyYW5nZTplZTFhZWJmMWQwNjc0NDM4OTllODM4NGNmYWZkN2MwNV85LTEtMS0xLTEwNzY2MA_54983f04-b497-4623-b89c-97be6c5b6712">false</dei:AmendmentFlag>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="ic1cb1fa712de4b599018e293866c994f_I20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfOTg_67c1edbd-e85a-4f88-8d49-c489a55cf02d">P1Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfNi0wLTEtMS0xMDc2NjA_fe66b87c-62e0-46da-9a65-b9e6a987b629">http://fasb.org/us-gaap/2022#OtherLiabilitiesCurrent</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ieca0dbfad2c94c15b212637f9662bf37_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTAzMA_33edab3c-a6f7-440d-8cc3-286cfadb295d">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <appf:ShareBasedCompensationArrangementByShareBasedPaymentAwardMeasurementPeriod
      contextRef="ieca0dbfad2c94c15b212637f9662bf37_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMzI5ODUzNDg4NzAwMA_656c1be4-7f07-4599-94ac-c0805569e499">P3Y</appf:ShareBasedCompensationArrangementByShareBasedPaymentAwardMeasurementPeriod>
    <dei:DocumentType
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzI0_776779f7-32c1-49c2-aa37-a2b32f8d4618">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzI1_8cfe77b3-f720-47d1-ae7f-85cb85e20871">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzI_3d7dd898-4ba1-41af-b1ff-cd3e86c16d6e">2022-06-30</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzE3_6e2767ba-a123-4339-9b59-13e23cd0ee8e">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzE4_75ceaa47-d8d9-4e48-96b1-e6ef8c4016b7">001-37468</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzE5_e7e332ff-09b1-4ff7-8530-3b2af013c5dd">AppFolio, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6MmY2YzE2MzZlZWQ4NGMwYmFkYzFiODlhNTllZjk1NjMvdGFibGVyYW5nZToyZjZjMTYzNmVlZDg0YzBiYWRjMWI4OWE1OWVmOTU2M18wLTAtMS0xLTEwNzY2MA_bd06ae4f-c8f7-450d-980e-48889f59bea4">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6MmY2YzE2MzZlZWQ4NGMwYmFkYzFiODlhNTllZjk1NjMvdGFibGVyYW5nZToyZjZjMTYzNmVlZDg0YzBiYWRjMWI4OWE1OWVmOTU2M18wLTQtMS0xLTEwNzY2MA_09093ad7-e1d8-451d-80a2-45cc676149a8">26-0359894</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6MmY2YzE2MzZlZWQ4NGMwYmFkYzFiODlhNTllZjk1NjMvdGFibGVyYW5nZToyZjZjMTYzNmVlZDg0YzBiYWRjMWI4OWE1OWVmOTU2M18zLTAtMS0xLTEwNzY2MA_c6148c30-6438-417f-97c9-7bfb62422f60">70 Castilian Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressPostalZipCode
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6MmY2YzE2MzZlZWQ4NGMwYmFkYzFiODlhNTllZjk1NjMvdGFibGVyYW5nZToyZjZjMTYzNmVlZDg0YzBiYWRjMWI4OWE1OWVmOTU2M18zLTQtMS0xLTEwNzY2MA_e7a7e5fd-0dbe-45f5-bd16-8e0d34775999">93117</dei:EntityAddressPostalZipCode>
    <dei:EntityAddressCityOrTown
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6MmY2YzE2MzZlZWQ4NGMwYmFkYzFiODlhNTllZjk1NjMvdGFibGVyYW5nZToyZjZjMTYzNmVlZDg0YzBiYWRjMWI4OWE1OWVmOTU2M180LTAtMS0xLTEwNzY2MA_6f0c0ce8-3bb6-4cef-9ec9-e3540bc3072e">Santa Barbara,</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6MmY2YzE2MzZlZWQ4NGMwYmFkYzFiODlhNTllZjk1NjMvdGFibGVyYW5nZToyZjZjMTYzNmVlZDg0YzBiYWRjMWI4OWE1OWVmOTU2M180LTItMS0xLTEwNzY2MA_475ed1ee-c6b0-4e63-991b-5be552a20a0f">CA</dei:EntityAddressStateOrProvince>
    <dei:CityAreaCode
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzI2_6cb2da69-3239-4ad1-ad4b-50d38c17d450">805</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzIw_a6ede868-783c-44d8-b049-3706c808b91f">364-6093</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6ZmU0MWI5OTRjNmU0NDI0MzhkNjM2NWJiODgwOGMzZTUvdGFibGVyYW5nZTpmZTQxYjk5NGM2ZTQ0MjQzOGQ2MzY1YmI4ODA4YzNlNV8xLTAtMS0xLTEwNzY2MA_2c623fd0-aa1d-431d-b82b-d0710c7a2f57">Class A common stock, $0.0001 par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6ZmU0MWI5OTRjNmU0NDI0MzhkNjM2NWJiODgwOGMzZTUvdGFibGVyYW5nZTpmZTQxYjk5NGM2ZTQ0MjQzOGQ2MzY1YmI4ODA4YzNlNV8xLTEtMS0xLTEwNzY2MA_74327ec7-a41d-4ae6-b2e6-2d97b2cd4532">APPF</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6ZmU0MWI5OTRjNmU0NDI0MzhkNjM2NWJiODgwOGMzZTUvdGFibGVyYW5nZTpmZTQxYjk5NGM2ZTQ0MjQzOGQ2MzY1YmI4ODA4YzNlNV8xLTItMS0xLTEwNzY2MA_ff0f90cb-e5ca-46d9-8365-ae3475757ec6">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzIx_6a6ff8b7-a793-408c-9519-1422b9b253a1">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzIy_5befb423-459c-494a-bd5e-0d9e4ab43eec">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6ZWZlZjUyMjJlNzBkNGMwOGIyZjNjZjMyZGFiMTQ0ZGUvdGFibGVyYW5nZTplZmVmNTIyMmU3MGQ0YzA4YjJmM2NmMzJkYWIxNDRkZV8wLTAtMS0xLTEwNzY2MA_5fc2be4e-d585-467e-b4f8-7fea9c3464b8">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6ZWZlZjUyMjJlNzBkNGMwOGIyZjNjZjMyZGFiMTQ0ZGUvdGFibGVyYW5nZTplZmVmNTIyMmU3MGQ0YzA4YjJmM2NmMzJkYWIxNDRkZV8yLTUtMS0xLTEwNzY2MA_d1991776-8c7e-4acd-9e46-ef37127760a0">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGFibGU6ZWZlZjUyMjJlNzBkNGMwOGIyZjNjZjMyZGFiMTQ0ZGUvdGFibGVyYW5nZTplZmVmNTIyMmU3MGQ0YzA4YjJmM2NmMzJkYWIxNDRkZV80LTUtMS0xLTEwNzY2MA_4beafecb-a912-43a0-8089-a0af7c604516">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzIz_88e38d91-040f-4d4b-be3a-ac1b0fdebb3c">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i6742f993e11d42398aaa6746d338482a_I20220721"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMjMw_17c92cb8-e416-4b1c-8b71-4d75f0ecc4a2"
      unitRef="shares">20174583</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i87e549486c654938b8be67ffa9242ab8_I20220721"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xL2ZyYWc6ODVlNzE1NGE1Mzg5NDlmZGFkZjcxNWU3OTg1MzIwOWQvdGV4dHJlZ2lvbjo4NWU3MTU0YTUzODk0OWZkYWRmNzE1ZTc5ODUzMjA5ZF8yMzE1_8aec3575-398e-4380-8f81-64133fdb64d8"
      unitRef="shares">14826432</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMy0yLTEtMS0xMDc2NjA_9c394726-6d86-4c1e-8571-2604416552f8"
      unitRef="usd">42626000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMy00LTEtMS0xMDc2NjA_e64755e3-1230-49ef-bb75-6b282ea15f5c"
      unitRef="usd">57847000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNC0yLTEtMS0xMDc2NjA_417b41ef-3b26-4164-88c9-6326604f898c"
      unitRef="usd">75425000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNC00LTEtMS0xMDc2NjA_96b1eaab-8f41-4740-af8e-086ec88d206a"
      unitRef="usd">64600000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNS0yLTEtMS0xMDc2NjA_cf2b6f95-ca5c-48de-a98e-1c72751ae732"
      unitRef="usd">16175000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNS00LTEtMS0xMDc2NjA_9b7865e6-1d90-46de-9b77-901e31eb4f79"
      unitRef="usd">12595000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNi0yLTEtMS0xMDc2NjA_a65fbd9b-963b-48a6-a3e8-34d0ef849d82"
      unitRef="usd">22157000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNi00LTEtMS0xMDc2NjA_bb9bdf86-5bd1-489a-93a3-6e63943a17ce"
      unitRef="usd">23553000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNy0yLTEtMS0xMDc2NjA_06671634-b3bc-41d8-866e-8d215df1655f"
      unitRef="usd">156383000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNy00LTEtMS0xMDc2NjA_e9bffb19-d200-4060-9ae3-51ecca6b10b6"
      unitRef="usd">158595000</us-gaap:AssetsCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfOC0yLTEtMS0xMDc2NjA_70fe5e1b-7cbc-4ac5-9e9a-e3c8690b7c8a"
      unitRef="usd">49909000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfOC00LTEtMS0xMDc2NjA_405b9fef-f0c9-4263-bee6-f0f5898d0a15"
      unitRef="usd">61076000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfOS0yLTEtMS0xMDc2NjA_6f6f5f78-2e01-4d50-9c57-fb1600ba2cdf"
      unitRef="usd">28270000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfOS00LTEtMS0xMDc2NjA_bf170a36-bce6-4377-8695-56332872b423"
      unitRef="usd">30479000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTAtMi0xLTEtMTA3NjYw_98de0d4e-2a2f-48de-b49d-2327297f76c1"
      unitRef="usd">29228000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTAtNC0xLTEtMTA3NjYw_0c033999-07bf-400c-b9b3-92cb736f0b58"
      unitRef="usd">41710000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTEtMi0xLTEtMTA3NjYw_6d9036d9-7f65-497f-8a63-25fd273da875"
      unitRef="usd">37496000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTEtNC0xLTEtMTA3NjYw_e8894da7-5a4d-47d2-8478-788cdd8bf5ff"
      unitRef="usd">41212000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:Goodwill
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTItMi0xLTEtMTA3NjYw_dae6ea59-d083-4eb7-aa32-faa8177521e7"
      unitRef="usd">56147000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTItNC0xLTEtMTA3NjYw_8787b920-77b9-4be3-9c10-5caa5f87fa1c"
      unitRef="usd">56147000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTMtMi0xLTEtMTA3NjYw_367a682f-cc26-4ae3-81c2-f34fd535f9db"
      unitRef="usd">9408000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTMtNC0xLTEtMTA3NjYw_b0f7f3cd-5310-4237-bf75-39dd01f2ad3a"
      unitRef="usd">11711000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTUtMi0xLTEtMTA3NjYw_95ad60dc-fba2-4eed-ae6f-5da2849d5218"
      unitRef="usd">8587000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTUtNC0xLTEtMTA3NjYw_fab45fab-d674-41c5-941d-59d045099b66"
      unitRef="usd">7087000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTYtMi0xLTEtMTA3NjYw_b220a2a4-75bf-4921-b9d8-1c376303856c"
      unitRef="usd">375428000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTYtNC0xLTEtMTA3NjYw_07539c8b-52dc-4dbb-8724-a4a9f74b599c"
      unitRef="usd">408017000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTktMi0xLTEtMTA3NjYw_e6611233-a384-4ea5-bcb8-9e85dd5fcfbe"
      unitRef="usd">1338000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMTktNC0xLTEtMTA3NjYw_04017a2b-f353-4108-a928-8b8cb9c8a944"
      unitRef="usd">1704000</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjAtMi0xLTEtMTA3NjYw_eb954fb1-1378-452c-a3de-d05572449ee9"
      unitRef="usd">26757000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjAtNC0xLTEtMTA3NjYw_eb793fa8-bfe7-4942-83d3-77d6f98b3a68"
      unitRef="usd">30065000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjEtMi0xLTEtMTA3NjYw_10a3f3ef-b547-47dd-b588-f98519c44ce6"
      unitRef="usd">15807000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjEtNC0xLTEtMTA3NjYw_22458edd-d49e-47f4-a77f-884a978a07a7"
      unitRef="usd">13284000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjItMi0xLTEtMTA3NjYw_8772a4a9-5fb0-41d9-ba00-b39f94768999"
      unitRef="usd">3075000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjItNC0xLTEtMTA3NjYw_cf5b70d1-b6ac-47d8-9300-b5bd28f88f83"
      unitRef="usd">2512000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjQtMi0xLTEtMTA3NjYw_fa31fefc-2b2c-492d-a171-94080539376a"
      unitRef="usd">7742000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjQtNC0xLTEtMTA3NjYw_37665211-e04f-47b5-86d3-e4a35f22c352"
      unitRef="usd">5077000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjYtMi0xLTEtMTA3NjYw_05d4da2a-e6e4-4771-a2df-e0e0e54b6fff"
      unitRef="usd">54719000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjYtNC0xLTEtMTA3NjYw_bdc73019-573b-4b30-a934-1e65d19dbb42"
      unitRef="usd">52642000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjktMi0xLTEtMTA3NjYw_115a312d-0aad-4243-8867-f72d01d4588c"
      unitRef="usd">54044000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMjktNC0xLTEtMTA3NjYw_badaeca1-aa68-476a-ad4e-7003680bc563"
      unitRef="usd">55733000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzMtMi0xLTEtMTA3NjYw_a375c647-311b-492c-a79d-6231f6be781e"
      unitRef="usd">1674000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzMtNC0xLTEtMTA3NjYw_67ef2017-581c-47dc-a92f-a14daa644ddc"
      unitRef="usd">2261000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzQtMi0xLTEtMTA3NjYw_98220ac3-a417-443b-a8f8-786875c5a8cc"
      unitRef="usd">110437000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzQtNC0xLTEtMTA3NjYw_6a1ad3e8-3c9d-4a1d-b45f-6c28dd6b49d5"
      unitRef="usd">110636000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzUtMi0xLTEtMTA3NjYw_33a81136-8394-42f7-91c1-860385ccd474"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzUtNC0xLTEtMTA3NjYw_e9004e18-0ebf-4787-9258-df13612af820"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommonStockValue
      contextRef="ida46e9e92991427ba9d2a64027df5784_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzgtMi0xLTEtMTA3NjYw_747837d9-383f-40ee-8b78-ae611db35c72"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="icc5f2eaa506f49b7a0abab047d15329e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzgtNC0xLTEtMTA3NjYw_0d69f170-fef2-45f6-8b1a-ef1b1a40c65b"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i60e132217e954842a1ead5a2dadd33a5_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzktMi0xLTEtMTA3NjYw_164a74ac-efd5-422c-a457-9a765215dbba"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="ie6dae9493475435abe198481ea7dd6d4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfMzktNC0xLTEtMTA3NjYw_288ecb8c-3fbb-480b-a8e8-2d57a8a787e1"
      unitRef="usd">2000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDAtMi0xLTEtMTA3NjYw_ae19da8e-1bb2-4fb7-b20f-2cd71f5cd567"
      unitRef="usd">185542000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDAtNC0xLTEtMTA3NjYw_8292409b-463b-4cdf-9dac-96916fef46c3"
      unitRef="usd">171930000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDEtMi0xLTEtMTA3NjYw_8be133a6-8f57-482b-a499-6625ae45c35c"
      unitRef="usd">-1939000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDEtNC0xLTEtMTA3NjYw_97c8b542-b59d-48b7-8e80-0980b9c8e60f"
      unitRef="usd">-194000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:TreasuryStockValue
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDItMi0xLTEtMTA3NjYw_c6ae14f0-94dd-44fe-a9dc-cbfe78d033b8"
      unitRef="usd">25756000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDItNC0xLTEtMTA3NjYw_03b82633-4b0f-4026-909b-226b27073964"
      unitRef="usd">25756000</us-gaap:TreasuryStockValue>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDMtMi0xLTEtMTA3NjYw_3273cf15-0b4c-41e9-a01d-e551e0b699e4"
      unitRef="usd">107140000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDMtNC0xLTEtMTA3NjYw_49245f70-8225-40c9-8fa3-2ad53436aa07"
      unitRef="usd">151397000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDQtMi0xLTEtMTA3NjYw_b0700abd-baf1-4e99-baaa-4c87913c641e"
      unitRef="usd">264991000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDQtNC0xLTEtMTA3NjYw_39a2b270-5ad4-4a4e-a202-8cf0a1406a37"
      unitRef="usd">297381000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDUtMi0xLTEtMTA3NjYw_0c5ec1fc-00a7-466d-b574-5f6ba66758a1"
      unitRef="usd">375428000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xNi9mcmFnOjUxZjgxNThiYmE1MDQ1Y2E5ZWYyN2EwMTYyYzkxZWVmL3RhYmxlOjFmMjExNjlhYmY1MTRiMzNhZTQzZDEwNmFhMGI3NzhiL3RhYmxlcmFuZ2U6MWYyMTE2OWFiZjUxNGIzM2FlNDNkMTA2YWEwYjc3OGJfNDUtNC0xLTEtMTA3NjYw_f4737796-ac59-477c-8fe7-c48ef862eb3a"
      unitRef="usd">408017000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMi0xLTEtMS0xMDc2NjA_0a930919-0941-417f-888f-7976940c63d6"
      unitRef="usd">117450000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMi0zLTEtMS0xMDc2NjA_8d4b349f-10cf-41b7-a588-e56e61a84ea0"
      unitRef="usd">89040000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMi01LTEtMS0xMDc2NjA_2bcdfc27-a82f-475d-9b2b-99d04b6d57ec"
      unitRef="usd">222746000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMi03LTEtMS0xMDc2NjA_62ca794a-034e-4cd0-9bd5-943f62bfd8bb"
      unitRef="usd">167961000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0xLTEtMS0xMDc2NjA_71799366-e918-4331-b805-32c438e0d180"
      unitRef="usd">47430000</us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization>
    <us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0zLTEtMS0xMDc2NjA_7a15c107-c1fa-472c-ab43-2ea1c99858c3"
      unitRef="usd">32819000</us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization>
    <us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC01LTEtMS0xMDc2NjA_582ec158-c5dd-4d67-a688-4ac85c240fce"
      unitRef="usd">90777000</us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization>
    <us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC03LTEtMS0xMDc2NjA_5c62ffe3-d7f7-4f6b-b5c7-917790bc6257"
      unitRef="usd">66117000</us-gaap:CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0xLTEtMS0xMDc2NjA_32f39040-9df2-4cb6-83a4-be8a166e6387"
      unitRef="usd">26995000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0zLTEtMS0xMDc2NjA_d328c398-aec1-406f-b974-f9886a4466d8"
      unitRef="usd">17714000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS01LTEtMS0xMDc2NjA_34ac7f4d-afc9-4f60-9da5-637335475cc2"
      unitRef="usd">51914000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS03LTEtMS0xMDc2NjA_cdf97267-06d9-4bc7-9d2d-654bd9cf5cc1"
      unitRef="usd">33893000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0xLTEtMS0xMDc2NjA_4e8c2cba-432e-49bd-88ec-2577ceffbeab"
      unitRef="usd">26687000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0zLTEtMS0xMDc2NjA_f6aac130-b7e4-46a7-b312-d9fb3874e5ab"
      unitRef="usd">15506000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi01LTEtMS0xMDc2NjA_6ed664ac-8dc4-4fff-8a4b-aba8edc0d17f"
      unitRef="usd">51007000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi03LTEtMS0xMDc2NjA_28c7c23a-c514-421b-91dd-287b5c547b40"
      unitRef="usd">29889000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0xLTEtMS0xMDc2NjA_63685131-063d-43c9-a7e6-864166044e5a"
      unitRef="usd">37947000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0zLTEtMS0xMDc2NjA_2c82ed16-a375-40a9-a7f9-55c640e8346e"
      unitRef="usd">14206000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy01LTEtMS0xMDc2NjA_e68f204f-4e4a-450b-bfbb-881bc96c5164"
      unitRef="usd">56911000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy03LTEtMS0xMDc2NjA_0b1bbcee-c4b6-438b-8afe-cf4243a9efa4"
      unitRef="usd">27567000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOC0xLTEtMS0xMDc2NjA_ff6e0f9e-1976-4917-a6d3-47a9129534aa"
      unitRef="usd">8321000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOC0zLTEtMS0xMDc2NjA_7eb17427-6a2f-42ff-ba1b-745a2db3435a"
      unitRef="usd">7649000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOC01LTEtMS0xMDc2NjA_77ea1d73-0885-4352-893f-1a9f07284492"
      unitRef="usd">16736000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOC03LTEtMS0xMDc2NjA_2f458134-798b-44f0-80ae-3ef0d5cb675e"
      unitRef="usd">15018000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:CostsAndExpenses
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOS0xLTEtMS0xMDc2NjA_face17c1-be1f-48be-9ecb-7c36b7658f96"
      unitRef="usd">147380000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOS0zLTEtMS0xMDc2NjA_bbbba59a-516e-4257-a466-3ba8c48c8e7a"
      unitRef="usd">87894000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOS01LTEtMS0xMDc2NjA_105a32e6-27b7-4869-9055-7352ac733749"
      unitRef="usd">267345000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfOS03LTEtMS0xMDc2NjA_b309f821-b075-4dcc-bc59-314d81cf36a3"
      unitRef="usd">172484000</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTAtMS0xLTEtMTA3NjYw_fbd74207-f6b5-4829-823b-a783fe3ff75c"
      unitRef="usd">-29930000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTAtMy0xLTEtMTA3NjYw_2393dc54-5c23-4060-90a8-5bdbfd37f014"
      unitRef="usd">1146000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTAtNS0xLTEtMTA3NjYw_c230356f-2817-4e03-ae99-e55794b7f743"
      unitRef="usd">-44599000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTAtNy0xLTEtMTA3NjYw_adb47c86-97c8-4b00-be43-fb7c514a972e"
      unitRef="usd">-4523000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTEtMS0xLTEtMTA3NjYw_fdc53625-e9ff-49bd-ac4d-22436712190d"
      unitRef="usd">45000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTEtMy0xLTEtMTA3NjYw_cc4f2a29-bcdb-4af0-b61f-d566f355dbf4"
      unitRef="usd">496000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTEtNS0xLTEtMTA3NjYw_12b8ffcd-b79e-4bd5-8ae7-d4f5710292bd"
      unitRef="usd">35000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTEtNy0xLTEtMTA3NjYw_0101d202-8d5d-453a-bbe6-f4c437aceec4"
      unitRef="usd">1058000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTItMS0xLTEtMTA3NjYw_43f03a63-6cf9-43fe-9036-83f025d93b40"
      unitRef="usd">151000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTItMy0xLTEtMTA3NjYw_890e1362-33c8-4e1d-b7f5-230c36fa4e7a"
      unitRef="usd">55000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTItNS0xLTEtMTA3NjYw_07dcfddd-e89b-47e5-808d-b9d3b6668a70"
      unitRef="usd">258000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTItNy0xLTEtMTA3NjYw_671a2dab-8249-4c9a-a1ae-58da6d8450ed"
      unitRef="usd">108000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTMtMS0xLTEtMTA3NjYw_fd289998-2728-473e-b834-c0b95ef451aa"
      unitRef="usd">-29734000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTMtMy0xLTEtMTA3NjYw_69846869-69e8-44cc-bcbb-c967c55d9073"
      unitRef="usd">1697000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTMtNS0xLTEtMTA3NjYw_f2b9d0f4-48f5-42e2-a889-f61b7f4086b7"
      unitRef="usd">-44306000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTMtNy0xLTEtMTA3NjYw_a5256702-f5b7-400f-93e7-bf5e36800627"
      unitRef="usd">-3357000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTQtMS0xLTEtMTA3NjYw_8ed1ef64-1b5e-4295-9cac-38f005327ac5"
      unitRef="usd">236000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTQtMy0xLTEtMTA3NjYw_3bc9b09b-baa5-4117-a7bb-47ba57d77ddb"
      unitRef="usd">-324000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTQtNS0xLTEtMTA3NjYw_a5f46d6c-870d-43e0-8c4f-aca80f96acff"
      unitRef="usd">-49000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTQtNy0xLTEtMTA3NjYw_dd25e6f8-ae36-4770-ab8b-48df5fed768d"
      unitRef="usd">-5857000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTUtMS0xLTEtMTA3NjYw_aaa68658-5efa-4943-bd80-a24127f03aaf"
      unitRef="usd">-29970000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTUtMy0xLTEtMTA3NjYw_81a9c7ee-618c-4eb5-9f5f-f650136ded37"
      unitRef="usd">2021000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTUtNS0xLTEtMTA3NjYw_29b7fecd-db8a-4a45-b53f-ac354f1d76a0"
      unitRef="usd">-44257000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTUtNy0xLTEtMTA3NjYw_15b97de2-0535-43f0-9ead-4230029fab7d"
      unitRef="usd">2500000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTgtMS0xLTEtMTA3NjYw_d0502210-f1b6-4ded-ad2c-1e13e87b76e6"
      unitRef="usdPerShare">-0.86</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTgtMy0xLTEtMTA3NjYw_216be4e8-727f-46c8-a6a4-6b5405abb75a"
      unitRef="usdPerShare">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTgtNS0xLTEtMTA3NjYw_352fd937-00f4-49e0-a2e8-252ec88bed87"
      unitRef="usdPerShare">-1.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTgtNy0xLTEtMTA3NjYw_3cdecaa0-f456-4a64-b2de-e459be9e33dc"
      unitRef="usdPerShare">0.07</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTktMS0xLTEtMTA3NjYw_f1dd6c9f-f169-41cd-8018-18b7d8ad905a"
      unitRef="usdPerShare">-0.86</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTktMy0xLTEtMTA3NjYw_c036824e-cd44-4354-a7c0-5bca5c109f4f"
      unitRef="usdPerShare">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTktNS0xLTEtMTA3NjYw_97204011-215a-4491-8bf1-bdefb182ce36"
      unitRef="usdPerShare">-1.27</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMTktNy0xLTEtMTA3NjYw_026d9f91-c98f-42b8-b619-90a61b625a96"
      unitRef="usdPerShare">0.07</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjEtMS0xLTEtMTA3NjYw_1abd8d8c-b561-44c1-a901-51324b05ac4d"
      unitRef="shares">34927000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjEtMy0xLTEtMTA3NjYw_d79a74fa-3ddf-4b8e-a32a-38bf88cfe8d0"
      unitRef="shares">34548000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjEtNS0xLTEtMTA3NjYw_bcad976b-0ea9-4504-a46d-58ae1a225152"
      unitRef="shares">34881000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjEtNy0xLTEtMTA3NjYw_cbf387e5-0fb0-4dd9-b0de-0ec40f2c4628"
      unitRef="shares">34479000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjItMS0xLTEtMTA3NjYw_c481d823-78d3-49aa-a993-95cf8f9bbf5e"
      unitRef="shares">34927000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjItMy0xLTEtMTA3NjYw_499e9ee6-cc5f-4191-a6db-666cf9a6c4b7"
      unitRef="shares">35674000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjItNS0xLTEtMTA3NjYw_55eea8b8-9658-4fe1-b809-152ddb72f67a"
      unitRef="shares">34881000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfMjItNy0xLTEtMTA3NjYw_83adf7f7-6173-4a0b-a6fa-f48f34142454"
      unitRef="shares">35697000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i7c53e0cae0cb4d2f83d16d3eb7c22087_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfMy0yLTEtMS0xMDc2NjA_9c00e7a9-9a30-4178-a4c6-a4e48a4c62ab"
      unitRef="usd">726000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i37147c5661c747b1bc4561906798b2f4_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfMy00LTEtMS0xMDc2NjA_02fdcdf3-d637-4e32-b315-11b0ea8ff0e5"
      unitRef="usd">463000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ib8e3f1a28b1d44c88e8f15c13def3708_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfMy02LTEtMS0xMDc2NjA_32bec8a7-41fb-43cb-8ccf-5b106cf8edbb"
      unitRef="usd">1084000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i3666c7684f7f45f1ae48c9e173ad933e_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfMy04LTEtMS0xMDc2NjA_3f1841ae-16c6-4da1-ab18-e06fee4631d0"
      unitRef="usd">934000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i36f90b59d4464aa1a20abbcde286276f_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNC0yLTEtMS0xMDc2NjA_df648827-753c-4792-9c44-655d0ad9aa32"
      unitRef="usd">2013000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ic83a1bd8d26945faad438f3c4d0f9f21_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNC00LTEtMS0xMDc2NjA_836f9fed-9c9f-47ce-bced-64cfa2dc160a"
      unitRef="usd">447000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i127ae00a1034426ba5f352a9daa35da2_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNC02LTEtMS0xMDc2NjA_ec2b259c-7a5d-4acb-b3a7-52de72835af7"
      unitRef="usd">3473000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i120a0a4eb686420396f4668550267f69_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNC04LTEtMS0xMDc2NjA_7e8a5284-341c-4a19-8eb1-fa6d99475443"
      unitRef="usd">849000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ibad242dbb5c9444cae74278218e1c7e4_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNS0yLTEtMS0xMDc2NjA_c48bf27c-f2cb-4845-96b8-3e6d596f4ea0"
      unitRef="usd">4024000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ic542fb8e9a0d4d92a1502c3069551cce_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNS00LTEtMS0xMDc2NjA_3da632f9-2e2f-48d6-9d39-189462a1b579"
      unitRef="usd">1214000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if27e6fc943444fd3885a5387190d8657_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNS02LTEtMS0xMDc2NjA_e48ed8aa-2b45-41a5-a86b-b58bd7368e3e"
      unitRef="usd">6830000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ib9e78339402647fd80a8fcb0bb03d906_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNS04LTEtMS0xMDc2NjA_5c00ca1b-e7f7-41c0-87c9-a31a16f4ef8a"
      unitRef="usd">2071000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i7bd3b45f0ee34262bb57408643250b73_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNi0yLTEtMS0xMDc2NjA_df6de662-b2df-4eb9-bb29-62ab7f344407"
      unitRef="usd">3198000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i48a8bffe3b7940bb8c4ded86d6f43712_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNi00LTEtMS0xMDc2NjA_e71f923c-a145-4c59-ae88-774217602788"
      unitRef="usd">1090000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i8f11498aa1cc4d0a956f554d04e18e12_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNi02LTEtMS0xMDc2NjA_f8bd3fe5-98b9-4662-88e5-220d2495f3a2"
      unitRef="usd">5992000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id1b161ee924c4c6eb957f1b5bb944659_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNi04LTEtMS0xMDc2NjA_49081e92-ef7f-4087-9161-fdf31f8ae571"
      unitRef="usd">2136000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNy0yLTEtMS0xMDc2NjA_f22fba0d-24aa-476f-b2c0-6f1bdedeaf78"
      unitRef="usd">9961000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNy00LTEtMS0xMDc2NjA_cfb40fe5-19a5-46ea-8e0c-dee27a310daa"
      unitRef="usd">3214000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNy02LTEtMS0xMDc2NjA_005a4ad7-ea5b-4a48-87ad-200e55562c2c"
      unitRef="usd">17379000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmNmMzdmZTdjYWE2ZjQ2MzJiYmU0YTg2MTFiYzVjZThmL3RhYmxlcmFuZ2U6Y2YzN2ZlN2NhYTZmNDYzMmJiZTRhODYxMWJjNWNlOGZfNy04LTEtMS0xMDc2NjA_a20bc5da-5299-45a6-a171-d4e167bd5a47"
      unitRef="usd">5990000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:NetIncomeLoss
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfMi0xLTEtMS0xMDc2NjA_aaa68658-5efa-4943-bd80-a24127f03aaf"
      unitRef="usd">-29970000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfMi0zLTEtMS0xMDc2NjA_81a9c7ee-618c-4eb5-9f5f-f650136ded37"
      unitRef="usd">2021000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfMi01LTEtMS0xMDc2NjA_29b7fecd-db8a-4a45-b53f-ac354f1d76a0"
      unitRef="usd">-44257000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfMi03LTEtMS0xMDc2NjA_37fed504-db74-4bfe-8833-d11847a6dc4e"
      unitRef="usd">2500000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNC0xLTEtMS0xMDc2NjA_b46a1146-90cb-4248-94a8-67981c2eb201"
      unitRef="usd">-400000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNC0zLTEtMS0xMDc2NjA_f35799d2-bb68-4167-8b0f-0e947a903576"
      unitRef="usd">-48000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNC01LTEtMS0xMDc2NjA_2d674400-405c-4bcf-93d1-56d794e4807f"
      unitRef="usd">-1745000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNC03LTEtMS0xMDc2NjA_aaae0047-7685-475c-b000-626c23b2748a"
      unitRef="usd">-66000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNS0xLTEtMS0xMDc2NjA_31d1ae4f-6d00-4199-b5ac-0a472f216489"
      unitRef="usd">-30370000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNS0zLTEtMS0xMDc2NjA_e1287b58-9d5e-4afa-a04a-5bc69de7f4fb"
      unitRef="usd">1973000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNS01LTEtMS0xMDc2NjA_0eb34deb-75e5-4016-bb04-67f19b221b19"
      unitRef="usd">-46002000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yMi9mcmFnOjk1ZmYwZjcyMzZlYzQyM2ViZmFjYTI1YWMwZGI3MThkL3RhYmxlOjAzNzlhOWJjZGEzMTQyMGNhMTI2MzAyZjc2NDUzZmU5L3RhYmxlcmFuZ2U6MDM3OWE5YmNkYTMxNDIwY2ExMjYzMDJmNzY0NTNmZTlfNS03LTEtMS0xMDc2NjA_5427f9a6-7d2f-4453-b4b7-d6635124c70f"
      unitRef="usd">2434000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ifedce9e08d634b80a4c6356d92e63c62_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS0xLTEtMS0xMDc2NjA_8ad49e59-1d23-472e-a81f-49c0bb806ae7"
      unitRef="shares">19417000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ifedce9e08d634b80a4c6356d92e63c62_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS0zLTEtMS0xMDc2NjA_0df6b592-019c-43db-9042-23e15e18aa65"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="icba107e3ad7f4410a43a5df684ffe14a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS01LTEtMS0xMDc2NjA_c35d005c-d22d-4c5a-8d25-953d9debc9ec"
      unitRef="shares">15408000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="icba107e3ad7f4410a43a5df684ffe14a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS03LTEtMS0xMDc2NjA_6350ef74-675c-476f-a618-f146647699ab"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8eb76310110b4091b632deecf8b9c1cd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS05LTEtMS0xMDc2NjA_87848f44-776a-4a70-9cc8-97da91565738"
      unitRef="usd">171930000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6b19490ec21f437a9fd71e5cf260f3f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS0xMS0xLTEtMTA3NjYw_00401385-cd42-49e6-9db2-86ecd8a76e42"
      unitRef="usd">-194000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i3f9fb3c554004f409f21e5302bdcba66_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS0xMy0xLTEtMTA3NjYw_318be44a-7604-4286-8b4a-487d38e72d96"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ibbaa7ca080374c80aaa004cc8e3f34e3_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS0xNS0xLTEtMTA3NjYw_a8b00962-fcac-402c-8692-01c704d8608b"
      unitRef="usd">151397000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNS0xNy0xLTEtMTA3NjYw_d79cc3fb-29ac-479c-b1d9-d650011f6dd5"
      unitRef="usd">297381000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i397754bb0155496d816b0c6b4a154a27_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNi0xLTEtMS0xMDc2NjA_52c0bc11-3635-4c9f-89c2-8fa8a1541405"
      unitRef="shares">17000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i79c86aaba3dd4d16bfa2be14548f72c5_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNi05LTEtMS0xMDc2NjA_8f28d58f-c7cb-4e04-8674-0b26577a7864"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i40cdd4884ae44233b71a694a8b1171ec_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNi0xNy0xLTEtMTA3NjYw_31889648-806e-4c99-883a-af5ee3f1cdba"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i79c86aaba3dd4d16bfa2be14548f72c5_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNy05LTEtMS0xMDc2NjA_897998ab-40af-447a-957e-f8cb471959de"
      unitRef="usd">7967000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i40cdd4884ae44233b71a694a8b1171ec_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfNy0xNy0xLTEtMTA3NjYw_f59eaca9-68d6-4e3e-af6c-0e6c9a11f94f"
      unitRef="usd">7967000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="i397754bb0155496d816b0c6b4a154a27_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfOC0xLTEtMS0xMDc2NjA_9c51e6e7-5bc1-482b-b906-eb1ed23b9bfd"
      unitRef="shares">17000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i79c86aaba3dd4d16bfa2be14548f72c5_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfOC05LTEtMS0xMDc2NjA_0194f99a-43eb-4430-ba4d-d2b46f1731a8"
      unitRef="usd">-1073000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i40cdd4884ae44233b71a694a8b1171ec_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfOC0xNy0xLTEtMTA3NjYw_ae8ac790-8f0c-426d-a2bb-94a616099c82"
      unitRef="usd">-1073000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i397754bb0155496d816b0c6b4a154a27_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfOS0xLTEtMS0xMDc2NjA_61f7ded7-1084-425b-91e5-c65869edcc03"
      unitRef="shares">572000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i78d024ecc9174f92ad6aab9c6fb04ee5_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfOS01LTEtMS0xMDc2NjA_cfa67a4e-540b-4e2c-ba92-d7bdac53c492"
      unitRef="shares">-572000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i1f7e4381c4924d45b571a72b6a5ff548_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTEtMTEtMS0xLTEwNzY2MA_9da0750b-dbdc-4cdf-a01d-4dec74647353"
      unitRef="usd">-1345000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i40cdd4884ae44233b71a694a8b1171ec_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTEtMTctMS0xLTEwNzY2MA_c706f192-f10a-4dc1-bd55-391dab56d9be"
      unitRef="usd">-1345000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="i2fe580777b9b44a3b9ba542eafd4e239_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTMtMTUtMS0xLTEwNzY2MA_aba554c1-be50-4acf-a463-43b404a25081"
      unitRef="usd">-14287000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i40cdd4884ae44233b71a694a8b1171ec_D20220101-20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTMtMTctMS0xLTEwNzY2MA_507e3c97-82e2-4a9d-9aa4-8c3cb9ffa912"
      unitRef="usd">-14287000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i31c44f511b0a413499b0a780d9bf617e_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtMS0xLTEtMTA3NjYw_69f76e5e-e117-46a4-8d8d-0daece78f9e0"
      unitRef="shares">20023000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i31c44f511b0a413499b0a780d9bf617e_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtMy0xLTEtMTA3NjYw_1430471e-7470-485b-8fa3-b2f88810eb83"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i84eda38fc8cc45a99117265e4b62e702_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtNS0xLTEtMTA3NjYw_80ea7ef6-4e42-4cbe-ab8e-31b203f9b7f1"
      unitRef="shares">14836000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i84eda38fc8cc45a99117265e4b62e702_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtNy0xLTEtMTA3NjYw_e60b2174-e822-401b-a6d8-1c4f0e1d00b8"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0f020b655d6c4c26b0f99b51ff4d2de2_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtOS0xLTEtMTA3NjYw_f9b56aa2-e9e4-4ff2-931b-d70c84dff7dc"
      unitRef="usd">178924000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i56c2cd40279047f8b818510d6abbb26f_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtMTEtMS0xLTEwNzY2MA_24bd68f6-25a9-4412-9f17-275b3a819240"
      unitRef="usd">-1539000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i31b2399c562042629c1c13b23a4871b4_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtMTMtMS0xLTEwNzY2MA_3d624516-b5d9-4476-9477-e4af59cf07c1"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i65ef4a516b7043fd91b17030e642d174_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtMTUtMS0xLTEwNzY2MA_534db769-2caa-4ca0-9073-86128faea01a"
      unitRef="usd">137110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i556372d4339b4d8191d46e650dd83359_I20220331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTQtMTctMS0xLTEwNzY2MA_ce51f1ba-a6da-4a55-9a5c-58bd4d700be5"
      unitRef="usd">288743000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ic9afbd245e654d188fce4932817278d2_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTUtMS0xLTEtMTExMjMx_edfd9bec-7752-4bb6-891f-f04d353b4094"
      unitRef="shares">41000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i2297c02bfadf4c58b7079667ff7b91c5_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTUtNS0xLTEtMTExMjMx_d84936d0-6584-4617-8fb6-26ea1edd19b4"
      unitRef="shares">27000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i7823bac8d80e4dc4939f0be53ed6bf90_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTUtOS0xLTEtMTExMjMx_f9cf3819-b95b-499b-a9ad-be06313b7cdc"
      unitRef="usd">503000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTUtMTctMS0xLTExMTIzMQ_c7d49e30-4919-49e4-8c4d-3d598fbeb251"
      unitRef="usd">503000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i7823bac8d80e4dc4939f0be53ed6bf90_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTYtOS0xLTEtMTExMjMx_b71bcdb2-292e-461a-a68e-c7a16947f59b"
      unitRef="usd">10639000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTYtMTctMS0xLTExMTIzMQ_4d261cdd-cd2d-4fd3-9c72-7d9c79356d93"
      unitRef="usd">10639000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="ic9afbd245e654d188fce4932817278d2_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTctMS0xLTEtMTExMjMx_5759e3b5-58ea-42e0-8bd4-b22f12671670"
      unitRef="shares">66000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i7823bac8d80e4dc4939f0be53ed6bf90_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTctOS0xLTEtMTExMjMx_17dd7a3e-6dc7-4131-a2bb-ac39471d76e7"
      unitRef="usd">-4524000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTctMTctMS0xLTExMTIzMQ_c439dd03-78be-4868-95bd-a40ee3947794"
      unitRef="usd">-4524000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="ic9afbd245e654d188fce4932817278d2_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTgtMS0xLTEtMTExMjMx_48f21e58-3559-425d-8711-5529d1eac60c"
      unitRef="shares">37000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i2297c02bfadf4c58b7079667ff7b91c5_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTgtNS0xLTEtMTExMjMx_76887efe-0bf6-44d4-af1f-22fa16d2ee5a"
      unitRef="shares">-37000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="ic9afbd245e654d188fce4932817278d2_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMTktMS0xLTEtMTExMjMx_ea904449-7f36-495b-9abd-d8073a6a9a19"
      unitRef="shares">6000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="ia11f553aa967421e913e389062d81f5a_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjAtMTEtMS0xLTExMTIzMQ_276c5b59-d190-4797-9766-5ebd89e37f3c"
      unitRef="usd">-400000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjAtMTctMS0xLTExMTIzMQ_cf31b6c3-1f30-4293-a638-544187818d13"
      unitRef="usd">-400000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="i87cd89a4be314a9a83015c6a72fcd56a_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjItMTUtMS0xLTExMTIzMQ_30e1c8bc-f6b6-4425-87f4-1a4ec928ab5f"
      unitRef="usd">-29970000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjItMTctMS0xLTExMTIzMQ_be75e22c-eddb-43d1-b7e9-67fe9fe4ff64"
      unitRef="usd">-29970000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id292cbc0e433454cabc86074433f339a_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtMS0xLTEtMTExMjMx_1de75b86-0a44-461e-ac3a-f9bcbf4d2b74"
      unitRef="shares">20173000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="id292cbc0e433454cabc86074433f339a_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtMy0xLTEtMTExMjMx_f7fa2913-9aba-45de-a085-0168bbdff19f"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ie88ad77c0df247e6b7152b8c2775e991_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtNS0xLTEtMTExMjMx_2f927c08-b106-4db8-b3cc-df96d3254eb7"
      unitRef="shares">14826000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ie88ad77c0df247e6b7152b8c2775e991_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtNy0xLTEtMTExMjMx_d22bc067-1b30-446a-bd5a-0e27d6c409df"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if26fe817ea344ac58a94ca4b4ef727d3_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtOS0xLTEtMTExMjMx_fba6831f-f626-42cf-ba1e-8f87cc2d82b4"
      unitRef="usd">185542000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6db190fd51764d55b01c122f0a2b458e_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtMTEtMS0xLTExMTIzMQ_69f77357-3bb5-4f87-8370-b5773102bfbb"
      unitRef="usd">-1939000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id34e8fc9b042440c835edcc43a92f7ae_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtMTMtMS0xLTExMTIzMQ_a6494c4c-0d48-4d93-b1d1-05164975415c"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i1ea30a6a63a74181b016e4580da67af2_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtMTUtMS0xLTExMTIzMQ_cb50c291-c2aa-4be2-b503-17989899e823"
      unitRef="usd">107140000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjI5ZDFmNTkzZWUyNzRkMzJiODExNjhiMTY2YjQzZDkzL3RhYmxlcmFuZ2U6MjlkMWY1OTNlZTI3NGQzMmI4MTE2OGIxNjZiNDNkOTNfMjMtMTctMS0xLTExMTIzMQ_a1ec2e13-057c-4a4c-ad92-fbc4d7b5281a"
      unitRef="usd">264991000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ieadccd194016429293464b37c215f196_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS0xLTEtMS0xMDc2NjA_3dffb68b-3992-4aa4-aa20-1de9bb508b21"
      unitRef="shares">18729000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ieadccd194016429293464b37c215f196_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS0zLTEtMS0xMDc2NjA_dca85a58-5f35-42b6-ade6-c33fafd76319"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i5320c8488be1476fa5572cb6c1ee31e1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS01LTEtMS0xMDc2NjA_ba0c9270-aed2-4ec4-ba9f-83d147a387a7"
      unitRef="shares">15659000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i5320c8488be1476fa5572cb6c1ee31e1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS03LTEtMS0xMDc2NjA_e48a1262-55f6-4c1e-b30e-833d053751d8"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic3f65944a1cc472c8030c991787b17ce_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS05LTEtMS0xMDc2NjA_00af18cd-ef7e-4076-aea8-9bc05c4b1005"
      unitRef="usd">161247000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iaafed80a755a41ffbc4d118669bd7913_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS0xMS0xLTEtMTA3NjYw_141e40f1-7bc2-4354-b42f-74cf0ec1d809"
      unitRef="usd">56000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iabe0fa7edf304a698fb7fe9a209905a0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS0xMy0xLTEtMTA3NjYw_15b8a5dc-dd2c-4450-a741-6430054ddf79"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i99265e89eeb243d0bdface387a6f6e7a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS0xNS0xLTEtMTA3NjYw_c19714fe-199b-44c9-93b7-a8651c2df473"
      unitRef="usd">150369000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i5c0285c45e504a19a0bbb2291f37b5f7_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNS0xNy0xLTEtMTA3NjYw_beb409c6-526a-4aea-8907-b204f8aab346"
      unitRef="usd">285920000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ib97477e9176441c082e351b79468b2a6_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNi0xLTEtMS0xMDc2NjA_1e0c4726-7fb9-4735-8aef-e98e70bfbcf3"
      unitRef="shares">23000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ic0f01088536e40938f3094faba41170a_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNi05LTEtMS0xMDc2NjA_f251458b-f94b-4790-b545-a9c65039d323"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="if0bf7e5324f442aa9963305383915855_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNi0xNy0xLTEtMTA3NjYw_664249eb-8ac5-412e-bfdd-e6b600b86e73"
      unitRef="usd">100000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ic0f01088536e40938f3094faba41170a_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNy05LTEtMS0xMDc2NjA_e523ea3a-ab2f-4c08-a4a2-05abcfa24620"
      unitRef="usd">3295000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="if0bf7e5324f442aa9963305383915855_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfNy0xNy0xLTEtMTA3NjYw_af5d7a39-fe7d-47b1-91fb-03424c94ca60"
      unitRef="usd">3295000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="ib97477e9176441c082e351b79468b2a6_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfOC0xLTEtMS0xMDc2NjA_f4aa4f2b-323b-4352-9677-8adcccf68c77"
      unitRef="shares">42000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="ic0f01088536e40938f3094faba41170a_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfOC05LTEtMS0xMDc2NjA_c4db243e-3ffc-4a96-9d53-199fc4f9e63b"
      unitRef="usd">-3992000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="if0bf7e5324f442aa9963305383915855_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfOC0xNy0xLTEtMTA3NjYw_ffc25fd3-5f19-498a-8ecd-31cd5ed1a397"
      unitRef="usd">-3992000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="ib97477e9176441c082e351b79468b2a6_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfOS0xLTEtMS0xMDc2NjA_aca0d5b5-7948-4052-8536-647274ee9798"
      unitRef="shares">108000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="id66a9199ee234f2b989e9e28510fd6b3_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfOS01LTEtMS0xMDc2NjA_67623189-7517-4e52-8ca3-0955869e9631"
      unitRef="shares">-108000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="idbf443609a7749d5a9bb39c9fa7865e4_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTEtMTEtMS0xLTEwNzY2MA_613830a4-587e-43b6-9d20-87724787676d"
      unitRef="usd">-18000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="if0bf7e5324f442aa9963305383915855_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTEtMTctMS0xLTEwNzY2MA_32a0a529-1ac1-41d0-a6b2-71df7e775b3e"
      unitRef="usd">-18000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="i492a502fb5ba4dfe8676dab22f8f9216_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTItMTUtMS0xLTEwNzY2MA_04d6d298-5859-4310-8905-ed11b421e5e7"
      unitRef="usd">479000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if0bf7e5324f442aa9963305383915855_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTItMTctMS0xLTEwNzY2MA_e41f69ea-04e0-4768-92bc-963c49475685"
      unitRef="usd">479000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i4065460e7bd744e8ba14d49468dd3260_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtMS0xLTEtMTA3NjYw_5f0a6d6b-9e4b-4f41-b69e-b8af95ee781c"
      unitRef="shares">18902000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i4065460e7bd744e8ba14d49468dd3260_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtMy0xLTEtMTA3NjYw_b9cc2957-62c0-4c6a-987b-b86445b9457b"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ia853a582e9fd47cca6e51ebe0dd774c6_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtNS0xLTEtMTA3NjYw_5881b745-3529-4914-9256-877728c31b6d"
      unitRef="shares">15551000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ia853a582e9fd47cca6e51ebe0dd774c6_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtNy0xLTEtMTA3NjYw_1b3451c2-6e63-4b1a-b60b-8b8aeb905413"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="idbf348e424c94cddabef386a2da74fed_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtOS0xLTEtMTA3NjYw_8b786100-4436-44a7-98fa-7ba0bc37a72d"
      unitRef="usd">160650000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9d1129ac20c141e98ad7a54add586a09_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtMTEtMS0xLTEwNzY2MA_9883770d-019f-4dd8-9124-b47123c7aa21"
      unitRef="usd">38000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2f6cd8acba1d40dcba4155ba17b55eec_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtMTMtMS0xLTEwNzY2MA_3715dd61-6e55-4e4e-8bfb-2317252a0807"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2892ba97a56c405cb0109108b56365d9_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtMTUtMS0xLTEwNzY2MA_aa878fb0-cab1-46c0-9823-a504727e1c4e"
      unitRef="usd">150848000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i057b94a957bc4ccb919813db03519519_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTMtMTctMS0xLTEwNzY2MA_fbf2ecc6-ba2b-4396-b3eb-2275f3b9e97d"
      unitRef="usd">285784000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i84be88fb8fa2473aad0ea4631f26fb57_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTQtMS0xLTEtMTEzNzQz_ecec7855-e6a5-4e7b-abef-836a7ca63140"
      unitRef="shares">13000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i1afa55a215514dad933940e1d0e81a91_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTQtNS0xLTEtMTEzNzQz_4eb675b5-c99a-4570-928f-6a402bd9801a"
      unitRef="shares">84000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i64cf69ea40ec4fbe8f8aecaa5d7cd1ad_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTQtOS0xLTEtMTEzNzQz_f741f62c-3120-42a0-aee1-51e1968027cc"
      unitRef="usd">545000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTQtMTctMS0xLTExMzc0Mw_5d15d535-2663-41ac-b50c-3f4fc9094d8e"
      unitRef="usd">545000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i64cf69ea40ec4fbe8f8aecaa5d7cd1ad_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTUtOS0xLTEtMTEzNzQz_36ae1312-a2b4-4f71-b4f3-00144f634346"
      unitRef="usd">3873000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTUtMTctMS0xLTExMzc0Mw_2d81ea3f-79c0-4b82-9efc-f9bbbae92c28"
      unitRef="usd">3873000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings
      contextRef="i84be88fb8fa2473aad0ea4631f26fb57_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTYtMS0xLTEtMTEzNzQz_8f9fa6d1-75d2-4dfa-a168-4f58f95afa53"
      unitRef="shares">56000</appf:RestrictedStockUnitsSharesIssuedNetOfSharesForTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="i64cf69ea40ec4fbe8f8aecaa5d7cd1ad_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTYtOS0xLTEtMTEzNzQz_f7ab3395-9ab4-4c8d-b2d0-ccf13d9ca98d"
      unitRef="usd">-4908000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTYtMTctMS0xLTExMzc0Mw_433c5dd8-3cba-4058-9aff-0c9a1107df04"
      unitRef="usd">-4908000</appf:RestrictedStockUnitsValueSharesIssuedNetOfTaxWithholdings>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i84be88fb8fa2473aad0ea4631f26fb57_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTctMS0xLTEtMTEzNzQz_39952ce0-d53f-4916-9b9b-122e21bd9d72"
      unitRef="shares">14000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="i1afa55a215514dad933940e1d0e81a91_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTctNS0xLTEtMTEzNzQz_d5d37d05-db6f-4104-b1c5-aa6e4cf8bab0"
      unitRef="shares">-14000</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="i84be88fb8fa2473aad0ea4631f26fb57_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTgtMS0xLTEtMTEzNzQz_99e13701-39cb-402e-9f2c-5d42ffb56c29"
      unitRef="shares">4000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="ibe42977896a24419ad04abf6efdbeec7_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTktMTEtMS0xLTExMzc0Mw_520832f3-87a2-4f32-9447-c81744e96adc"
      unitRef="usd">-48000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMTktMTctMS0xLTExMzc0Mw_b1e54eb9-dbf8-4d54-b77c-2d5417c753bb"
      unitRef="usd">-48000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="icae9ab4b5d4d4c969964bb05c9abb8f7_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjAtMTUtMS0xLTExMzc0Mw_991d4619-b824-4c34-8e45-2ef1e7bb7ff6"
      unitRef="usd">2021000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjAtMTctMS0xLTExMzc0Mw_cc34c10e-0922-4bf0-bde0-0cc172a01445"
      unitRef="usd">2021000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id11d020728a44b11aa79f2b4bb2669b8_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtMS0xLTEtMTEzNzQz_edbe16a2-ae4f-4bbb-9e46-25fef935ae1d"
      unitRef="shares">18989000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="id11d020728a44b11aa79f2b4bb2669b8_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtMy0xLTEtMTEzNzQz_09f90ccc-5d8f-4c27-bca6-63f68ad16720"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i270423f2c5ab469aacd087ee89f01b81_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtNS0xLTEtMTEzNzQz_52c6ab89-bbe8-43f1-a47a-0263c62f640c"
      unitRef="shares">15621000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i270423f2c5ab469aacd087ee89f01b81_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtNy0xLTEtMTEzNzQz_71100a47-5f5c-4dea-8255-925b5d5d7d8d"
      unitRef="usd">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i42a2594b29ec4c98b2c44b92916fc991_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtOS0xLTEtMTEzNzQz_dc327766-ec90-4c5c-85e5-e29504599967"
      unitRef="usd">160160000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ie428f2c0600945908eea334fd7c52e7f_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtMTEtMS0xLTExMzc0Mw_aa4a4f15-1e2c-4a59-b47a-215c8083f83c"
      unitRef="usd">-10000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i11443e05d1764e26aa49b6508ab7d854_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtMTMtMS0xLTExMzc0Mw_be90b9d4-a188-41d7-8498-10d797d2cb52"
      unitRef="usd">-25756000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6ee60aba3a8048a5953d095aa0d019b2_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtMTUtMS0xLTExMzc0Mw_7e877d91-1b99-496a-97a8-13b8df791ffc"
      unitRef="usd">152869000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i43f3373a89ab48148ac2fe334345879d_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yNS9mcmFnOjg5ZTY5Yzk2MDYyYzRmNjY5NmNkNmQzZDRjZjVjYzlkL3RhYmxlOjYyZjFlOTE1ZDBjZTRkZWE4Mjk1Yzg0NjM5Y2Y1NThkL3RhYmxlcmFuZ2U6NjJmMWU5MTVkMGNlNGRlYTgyOTVjODQ2MzljZjU1OGRfMjEtMTctMS0xLTExMzc0Mw_d56535f8-7f2b-4012-b86a-c06d2834696e"
      unitRef="usd">287267000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfOC0xLTEtMS0xMDc2NjA_ed19adbc-9044-4501-aa68-f3ffd31d0754"
      unitRef="usd">-44257000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfOC0zLTEtMS0xMDc2NjA_a084dabc-3232-4fe3-bcc5-357d4bd6554c"
      unitRef="usd">2500000</us-gaap:NetIncomeLoss>
    <appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTAtMS0xLTEtMTA3NjYw_d9a2eced-350d-43f8-9309-317a1c70b6d0"
      unitRef="usd">15637000</appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts>
    <appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTAtMy0xLTEtMTA3NjYw_17471e81-9998-46b9-b4fe-a07e0cf3704b"
      unitRef="usd">14190000</appf:DepreciationDepletionandAmortizationExcludingAmortizationofFinancingCosts>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTEtMS0xLTEtMTA3NjYw_f237d53c-e8ba-4390-95ca-2ec88377c504"
      unitRef="usd">1809000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTEtMy0xLTEtMTA3NjYw_6d506383-0c8c-4446-a443-485ff96850b5"
      unitRef="usd">1399000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:AssetImpairmentCharges
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTItMS0xLTEtMTIyMjUw_2312eed9-1c2e-49c3-be27-081bf05a0404"
      unitRef="usd">19792000</us-gaap:AssetImpairmentCharges>
    <us-gaap:AssetImpairmentCharges
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTItMy0xLTEtMTIyMjU0_b81a81c1-1471-44a8-a4b4-02ce63b58839"
      unitRef="usd">0</us-gaap:AssetImpairmentCharges>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTItMS0xLTEtMTA3NjYw_1132e1ac-9e15-407f-b3b9-609b9c3ff5ee"
      unitRef="usd">-1550000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTItMy0xLTEtMTA3NjYw_09f53621-45a3-48f4-adca-dea3e446cc06"
      unitRef="usd">-6086000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:ShareBasedCompensation
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTMtMS0xLTEtMTA3NjYw_5b716ece-7eb9-4b29-a83f-bb3706c575fd"
      unitRef="usd">18478000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTMtMy0xLTEtMTA3NjYw_1011514d-c417-43ca-b640-25c7048b8abe"
      unitRef="usd">6818000</us-gaap:ShareBasedCompensation>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTUtMS0xLTEtMTA3NjYw_66f72765-10e7-4245-ae5e-b994b16de201"
      unitRef="usd">-6000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTUtMy0xLTEtMTA3NjYw_7a9a1b36-7784-4cd9-93b1-fde184948397"
      unitRef="usd">579000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTgtMS0xLTEtMTA3NjYw_48788a52-3358-4c2b-8bed-6830a6da63e3"
      unitRef="usd">2924000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTgtMy0xLTEtMTA3NjYw_17903630-b700-411e-abf3-5ce414e29e7d"
      unitRef="usd">4007000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTktMS0xLTEtMTA3NjYw_808ae1e8-6e18-48d9-b890-c9f7f0ef9c5b"
      unitRef="usd">2652000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMTktMy0xLTEtMTA3NjYw_cc797d45-b165-4b11-a778-643a9719d2ce"
      unitRef="usd">2171000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjAtMS0xLTEtMTA3NjYw_0ea5431e-33c7-482d-8f0d-3073c0636149"
      unitRef="usd">1308000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjAtMy0xLTEtMTA3NjYw_13f52aaa-3087-473b-8f95-801540d20df0"
      unitRef="usd">982000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjEtMS0xLTEtMTA3NjYw_3ce2a813-9b06-4d9f-bc29-021b7f5884d4"
      unitRef="usd">17000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjEtMy0xLTEtMTA3NjYw_59dcd895-430f-49b7-84de-3cf669153896"
      unitRef="usd">1301000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjItMS0xLTEtMTA3NjYw_e8d29c98-3df2-4bf7-b617-7b0d58aec83f"
      unitRef="usd">-3217000</us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities>
    <us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjItMy0xLTEtMTA3NjYw_3d30c1db-679e-4069-ae62-abdb6d7de37a"
      unitRef="usd">7638000</us-gaap:IncreaseDecreaseInEmployeeRelatedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccruedLiabilities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjMtMS0xLTEtMTA3NjYw_47da7f80-be53-465f-a777-cc5fecb245fc"
      unitRef="usd">3182000</us-gaap:IncreaseDecreaseInOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherAccruedLiabilities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjMtMy0xLTEtMTA3NjYw_72a0fb23-8bc5-4393-a3ee-df8875e09127"
      unitRef="usd">-3047000</us-gaap:IncreaseDecreaseInOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjQtMS0xLTEtMTA3NjYw_ee4a722b-7b77-4781-822e-81628a6b07c1"
      unitRef="usd">-94000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjQtMy0xLTEtMTA3NjYw_7ee0767c-3b36-4aca-a943-60f55b3b3ed8"
      unitRef="usd">33000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <appf:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjgtMS0xLTEtMTA3NjYw_6c20ccd7-4e06-4b28-9f69-e5e1b581b423"
      unitRef="usd">-1311000</appf:IncreaseDecreaseInOperatingLeaseLiabilities>
    <appf:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjgtMy0xLTEtMTA3NjYw_5e84041a-b347-4fdd-8c40-225a957d37bc"
      unitRef="usd">1685000</appf:IncreaseDecreaseInOperatingLeaseLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjktMS0xLTEtMTA3NjYw_a76c8601-c756-4aa4-b2d2-dda0803da0a5"
      unitRef="usd">1673000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMjktMy0xLTEtMTA3NjYw_fde807d9-b6cd-4de6-8565-7b8ec8f9ab31"
      unitRef="usd">-8031000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzAtMS0xLTEtMTA3NjYw_5a658f70-4d1c-4cf4-b16f-65a84ae9d464"
      unitRef="usd">3281000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzAtMy0xLTEtMTA3NjYw_51c96f01-2ec3-4bcf-9c10-1781a548433e"
      unitRef="usd">10661000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzItMS0xLTEtMTA3NjYw_0311969a-56a0-419b-94b1-e71f57cadc6d"
      unitRef="usd">44900000</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzItMy0xLTEtMTA3NjYw_5b270c93-50ec-4bb6-9589-3b84353e333d"
      unitRef="usd">148293000</us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzMtMS0xLTEtMTA3NjYw_3ddac468-edda-4d77-bcd2-bf800adc1cdd"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzMtMy0xLTEtMTA3NjYw_97da5c35-2e96-47c0-8708-36de305cf898"
      unitRef="usd">42198000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzQtMS0xLTEtMTA3NjYw_27057a3b-9da4-4018-ad03-9fa2693d4745"
      unitRef="usd">43498000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzQtMy0xLTEtMTA3NjYw_9c8fd791-7d77-41c9-b2ef-9ec802716ad2"
      unitRef="usd">26750000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzUtMS0xLTEtMTA3NjYw_0490f59f-5b46-4236-a8a6-d387c0fd64e5"
      unitRef="usd">5099000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzUtMy0xLTEtMTA3NjYw_a9c638bf-7696-47bc-84ae-8c5fd85ae3cf"
      unitRef="usd">2804000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzYtMS0xLTEtMTA3NjYw_ae498417-1292-42d5-9efc-1a2f2f159b57"
      unitRef="usd">7193000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfMzYtMy0xLTEtMTA3NjYw_30169f3a-1de6-4757-86ad-6e0b8e38a9eb"
      unitRef="usd">11911000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNDAtMS0xLTEtMTA3NjYw_d726f8e2-9ec5-4065-a178-179bd948e113"
      unitRef="usd">-13694000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNDAtMy0xLTEtMTA3NjYw_13658370-85e5-47ac-b86f-8d03cec8940c"
      unitRef="usd">-94060000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNDItMS0xLTEtMTA3NjYw_2d94816a-9211-489d-a679-830738f634aa"
      unitRef="usd">603000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNDItMy0xLTEtMTA3NjYw_c501d614-2cc7-4a4b-b9b8-f0f63a22ecb1"
      unitRef="usd">646000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNDUtMS0xLTEtMTA3NjYw_78a23fb7-8774-4fc0-9ca7-eaf1f602454c"
      unitRef="usd">5597000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNDUtMy0xLTEtMTA3NjYw_eea5d724-2b7d-4273-83f3-5fe86cee0def"
      unitRef="usd">8900000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTItMS0xLTEtMTA3NjYw_22710d46-ab5a-47ab-a58c-acfcca1f7d35"
      unitRef="usd">-4994000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTItMy0xLTEtMTA3NjYw_f36af97a-54f3-4c6a-9702-7961b3955f7d"
      unitRef="usd">-8254000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTMtMS0xLTEtMTA3NjYw_9e5069bb-098d-4cd7-b522-acc3bf865c31"
      unitRef="usd">-15407000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTMtMy0xLTEtMTA3NjYw_75d3481c-d13d-4146-a803-f0bcbe1008fe"
      unitRef="usd">-91653000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTUtMS0xLTEtMTA3NjYw_6913196e-267b-405a-a213-ca1a9e018579"
      unitRef="usd">58283000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i5c0285c45e504a19a0bbb2291f37b5f7_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTUtMy0xLTEtMTA3NjYw_b0bfe565-3873-4bb2-9ade-b8cbdf706f87"
      unitRef="usd">140699000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTYtMS0xLTEtMTA3NjYw_48e4cef5-7906-4a4d-a62b-9f2c4982e07e"
      unitRef="usd">42876000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i43f3373a89ab48148ac2fe334345879d_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNTYtMy0xLTEtMTA3NjYw_b907280c-e030-4531-a4a6-f24002a52d81"
      unitRef="usd">49046000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNjUtMS0xLTEtMTA3NjYw_d7907fd4-0ddb-4dae-a70c-bcdc7decf513"
      unitRef="usd">484000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNjUtMy0xLTEtMTA3NjYw_7456f419-05f0-48a5-8060-a66fe51c455d"
      unitRef="usd">822000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNjYtMS0xLTEtMTA3NjYw_9af3c3da-de3f-4917-93f6-0f72a58ce5b2"
      unitRef="usd">205000</appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid>
    <appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNjYtMy0xLTEtMTA3NjYw_7987266a-c90b-46c9-b589-d7cdcf82bd9a"
      unitRef="usd">1361000</appf:CapitalizedComputerSoftwareAdditionsIncurredButNotYetPaid>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNjctMS0xLTEtMTA3NjYw_c3d4ad60-6532-46f3-9fa2-00b627062930"
      unitRef="usd">1226000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOjkxYWQyZTg3ZTgxMzQ1MTRhOGVlNGJlNGU0MzgwM2JlL3RhYmxlcmFuZ2U6OTFhZDJlODdlODEzNDUxNGE4ZWU0YmU0ZTQzODAzYmVfNjctMy0xLTEtMTA3NjYw_c8d0f999-2419-44e9-b978-b26978376b49"
      unitRef="usd">1178000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOmM0MTk1YWYyODgzOTRiZTY4NmUyNjIwZjViMjI3YmI1L3RhYmxlcmFuZ2U6YzQxOTVhZjI4ODM5NGJlNjg2ZTI2MjBmNWIyMjdiYjVfMi0xLTEtMS0xMDc2NjA_d31f8bc0-ba4f-4483-a8f8-d94be662de68"
      unitRef="usd">42626000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i43f3373a89ab48148ac2fe334345879d_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOmM0MTk1YWYyODgzOTRiZTY4NmUyNjIwZjViMjI3YmI1L3RhYmxlcmFuZ2U6YzQxOTVhZjI4ODM5NGJlNjg2ZTI2MjBmNWIyMjdiYjVfMi0zLTEtMS0xMDc2NjA_cc184c4c-6b0f-4432-86f3-b808615d18de"
      unitRef="usd">48610000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCashNoncurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOmM0MTk1YWYyODgzOTRiZTY4NmUyNjIwZjViMjI3YmI1L3RhYmxlcmFuZ2U6YzQxOTVhZjI4ODM5NGJlNjg2ZTI2MjBmNWIyMjdiYjVfMy0xLTEtMS0xMDc2NjA_b49542b3-6466-4f40-b3e6-c8955f99dbff"
      unitRef="usd">250000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:RestrictedCashNoncurrent
      contextRef="i43f3373a89ab48148ac2fe334345879d_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOmM0MTk1YWYyODgzOTRiZTY4NmUyNjIwZjViMjI3YmI1L3RhYmxlcmFuZ2U6YzQxOTVhZjI4ODM5NGJlNjg2ZTI2MjBmNWIyMjdiYjVfMy0zLTEtMS0xMDc2NjA_6846df19-e1e2-4025-b803-5c969b192b95"
      unitRef="usd">436000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOmM0MTk1YWYyODgzOTRiZTY4NmUyNjIwZjViMjI3YmI1L3RhYmxlcmFuZ2U6YzQxOTVhZjI4ODM5NGJlNjg2ZTI2MjBmNWIyMjdiYjVfNC0xLTEtMS0xMDc2NjA_59425b1b-50dc-4856-95ae-3ff71f723262"
      unitRef="usd">42876000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i43f3373a89ab48148ac2fe334345879d_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8yOC9mcmFnOjMzYWM4MTlhNzdhNjQ5ZGQ4NTcyNDg2MTU3MTNiY2Y2L3RhYmxlOmM0MTk1YWYyODgzOTRiZTY4NmUyNjIwZjViMjI3YmI1L3RhYmxlcmFuZ2U6YzQxOTVhZjI4ODM5NGJlNjg2ZTI2MjBmNWIyMjdiYjVfNC0zLTEtMS0xMDc2NjA_e6725b59-4a5e-4f31-9291-571e0bb2b1dc"
      unitRef="usd">49046000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:NatureOfOperations
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNC9mcmFnOjFkMmQyNGRjNmNlMjQzNTQ4YWExZTEwMTUzMWNiNDMxL3RleHRyZWdpb246MWQyZDI0ZGM2Y2UyNDM1NDhhYTFlMTAxNTMxY2I0MzFfNjk4_c2ed9a68-033b-4cf2-99f9-9d23db3d0476">Nature of BusinessAppFolio, Inc. ("we," "us" or "our") is a leading provider of cloud business management solutions for the real estate industry. Our solutions enable our customers to digitally transform their businesses, automate and streamline critical business operations and deliver a better customer experience. We were founded in 2006 with the vision of revolutionizing vertical industry businesses by providing great software and services. Our mission is even more relevant today, when digital transformation is effectively a requirement for business success in the modern world, and the way we work and live requires powerful software solutions to enable a more seamless experience.</us-gaap:NatureOfOperations>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfNDU3NA_bbccd62c-b6b0-497d-ba10-ad3a0492d6af">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 February 28, 2022. 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 six months ended June&#160;30, 2022 are not necessarily indicative of the results expected for the full year ending December&#160;31, 2022.&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;Reclassification&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 reclassified certain amounts in our Condensed Consolidated Balance Sheets and Condensed Consolidated Statements of Cash Flows within the cash flows 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-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 financial instruments, capitalized software development 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 (whether cash or stock-based), and assumptions underlying stock-based compensation. 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 (Loss) Income per Common Share&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;Net (loss) 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 (loss) income per common share (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:7.823%"/&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="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;June 30,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Six Months Ended&lt;br/&gt;June 30,&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;2022&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;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;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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,931&#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,553&#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,885&#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,484&#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;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;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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,927&#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,548&#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,881&#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,479&#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;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;&#x2014;&#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,126&#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;&#x2014;&#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,218&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;34,927&#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,674&#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;34,881&#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,697&#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: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;For the three and six months ended June&#160;30, 2022 and 2021, an aggregate of 197,000 and 120,000 shares, respectively, 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 satisfaction of pre-defined performance measures and their respective performance measures have not been met. 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 and six months ended June&#160;30, 2021. Because we reported a net loss for the three and six months ended June&#160;30, 2022, all potentially dilutive common shares are anti-dilutive for that period and have been excluded from the calculation of net loss per share.&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 Not Yet Adopted&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:115%"&gt;In October 2021, the FASB issued ASU 2021-08, "&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;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&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;," which requires contract assets and contract liabilities acquired in a business combination to be recognized and measured by the acquirer on the acquisition date in accordance with ASC 606, "&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;Revenue from Contracts with Customers&lt;/span&gt;," as if the acquirer had originated the contracts. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022, with early adoption permitted. We expect to adopt ASU 2021-08 on January 1, 2023.</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfNDU0Ng_992b8b6b-5a4c-4fc5-b673-187e1d284692">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 February 28, 2022. 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:UseOfEstimates
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfNDU2OA_5f061ef9-9f67-4901-8a2a-b3255d7808f4">Use of EstimatesThe 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 financial instruments, capitalized software development 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 (whether cash or stock-based), and assumptions underlying stock-based compensation. Actual results could differ from those estimates and any such differences may have a material impact on our Condensed Consolidated Financial Statements.</us-gaap:UseOfEstimates>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfNDU2OQ_2e0f98f3-7c9e-47f0-96a9-82d087cd0814">Net (Loss) Income per Common ShareNet (loss) 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="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfNDU2NA_c5556252-14f5-446c-a43c-3bfe143bde00">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 (loss) income per common share (in thousands):&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&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:7.823%"/&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="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;June 30,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Six Months Ended&lt;br/&gt;June 30,&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;2022&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;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;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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,931&#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,553&#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,885&#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,484&#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;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;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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,927&#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,548&#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,881&#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,479&#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;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;&#x2014;&#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,126&#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;&#x2014;&#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,218&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;34,927&#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,674&#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;34,881&#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,697&#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:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMi0yLTEtMS0xMDc2NjA_b1aa1916-efa1-42c7-a0a6-1a7c667ae637"
      unitRef="shares">34931000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMi00LTEtMS0xMDc2NjA_8fe62ac6-f13d-4012-befa-9c66b560d394"
      unitRef="shares">34553000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMi02LTEtMS0xMDc2NjA_055043be-6a71-4316-9109-9b840854927b"
      unitRef="shares">34885000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMi04LTEtMS0xMDc2NjA_051bdd9d-064e-49e6-aa58-6f922432c611"
      unitRef="shares">34484000</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMy0yLTEtMS0xMDc2NjA_7315b696-ceb7-417b-bdc2-adf366301ffc"
      unitRef="shares">4000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMy00LTEtMS0xMDc2NjA_de9d123b-ec7d-4dd6-ad88-905746b04c10"
      unitRef="shares">5000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMy02LTEtMS0xMDc2NjA_d72af63d-3a0c-4b02-8eea-a8c2712076de"
      unitRef="shares">4000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfSharesRestrictedStock
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMy04LTEtMS0xMDc2NjA_8ad087a0-cad8-4212-a456-71c0698a9b0e"
      unitRef="shares">5000</us-gaap:WeightedAverageNumberOfSharesRestrictedStock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfNC0yLTEtMS0xMDc2NjA_86593e62-cb95-4df2-baba-171134079b50"
      unitRef="shares">34927000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfNC00LTEtMS0xMDc2NjA_d79a74fa-3ddf-4b8e-a32a-38bf88cfe8d0"
      unitRef="shares">34548000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfNC02LTEtMS0xMDc2NjA_11431a8f-f37d-420f-9bfa-e8b99a8286fd"
      unitRef="shares">34881000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfNC04LTEtMS0xMDc2NjA_cbf387e5-0fb0-4dd9-b0de-0ec40f2c4628"
      unitRef="shares">34479000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTEtMi0xLTEtMTA3NjYw_bf7d6ee6-f19a-4d5e-823f-b1ad9a553c1f"
      unitRef="shares">0</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTEtNC0xLTEtMTA3NjYw_2636e29b-1888-4961-b176-9a105105bb39"
      unitRef="shares">1126000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTEtNi0xLTEtMTA3NjYw_443fe6f3-f9a2-455f-a032-f7ff8e2ad0f2"
      unitRef="shares">0</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTEtOC0xLTEtMTA3NjYw_022ae62d-e675-4819-ace2-782b814b58aa"
      unitRef="shares">1218000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTItMi0xLTEtMTA3NjYw_dc1bc5fa-b86a-44e3-a3e0-bb00dfe38503"
      unitRef="shares">34927000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTItNC0xLTEtMTA3NjYw_9cdbaa2a-d592-4dd8-bc50-75e5ec0f7c3e"
      unitRef="shares">35674000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTItNi0xLTEtMTA3NjYw_92a49d4f-0f1c-4d1d-a9e4-a6b3fcc7d0e4"
      unitRef="shares">34881000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RhYmxlOmI1M2QzN2QwNTAwNDRkN2VhZTUwMWZiZWMxMGJhYzEwL3RhYmxlcmFuZ2U6YjUzZDM3ZDA1MDA0NGQ3ZWFlNTAxZmJlYzEwYmFjMTBfMTItOC0xLTEtMTA3NjYw_64704c05-ac94-4252-8026-43b92aa90cd4"
      unitRef="shares">35697000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i21e61b5251c74e6689fcfe1a405c8564_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfMzExOA_33cbd2ba-c916-4495-a19f-eb9631aaadfd"
      unitRef="shares">197000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i1a79d87407814f2e888628454f568279_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfMzExOA_fc0d45c7-4924-4c73-a5bf-328c3ada7d70"
      unitRef="shares">197000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i8ab9b7fc9f4e45cc87f7bbab73ee1b87_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfMzEyNQ_7e3c3168-a976-452a-b9fc-964d2f7dce9d"
      unitRef="shares">120000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="id6ad0a657faf43029ab95029099d3cf0_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfMzEyNQ_99b2ffe1-8e9e-4795-8832-d88fa0493b93"
      unitRef="shares">120000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8zNy9mcmFnOmQzMmNhZWI5OWNhNjQzN2I5ZmQ4ZjliMmEyZmQ5Y2Y2L3RleHRyZWdpb246ZDMyY2FlYjk5Y2E2NDM3YjlmZDhmOWIyYTJmZDljZjZfNDU0NA_c68fcc7a-731b-4430-998d-c5db9840858f">Recent Accounting Pronouncements Not Yet Adopted&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;In October 2021, the FASB issued ASU 2021-08, "&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;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&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;," which requires contract assets and contract liabilities acquired in a business combination to be recognized and measured by the acquirer on the acquisition date in accordance with ASC 606, "&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;Revenue from Contracts with Customers&lt;/span&gt;," as if the acquirer had originated the contracts. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022, with early adoption permitted. We expect to adopt ASU 2021-08 on January 1, 2023.</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RleHRyZWdpb246MzU2ODRhOTkwYWMyNDRmODk0ZWNkZGRmZDc1NzEwZGZfMjU4OQ_6a3ff092-354b-4d6e-8176-7d0198ae06e2">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 June&#160;30, 2022 and December&#160;31, 2021&#160;(in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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;June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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;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;19,464&#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;(60)&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;19,404&#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;19,752&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(443)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;88,126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(1,505)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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 available-for-sale investment securities&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;127,342&#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;&#x2014;&#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;(2,008)&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;125,334&#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:18pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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, 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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;29,080&#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;(11)&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,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;/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;19,753&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(27)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,726&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;77,108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(229)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,881&#160;&lt;/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 available-for-sale investment securities&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;125,941&#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;2&#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;(267)&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;125,676&#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-bottom:6pt;margin-top:13pt;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 June&#160;30, 2022, the decline in fair value below amortized cost basis was not considered other than temporary as it is more likely than not we will hold the securities until maturity or recovery of the cost basis. No allowance for credit losses for available-for-sale investment securities was recorded as of June&#160;30, 2022 or December 31, 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:120%"&gt;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-top:17pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.490%"/&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.530%"/&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.530%"/&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.530%"/&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="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;June 30, 2022&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, 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;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;75,878&#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;75,425&#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;64,627&#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;64,600&#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;51,464&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,909&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;127,342&#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;125,334&#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;125,941&#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;125,676&#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:7pt;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 six months ended June&#160;30, 2022 and 2021, 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-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.490%"/&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.530%"/&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.530%"/&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.530%"/&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;Six Months Ended June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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;&#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;&#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;&#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;23,998&#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;&#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;&#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;19,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;&#x2014;&#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;&#x2014;&#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;&#x2014;&#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;43,498&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.344%"/&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.530%"/&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.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.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;Six Months Ended June 30, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;&#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;&#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;&#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;5,250&#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;6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;42,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;6&#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;&#x2014;&#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;42,198&#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;26,750&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="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;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;The following tables present our financial assets and liabilities measured at fair value on a recurring basis as of June&#160;30, 2022 and December&#160;31, 2021 by level within the fair value hierarchy (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,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 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;19,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,309&#160;&lt;/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;86,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;91,405&#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;38,713&#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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;130,118&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;6,105&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,105&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;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;19,726&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,726&#160;&lt;/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;76,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;76,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;82,986&#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;48,795&#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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;131,781&#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:2pt;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 cash and cash equivalents, restricted cash, accounts receivable, accounts payable and accrued liabilities approximate their 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;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;</us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RleHRyZWdpb246MzU2ODRhOTkwYWMyNDRmODk0ZWNkZGRmZDc1NzEwZGZfMjU3OA_43007b40-9528-436e-b37e-8d6366d6aeb7">&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 June&#160;30, 2022 and December&#160;31, 2021&#160;(in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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;June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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;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;19,464&#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;(60)&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;19,404&#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;19,752&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(443)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;88,126&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(1,505)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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 available-for-sale investment securities&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;127,342&#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;&#x2014;&#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;(2,008)&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;125,334&#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:18pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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, 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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;29,080&#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;(11)&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,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;/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;19,753&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;(27)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,726&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;77,108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(229)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,881&#160;&lt;/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 available-for-sale investment securities&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;125,941&#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;2&#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;(267)&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;125,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i8a73b86a717d4c8ea9fe40fdc13b4c77_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMi0xLTEtMS0xMDc2NjA_7f65a773-04b7-49ce-9417-c77af95334db"
      unitRef="usd">19464000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i8a73b86a717d4c8ea9fe40fdc13b4c77_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMi0zLTEtMS0xMDc2NjA_77c0c034-191a-426c-84e3-b8c1f90e77d3"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i8a73b86a717d4c8ea9fe40fdc13b4c77_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMi01LTEtMS0xMDc2NjA_91d078a8-1586-42df-b767-fbff2e89c698"
      unitRef="usd">60000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i8a73b86a717d4c8ea9fe40fdc13b4c77_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMi03LTEtMS0xMDc2NjA_0f502c9f-d881-424d-9495-862ef74c6760"
      unitRef="usd">19404000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i189038f35d8546658426d04177fb9d46_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMy0xLTEtMS0xMDc2NjA_ba3f625a-f758-4e1b-85ad-925efcd4506f"
      unitRef="usd">19752000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i189038f35d8546658426d04177fb9d46_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMy0zLTEtMS0xMDc2NjA_bc29ff07-52b1-42e3-bfda-253199b54bce"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i189038f35d8546658426d04177fb9d46_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMy01LTEtMS0xMDc2NjA_9b188062-5f3a-4001-8b89-5ce387ea0d09"
      unitRef="usd">443000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i189038f35d8546658426d04177fb9d46_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfMy03LTEtMS0xMDc2NjA_10a7ba28-4a9f-41be-895a-9e919d27be1c"
      unitRef="usd">19309000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i06e97cb744c64b8aa8ffbd59644aadd6_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNS0xLTEtMS0xMDc2NjA_865afa3e-34a8-4aa4-a341-2afc91274563"
      unitRef="usd">88126000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i06e97cb744c64b8aa8ffbd59644aadd6_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNS0zLTEtMS0xMDc2NjA_4abc57d8-19e9-47e8-8c05-f69c4275e310"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i06e97cb744c64b8aa8ffbd59644aadd6_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNS01LTEtMS0xMDc2NjA_8ecb72e7-e32d-4c0d-91c7-7c85d4327a84"
      unitRef="usd">1505000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i06e97cb744c64b8aa8ffbd59644aadd6_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNS03LTEtMS0xMDc2NjA_02d50705-f2f4-4fcb-b43c-58c77f8f7d56"
      unitRef="usd">86621000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNi0xLTEtMS0xMDc2NjA_5f3e8d26-b74d-4db3-8165-ca237dea5fd0"
      unitRef="usd">127342000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNi0zLTEtMS0xMDc2NjA_ae8ed9cc-1b0a-48e1-867f-dd26736d887e"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNi01LTEtMS0xMDc2NjA_e41713c8-65f8-401a-b191-6137e4a999dd"
      unitRef="usd">2008000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjkyZDFhOTQ5YmZkMTQ0NjQ5ZWJjMDI5OTU3YjFmOTUzL3RhYmxlcmFuZ2U6OTJkMWE5NDliZmQxNDQ2NDllYmMwMjk5NTdiMWY5NTNfNi03LTEtMS0xMDc2NjA_22e49ad9-fee6-4095-8cde-61ed80237d52"
      unitRef="usd">125334000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i129cf4ac8f384e85b92a532598ebf5b9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMi0xLTEtMS0xMDc2NjA_8824e054-99cb-4f12-a556-b2dacf4ab45c"
      unitRef="usd">29080000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i129cf4ac8f384e85b92a532598ebf5b9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMi0zLTEtMS0xMDc2NjA_1c19af18-eeca-46ce-b772-92eb38f5e5d3"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i129cf4ac8f384e85b92a532598ebf5b9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMi01LTEtMS0xMDc2NjA_9e130310-7846-490c-a646-cb77db3cd38d"
      unitRef="usd">11000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i129cf4ac8f384e85b92a532598ebf5b9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMi03LTEtMS0xMDc2NjA_8c249979-683c-45e0-922d-effb371e585e"
      unitRef="usd">29069000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="idb82266e68c14f92bff461f4eb2c9906_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMy0xLTEtMS0xMDc2NjA_bb9f9805-6dbe-4e62-be02-b5b3978c6528"
      unitRef="usd">19753000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="idb82266e68c14f92bff461f4eb2c9906_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMy0zLTEtMS0xMDc2NjA_6d00ce67-ea6e-4b10-a46f-5ab80625a614"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="idb82266e68c14f92bff461f4eb2c9906_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMy01LTEtMS0xMDc2NjA_02f89715-e8e4-45b0-ac24-a0b2261c6674"
      unitRef="usd">27000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="idb82266e68c14f92bff461f4eb2c9906_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfMy03LTEtMS0xMDc2NjA_ab410356-d890-4164-b04a-9ee7b39bb2a5"
      unitRef="usd">19726000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i84f050d33e084e578c17e4dab8da1f7d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNS0xLTEtMS0xMDc2NjA_b4c1864d-982e-4baf-b153-dba7c97ef713"
      unitRef="usd">77108000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i84f050d33e084e578c17e4dab8da1f7d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNS0zLTEtMS0xMDc2NjA_ece278d1-2c3d-4b29-9410-c72c6771c91c"
      unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i84f050d33e084e578c17e4dab8da1f7d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNS01LTEtMS0xMDc2NjA_3523ee49-c473-4a7b-82e2-008401031abd"
      unitRef="usd">229000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i84f050d33e084e578c17e4dab8da1f7d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNS03LTEtMS0xMDc2NjA_5c943b33-f2aa-427f-9f0b-d8867dcbb3f7"
      unitRef="usd">76881000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNi0xLTEtMS0xMDc2NjA_899b8b30-f1fe-4c56-89b6-681ce56d484d"
      unitRef="usd">125941000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNi0zLTEtMS0xMDc2NjA_06ef4b81-e242-4a93-ac46-c3d09159c1c4"
      unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNi01LTEtMS0xMDc2NjA_4f861dcc-bc89-4741-a382-ae3706d9d279"
      unitRef="usd">267000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjEzZDdlMjUwYjFiNTRhYjU4YmQ1ZDQ2ODZiMTQ2ZjFiL3RhYmxlcmFuZ2U6MTNkN2UyNTBiMWI1NGFiNThiZDVkNDY4NmIxNDZmMWJfNi03LTEtMS0xMDc2NjA_f8e18f46-8964-4f7a-bcc3-174c11698adf"
      unitRef="usd">125676000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RleHRyZWdpb246MzU2ODRhOTkwYWMyNDRmODk0ZWNkZGRmZDc1NzEwZGZfMzI5ODUzNDkwMjE4NA_21127466-ab4c-491a-b8b4-72697e584508"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RleHRyZWdpb246MzU2ODRhOTkwYWMyNDRmODk0ZWNkZGRmZDc1NzEwZGZfMzI5ODUzNDkwMjE4NA_9ed102b9-030d-49b3-b3f5-fca80b0c90af"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostAllowanceForCreditLossExcludingAccruedInterest>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RleHRyZWdpb246MzU2ODRhOTkwYWMyNDRmODk0ZWNkZGRmZDc1NzEwZGZfMjU5MQ_d477d220-cc5c-41cc-b592-bb8da975e6bc">&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 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-top:17pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.490%"/&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.530%"/&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.530%"/&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.530%"/&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="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;June 30, 2022&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, 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;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;75,878&#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;75,425&#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;64,627&#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;64,600&#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;51,464&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,909&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;127,342&#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;125,334&#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;125,941&#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;125,676&#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:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMi0xLTEtMS0xMDc2NjA_0a599e23-2a17-4314-9fd6-de774461546b"
      unitRef="usd">75878000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMi0zLTEtMS0xMDc2NjA_fda7dd42-f93f-4eb0-b996-ea827494a84e"
      unitRef="usd">75425000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMi01LTEtMS0xMDc2NjA_62c2c02e-f71c-4660-bb09-5f2361a64721"
      unitRef="usd">64627000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMi03LTEtMS0xMDc2NjA_578faafd-100b-495b-8958-d4b9d76017b8"
      unitRef="usd">64600000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMy0xLTEtMS0xMDc2NjA_6852ea01-6671-4e16-a17b-f29f03125f60"
      unitRef="usd">51464000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMy0zLTEtMS0xMDc2NjA_a0d179dc-3ff3-4fc6-9934-7fcc6b3b3a55"
      unitRef="usd">49909000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMy01LTEtMS0xMDc2NjA_8546030f-6bdc-4ac0-945a-c780c7847838"
      unitRef="usd">61314000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfMy03LTEtMS0xMDc2NjA_9152bf72-87f6-4728-abb0-8d3b41b9060d"
      unitRef="usd">61076000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfNC0xLTEtMS0xMDc2NjA_84baa053-96a5-4c51-9b86-f577c1fb868d"
      unitRef="usd">127342000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfNC0zLTEtMS0xMDc2NjA_ddcce42e-aa4d-42d4-8cfb-981de65555af"
      unitRef="usd">125334000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfNC01LTEtMS0xMDc2NjA_61ed328e-0b48-4814-845f-5ca311cb389c"
      unitRef="usd">125941000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjdhMTEwNTU1ODU0OTQxOWZhYmNlOWFiNWZlNzZkYWFhL3RhYmxlcmFuZ2U6N2ExMTA1NTU4NTQ5NDE5ZmFiY2U5YWI1ZmU3NmRhYWFfNC03LTEtMS0xMDc2NjA_e1a2d08f-3d77-49ac-9464-6943e14a12ae"
      unitRef="usd">125676000</us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterest>
    <us-gaap:ScheduleOfRealizedGainLossTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RleHRyZWdpb246MzU2ODRhOTkwYWMyNDRmODk0ZWNkZGRmZDc1NzEwZGZfMjU3Ng_82f76a29-2377-4f7e-a2d1-b080aab3cae6">&lt;div style="margin-bottom:6pt;margin-top:7pt;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 six months ended June&#160;30, 2022 and 2021, 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-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.490%"/&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.530%"/&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.530%"/&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.530%"/&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;Six Months Ended June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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;&#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;&#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;&#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;23,998&#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;&#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;&#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;19,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;&#x2014;&#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;&#x2014;&#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;&#x2014;&#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;43,498&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:43.344%"/&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.530%"/&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.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.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;Six Months Ended June 30, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;&#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;&#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;&#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;5,250&#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;6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;42,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;6&#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;&#x2014;&#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;42,198&#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;26,750&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRealizedGainLossTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i1f204ddd13c544a8a1f179be2cf7ea8c_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfMi0xLTEtMS0xMDc2NjA_d2506031-2e0a-43ba-9b51-6d68e2c41e39"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i1f204ddd13c544a8a1f179be2cf7ea8c_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfMi0zLTEtMS0xMDc2NjA_8f58b8c3-7d31-4b7b-a5e8-66d8b2a89dd0"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i1f204ddd13c544a8a1f179be2cf7ea8c_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfMi01LTEtMS0xMDc2NjA_87221736-3f16-49bf-a338-1ee44137b534"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i1f204ddd13c544a8a1f179be2cf7ea8c_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfMi03LTEtMS0xMDc2NjA_3e6eaf52-6182-4377-a2a9-85f1e2a3cfef"
      unitRef="usd">23998000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="ibec20397a16a46e7913a9ef730c9863b_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNS0xLTEtMS0xMDc2NjA_98576030-2ad2-495c-b1d4-281c25b14ae2"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="ibec20397a16a46e7913a9ef730c9863b_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNS0zLTEtMS0xMDc2NjA_f3073417-c613-4075-8dde-720aee1ee761"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="ibec20397a16a46e7913a9ef730c9863b_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNS01LTEtMS0xMDc2NjA_d0799288-6925-4834-b07c-0d8998f4f0f6"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="ibec20397a16a46e7913a9ef730c9863b_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNS03LTEtMS0xMDc2NjA_9ad6eb99-9d1e-4cd8-9113-6c1133d4cea8"
      unitRef="usd">19500000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNi0xLTEtMS0xMDc2NjA_72b90167-b0d4-43b5-80f1-70b382277ea0"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNi0zLTEtMS0xMDc2NjA_936d0b63-a1e6-4585-a5ac-27583ed68293"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNi01LTEtMS0xMDc2NjA_af975925-2e45-4601-b46d-5a8308db0a5f"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmEzNWY3MTkxY2I2NjQ4YzA5MjIwYzNkMGY0NjY5OGJjL3RhYmxlcmFuZ2U6YTM1ZjcxOTFjYjY2NDhjMDkyMjBjM2QwZjQ2Njk4YmNfNi03LTEtMS0xMDc2NjA_27682274-6459-4e21-91b4-73ee8e0d9ef5"
      unitRef="usd">43498000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i8b305d7e58784d3ba71c605f0f0ec087_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfMy0xLTEtMS0xMDc2NjA_c00c283a-b383-4b53-967d-467de4adff90"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i8b305d7e58784d3ba71c605f0f0ec087_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfMy0zLTEtMS0xMDc2NjA_53bbbfba-be28-45cc-bba5-4292f792c27d"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i8b305d7e58784d3ba71c605f0f0ec087_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfMy01LTEtMS0xMDc2NjA_c34d8d0b-8014-45f0-a32b-fa2e18e84061"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i8b305d7e58784d3ba71c605f0f0ec087_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfMy03LTEtMS0xMDc2NjA_c7e748aa-2fe6-4b29-817f-d54bcc885255"
      unitRef="usd">5250000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="ibc15dc68b60b4428a9961de88fe8f7dc_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNS0xLTEtMS0xMDc2NjA_1d616795-61de-4ecf-9b49-803d9c4d9e8b"
      unitRef="usd">6000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="ibc15dc68b60b4428a9961de88fe8f7dc_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNS0zLTEtMS0xMDc2NjA_91e8795d-18e2-44c4-9099-aca53385bcd8"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="ibc15dc68b60b4428a9961de88fe8f7dc_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNS01LTEtMS0xMDc2NjA_7f7e2a82-f2d9-4985-bce2-1249433a7522"
      unitRef="usd">42198000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="ibc15dc68b60b4428a9961de88fe8f7dc_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNS03LTEtMS0xMDc2NjA_90626e16-e3f5-4821-b80b-6644cb6bc907"
      unitRef="usd">21500000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNi0xLTEtMS0xMDc2NjA_bc9d479c-e44a-4d7c-98bb-01527a0189f8"
      unitRef="usd">6000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNi0zLTEtMS0xMDc2NjA_b76aa40e-4223-4a78-b402-d020963b55be"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNi01LTEtMS0xMDc2NjA_41270557-feeb-4340-9bfb-5aacb0c23e4f"
      unitRef="usd">42198000</us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOmUxMDMwMmRhNTkxMzQ0MTc4MzQyYjYwYzc0NWY5YmI2L3RhYmxlcmFuZ2U6ZTEwMzAyZGE1OTEzNDQxNzgzNDJiNjBjNzQ1ZjliYjZfNi03LTEtMS0xMDc2NjA_e4640d3a-0d4b-4d65-8c84-39ccdb0c9cbe"
      unitRef="usd">26750000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RleHRyZWdpb246MzU2ODRhOTkwYWMyNDRmODk0ZWNkZGRmZDc1NzEwZGZfMjU5OA_ba74aa5b-f2fb-437f-912d-edc95905dffe">&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 following tables present our financial assets and liabilities measured at fair value on a recurring basis as of June&#160;30, 2022 and December&#160;31, 2021 by level within the fair value hierarchy (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:17pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,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 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;19,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,309&#160;&lt;/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;86,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;91,405&#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;38,713&#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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;130,118&#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;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.087%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.353%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;6,105&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,105&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#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;Available-for-sale investment securities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 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;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,069&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;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;19,726&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,726&#160;&lt;/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;76,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;76,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;82,986&#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;48,795&#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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;131,781&#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:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ie570c30826174a04bd3e14ee9277c200_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMy0xLTEtMS0xMDc2NjA_8a524e8a-9e5e-4150-b45b-ad58bb45bdf3"
      unitRef="usd">4784000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i360516f7f2984217bf45229942f7bb47_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMy0zLTEtMS0xMDc2NjA_8228d44d-6447-417c-afed-05dfbb9b8c8c"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="if0ecba1bc25f4054ac6d368e7ba21db4_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMy03LTEtMS0xMDc2NjA_13ea64b2-aab5-4e37-986d-2e7a7b628cb9"
      unitRef="usd">4784000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ia083a7682190413c9262591515de4e1d_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfNy0xLTEtMS0xMDc2NjA_16a45ddb-e4d2-43d4-b57f-5f30e3ab9f0f"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ic125207cc0e1431e84faea5e08e82ec6_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfNy0zLTEtMS0xMDc2NjA_9eafa96f-641d-4728-ae6f-6a219509a404"
      unitRef="usd">19404000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="if19dcb41732b4929aa7bf76464482563_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfNy03LTEtMS0xMDc2NjA_182b9f36-a202-4394-aa4a-9305cef1d638"
      unitRef="usd">19404000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i2f9ac29b0cc1448a937bb3adbe3c6074_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfOC0xLTEtMS0xMDc2NjA_37296db9-89f7-4196-a17a-169c3b346f72"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i0b50a29268ce4c2887cb76d130429cde_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfOC0zLTEtMS0xMDc2NjA_6307563a-4b0d-41be-a49c-8766a6835255"
      unitRef="usd">19309000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ibc4301da573e4622b96bdb563e5b93f4_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfOC03LTEtMS0xMDc2NjA_f77fc4fd-53e9-4f7c-9f75-b19157680259"
      unitRef="usd">19309000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i7da90b13048143ad9ec51c64fe700ef3_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMTAtMS0xLTEtMTA3NjYw_bb3df055-d977-4ae9-8a80-41facecb52ed"
      unitRef="usd">86621000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i806fc50eddb449289e32db78e7282b22_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMTAtMy0xLTEtMTA3NjYw_771060f4-74f5-48e1-ad8b-afb68864103e"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="iafae3398d0544e4b9a6afc4a039915af_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMTAtNy0xLTEtMTA3NjYw_210fb15f-f7be-4cb3-8ecb-426760baf6fe"
      unitRef="usd">86621000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="if951d9320bcf49748ae9c12940edabdb_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMTEtMS0xLTEtMTA3NjYw_7a7e4754-9b0a-42a6-9e93-54ac2f9b3928"
      unitRef="usd">91405000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i3b5777f8070a423f83daad5cef997468_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMTEtMy0xLTEtMTA3NjYw_7e8bf9aa-3c59-439c-b43b-78f6b40b05d4"
      unitRef="usd">38713000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="if4822e9819924b688da0928889f16d7e_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjA5OTAyYzI5ZjI4NTQyOWFiNjlhNjYwNDM4NGQ0NmIwL3RhYmxlcmFuZ2U6MDk5MDJjMjlmMjg1NDI5YWI2OWE2NjA0Mzg0ZDQ2YjBfMTEtNy0xLTEtMTA3NjYw_f383e5e6-7316-497a-b67a-aac05bea6426"
      unitRef="usd">130118000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="if7f2d00942904c26b16cc453d5f119a9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfMy0xLTEtMS0xMDc2NjA_351b3385-0b1f-43d1-9f6a-38d97fb97be1"
      unitRef="usd">6105000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="id295029ab72f44d08ec31de5cad1a07f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfMy0zLTEtMS0xMDc2NjA_11bd82a2-a2c9-4327-b32c-7dfc7901cf0e"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i3a4bb9162cd5422693e05eb242b35380_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfMy03LTEtMS0xMDc2NjA_11939654-3e98-4b9f-b04d-0345f4bb0222"
      unitRef="usd">6105000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="iacf1324265354840affd4f8a0da52fa5_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfNi0xLTEtMS0xMDc2NjA_0a8b1e1c-036b-4e03-9b44-e16009aae01d"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i9dfaa9e44fc04beca299a9614c13d934_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfNi0zLTEtMS0xMDc2NjA_e2e08149-3b76-4db7-bad3-6590e448e1e9"
      unitRef="usd">29069000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="if03afd71449e4a99b8945da61ee6e247_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfNi03LTEtMS0xMDc2NjA_bcf94ebb-9fad-465b-bb33-aa0b35791a51"
      unitRef="usd">29069000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i20a70aa230bb4a41b8a243f00fe09b62_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfNy0xLTEtMS0xMDc2NjA_2ea1e557-07e5-479b-9c06-7a2800a3eea9"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ice237af628f94f6d9e622b1cb98920de_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfNy0zLTEtMS0xMDc2NjA_a2ee894a-f974-44d0-bd3f-c3bccf25c1aa"
      unitRef="usd">19726000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i3af1ad99cab54004aaaa2d20281ef949_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfNy03LTEtMS0xMDc2NjA_199758db-2f92-4764-990a-4158d87705b4"
      unitRef="usd">19726000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i779e91e410f74c4eb54fcdbafa467d91_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfOS0xLTEtMS0xMDc2NjA_c3e71681-c800-4641-99f1-5fc85c067ffb"
      unitRef="usd">76881000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i6aaab1f8052341a4a7e29ee6bef7347c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfOS0zLTEtMS0xMDc2NjA_daa4b4a5-10a6-4fc6-982a-411eca967f46"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i968bdee763424c4ea97672db9e1647f9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfOS03LTEtMS0xMDc2NjA_c441aef8-89c8-4d61-ab9a-911709a8476c"
      unitRef="usd">76881000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i92eeee15856e4a1b86dcc8e7e13187a9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfMTAtMS0xLTEtMTA3NjYw_53d5265a-c64e-49f8-a41d-4a0930dda7f9"
      unitRef="usd">82986000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i6d0618af59594eeda836a83ef64f984c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfMTAtMy0xLTEtMTA3NjYw_7aeafad0-35c5-427f-8899-7c776ef395b5"
      unitRef="usd">48795000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i495c244dffd947a29b39ef47c91f4ccd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80MC9mcmFnOjM1Njg0YTk5MGFjMjQ0Zjg5NGVjZGRkZmQ3NTcxMGRmL3RhYmxlOjczY2ExMmZkYzBjMTQ4OTliMGNhNzA0ZTM4MDk3Yjc1L3RhYmxlcmFuZ2U6NzNjYTEyZmRjMGMxNDg5OWIwY2E3MDRlMzgwOTdiNzVfMTAtNy0xLTEtMTA3NjYw_c55ef9aa-c6ea-42f9-9037-fcb90fb7c401"
      unitRef="usd">131781000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfNjIw_276ac375-13f6-49f5-939f-9127a5d4f5d5">Capitalized 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-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.952%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.500%"/&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;June 30,&lt;br/&gt;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;121,981&#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;115,377&#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;(84,485)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(74,165)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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,496&#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;41,212&#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:7pt;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 $4.2 million and $7.0 million for the three months ended June&#160;30, 2022 and 2021, respectively, and $8.3 million and $14.1 million for the six months ended June&#160;30, 2022 and 2021, respectively. Amortization expense with respect to capitalized software development costs totaled $6.0 million and $5.3 million for the three months ended June&#160;30, 2022 and 2021, respectively, and $12.0 million and $10.3 million for the six months ended June&#160;30, 2022 and 2021, respectively. During the three and six months ended June&#160;30, 2022, we disposed of $0.9 million and $1.7 million, respectively, of fully amortized capitalized software development costs. &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 is estimated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:84.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.644%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,216&#160;&lt;/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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,276&#160;&lt;/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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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,496&#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="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfNjA5_ee3b495f-8990-43bf-b79b-aaab29f8f818">&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-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.952%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.500%"/&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;June 30,&lt;br/&gt;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;121,981&#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;115,377&#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;(84,485)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(74,165)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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,496&#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;41,212&#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="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjI5N2EyZjY0NmFkNDRkNGQ4NzQ0MWE1MGFiMmE4YjU1L3RhYmxlcmFuZ2U6Mjk3YTJmNjQ2YWQ0NGQ0ZDg3NDQxYTUwYWIyYThiNTVfMS0yLTEtMS0xMDc2NjA_58c1a1bd-ad3a-4d6c-835e-c0787ceb65a1"
      unitRef="usd">121981000</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjI5N2EyZjY0NmFkNDRkNGQ4NzQ0MWE1MGFiMmE4YjU1L3RhYmxlcmFuZ2U6Mjk3YTJmNjQ2YWQ0NGQ0ZDg3NDQxYTUwYWIyYThiNTVfMS00LTEtMS0xMDc2NjA_7385afa7-1b63-4563-b252-cf8aeb8b1d06"
      unitRef="usd">115377000</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjI5N2EyZjY0NmFkNDRkNGQ4NzQ0MWE1MGFiMmE4YjU1L3RhYmxlcmFuZ2U6Mjk3YTJmNjQ2YWQ0NGQ0ZDg3NDQxYTUwYWIyYThiNTVfMi0yLTEtMS0xMDc2NjA_802b25a4-3ef9-45a9-971f-2e459b0834ed"
      unitRef="usd">84485000</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjI5N2EyZjY0NmFkNDRkNGQ4NzQ0MWE1MGFiMmE4YjU1L3RhYmxlcmFuZ2U6Mjk3YTJmNjQ2YWQ0NGQ0ZDg3NDQxYTUwYWIyYThiNTVfMi00LTEtMS0xMDc2NjA_57f04aab-c332-423f-992e-6733a0a150b9"
      unitRef="usd">74165000</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjI5N2EyZjY0NmFkNDRkNGQ4NzQ0MWE1MGFiMmE4YjU1L3RhYmxlcmFuZ2U6Mjk3YTJmNjQ2YWQ0NGQ0ZDg3NDQxYTUwYWIyYThiNTVfMy0yLTEtMS0xMDc2NjA_525f6bcf-8188-4179-8f2a-10cf9134397b"
      unitRef="usd">37496000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjI5N2EyZjY0NmFkNDRkNGQ4NzQ0MWE1MGFiMmE4YjU1L3RhYmxlcmFuZ2U6Mjk3YTJmNjQ2YWQ0NGQ0ZDg3NDQxYTUwYWIyYThiNTVfMy00LTEtMS0xMDc2NjA_540bf719-779b-4022-a932-590a172ee7a5"
      unitRef="usd">41212000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMTcw_553ca0cc-b660-4966-be75-15c357f24972"
      unitRef="usd">4200000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMTc3_0153a4f1-6ad3-41ba-9752-726729d69475"
      unitRef="usd">7000000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMTA5OTUxMTYyODQ1NA_c146f003-d5f0-45e9-9bb1-c0b7a27efa1f"
      unitRef="usd">8300000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMTA5OTUxMTYyODQ4OA_a5592483-985c-4d67-815b-195288bbbbe1"
      unitRef="usd">14100000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMzEz_f7a54cd6-31d0-4f5a-89e9-0f41d6ffe8fa"
      unitRef="usd">6000000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMzIw_669e0e0e-2705-4541-8a97-9d1c1a602c23"
      unitRef="usd">5300000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMTA5OTUxMTYyODU4Mw_64d2be11-ba33-4155-b8be-7bd132aef169"
      unitRef="usd">12000000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMTA5OTUxMTYyODU3NA_166dba5f-8cfe-4797-93d6-b32aa01f522d"
      unitRef="usd">10300000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <appf:CapitalizedComputerSoftwareDisposals
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfNDIx_bd6cf0cd-9b53-43f7-9102-397e430aacc5"
      unitRef="usd">900000</appf:CapitalizedComputerSoftwareDisposals>
    <appf:CapitalizedComputerSoftwareDisposals
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfMTY0OTI2NzQ0MjUwOA_3c72e1b5-7a1a-49b6-8ba7-24a2c497e028"
      unitRef="usd">1700000</appf:CapitalizedComputerSoftwareDisposals>
    <appf:ScheduleOfCapitalizedComputerSoftwareFutureAmortizationExpenseTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RleHRyZWdpb246OTRlOGE5OGMyMjI0NDFjZjhlZGZjODM0YjE4ZjgwMDVfNjIy_71fc6946-062e-4a20-a555-f077ed5d2e20">&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 is estimated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:84.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.644%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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,216&#160;&lt;/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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,276&#160;&lt;/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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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,496&#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="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjcwYjY1MGIxNTQ0NjRkNDNiNzk2MjQ3ZjcwMDUzZDI4L3RhYmxlcmFuZ2U6NzBiNjUwYjE1NDQ2NGQ0M2I3OTYyNDdmNzAwNTNkMjhfMS0yLTEtMS0xMDc2NjA_a482f317-9ee3-4e70-8b4c-e91642bfd848"
      unitRef="usd">11216000</appf:CapitalizedComputerSoftwareAmortizationExpenseRemainderofFiscalYear>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearOne
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjcwYjY1MGIxNTQ0NjRkNDNiNzk2MjQ3ZjcwMDUzZDI4L3RhYmxlcmFuZ2U6NzBiNjUwYjE1NDQ2NGQ0M2I3OTYyNDdmNzAwNTNkMjhfMi0yLTEtMS0xMDc2NjA_502f66bb-f5c9-4f02-940f-904f46ed24d6"
      unitRef="usd">16400000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearOne>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearTwo
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjcwYjY1MGIxNTQ0NjRkNDNiNzk2MjQ3ZjcwMDUzZDI4L3RhYmxlcmFuZ2U6NzBiNjUwYjE1NDQ2NGQ0M2I3OTYyNDdmNzAwNTNkMjhfMy0yLTEtMS0xMDc2NjA_80adab97-3d34-4d80-af41-20fb260bb359"
      unitRef="usd">8276000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearTwo>
    <appf:CapitalizedComputerSoftwareAmortizationExpenseYearThree
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjcwYjY1MGIxNTQ0NjRkNDNiNzk2MjQ3ZjcwMDUzZDI4L3RhYmxlcmFuZ2U6NzBiNjUwYjE1NDQ2NGQ0M2I3OTYyNDdmNzAwNTNkMjhfNC0yLTEtMS0xMDc2NjA_8f55402f-4a6c-4475-a323-0165d66a2638"
      unitRef="usd">1604000</appf:CapitalizedComputerSoftwareAmortizationExpenseYearThree>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80My9mcmFnOjk0ZThhOThjMjIyNDQxY2Y4ZWRmYzgzNGIxOGY4MDA1L3RhYmxlOjcwYjY1MGIxNTQ0NjRkNDNiNzk2MjQ3ZjcwMDUzZDI4L3RhYmxlcmFuZ2U6NzBiNjUwYjE1NDQ2NGQ0M2I3OTYyNDdmNzAwNTNkMjhfNS0yLTEtMS0xMDc2NjA_df5cc4d0-cc90-4509-9900-c83aaf21d207"
      unitRef="usd">37496000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RleHRyZWdpb246NDAzZjczNGUwYWU2NGU0YWI0ZmJjY2RkYmJmNDM0NjdfMzI4_0771b084-362d-4f18-b727-85a99e0a8633">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-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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;June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="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;(2,234)&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;606&#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;(3,036)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,294&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(5,823)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;716&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(1,325)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(5,184)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,216&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(79)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(252)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:2px 1pt;text-align:right;vertical-align: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: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 intangible assets, 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 #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;(18,613)&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;9,408&#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-top:1pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.935%"/&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:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.379%"/&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, 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;(2,006)&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;834&#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;(2,620)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(5,107)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,432&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(1,128)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(4,444)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,956&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(250)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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: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 intangible assets, 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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;(16,310)&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,711&#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;text-align:justify;text-indent:36pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Amortization expense with respect to intangible assets totaled $1.2 million for the three months ended June&#160;30, 2022 and 2021, and $2.3 million for the six months ended June&#160;30, 2022 and 2021. Future amortization expense with respect to intangible assets is estimated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;2,302&#160;&lt;/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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:#ffffff;padding:2px 1pt 2px 0;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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:#ffffff;padding:2px 1pt 2px 0;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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;1,545&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;9,408&#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="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RleHRyZWdpb246NDAzZjczNGUwYWU2NGU0YWI0ZmJjY2RkYmJmNDM0NjdfMzE5_d46f0f4e-5f9d-4046-92c9-128d43fd89fa">&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-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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;June 30, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="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;(2,234)&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;606&#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;(3,036)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,294&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(5,823)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;716&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(1,325)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(5,184)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,216&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(79)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(252)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:2px 1pt;text-align:right;vertical-align: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: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 intangible assets, 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 #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;(18,613)&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;9,408&#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-top:1pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:37.935%"/&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:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.379%"/&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, 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;(2,006)&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;834&#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;(2,620)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(5,107)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,432&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(1,128)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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;(4,444)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,956&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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;(250)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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: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 intangible assets, 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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;(16,310)&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,711&#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="i587cf38862374082a5235c9860b8cd31_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMi0yLTEtMS0xMDc2NjA_033f50b4-ca28-4d22-adec-83fe3e132e7d"
      unitRef="usd">2840000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i587cf38862374082a5235c9860b8cd31_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMi00LTEtMS0xMDc2NjA_d377581a-f167-4712-aa00-fae23cab34cd"
      unitRef="usd">2234000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i587cf38862374082a5235c9860b8cd31_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMi02LTEtMS0xMDc2NjA_79aa7013-a5e5-45f5-9bc1-f5a4f7cc7f68"
      unitRef="usd">606000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i607094e65e4645e781662928b2d9e89d_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMi04LTEtMS0xMDc2NjA_67e36943-4f5b-4251-8dbe-923aa66e7d4b">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ifef2f109db0b46d9a01c5298e3a8520c_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMy0yLTEtMS0xMDc2NjA_cf257459-227a-40a7-879b-82f783813316"
      unitRef="usd">8330000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifef2f109db0b46d9a01c5298e3a8520c_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMy00LTEtMS0xMDc2NjA_3c15ebff-817e-4364-bf69-d5e5bc54f1e4"
      unitRef="usd">3036000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ifef2f109db0b46d9a01c5298e3a8520c_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMy02LTEtMS0xMDc2NjA_d04b0c4f-92b6-4688-8e53-08b1293fd774"
      unitRef="usd">5294000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i313034e6c9484e6ea60bf641c85098ea_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMy04LTEtMS0xMDc2NjA_8f4f7b68-9613-4c24-8f15-5879948a6051">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ie71f210f884645bb95c176634d7f5f4f_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNC0yLTEtMS0xMDc2NjA_fbd410b3-3b85-4de1-9201-188a7bde089e"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ie71f210f884645bb95c176634d7f5f4f_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNC00LTEtMS0xMDc2NjA_f31b98c3-ac5a-4954-ba50-375f7bb26710"
      unitRef="usd">5823000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie71f210f884645bb95c176634d7f5f4f_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNC02LTEtMS0xMDc2NjA_4d900552-1ef0-42a4-9bd7-e6711d501f51"
      unitRef="usd">716000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ibfd8f36cebc64161ac492132cb0f0135_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNC04LTEtMS0xMDc2NjA_504257da-5589-445f-b943-ad95374db65e">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ifbd259c88ab54934a91914faed7fae91_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNS0yLTEtMS0xMDc2NjA_d4d94335-5ad8-4b43-a3d9-8eab83ed41fd"
      unitRef="usd">1890000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifbd259c88ab54934a91914faed7fae91_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNS00LTEtMS0xMDc2NjA_385e739b-e728-4f4a-94f8-51b9823cade7"
      unitRef="usd">1325000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ifbd259c88ab54934a91914faed7fae91_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNS02LTEtMS0xMDc2NjA_93b13ba3-0668-47fb-9e27-2b0c42084964"
      unitRef="usd">565000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="if330f5f4fdf1489f9aea49916f7d0989_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNS04LTEtMS0xMDc2NjA_035de9d8-5001-464b-bdc6-a1e583f251ed">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ic387c3cbb9fc400c96c68731b8f8038b_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNi0yLTEtMS0xMDc2NjA_6de0e67f-2dea-4f37-be1c-72866e00c264"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ic387c3cbb9fc400c96c68731b8f8038b_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNi00LTEtMS0xMDc2NjA_bc3025b9-cc95-4d29-bba5-9c890c7ef1cb"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ic387c3cbb9fc400c96c68731b8f8038b_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNi02LTEtMS0xMDc2NjA_abd83443-dd65-44a3-bf60-5a0a461b8a0b"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i65eada7ab94f4330a2aea9fa1731d5f4_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNi04LTEtMS0xMDc2NjA_09377bdd-90d8-4881-96d0-018cc9ff3a3c">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i1e73160b6b87431e84b9aaf3bcacde07_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNy0yLTEtMS0xMDc2NjA_c6ef8b2b-51a1-4367-b058-89a563f2b47b"
      unitRef="usd">7400000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i1e73160b6b87431e84b9aaf3bcacde07_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNy00LTEtMS0xMDc2NjA_83fe9dc2-c4b0-44ae-808d-5ce3500ed0e1"
      unitRef="usd">5184000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i1e73160b6b87431e84b9aaf3bcacde07_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNy02LTEtMS0xMDc2NjA_e9556eb0-cdda-4b61-97c0-eca75f445663"
      unitRef="usd">2216000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i4f851eb4b4fe4c888b004c684b6a562b_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfNy04LTEtMS0xMDc2NjA_2241c27c-1d57-4aa2-9896-193e55731ef2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="idabb8f1cc7da4c73ab484f92eaaecce0_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOC0yLTEtMS0xMDc2NjA_d32f4418-3484-4a13-aac8-71573a4cab23"
      unitRef="usd">90000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="idabb8f1cc7da4c73ab484f92eaaecce0_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOC00LTEtMS0xMDc2NjA_80f131c5-b4ba-4135-971e-4271936bed11"
      unitRef="usd">79000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="idabb8f1cc7da4c73ab484f92eaaecce0_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOC02LTEtMS0xMDc2NjA_340624cf-a36f-4637-a940-36354623739e"
      unitRef="usd">11000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i37a7b9c2a7a74a14b920da454d532c09_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOC04LTEtMS0xMDc2NjA_59dbfad9-68bb-40bb-a532-ad1f1f8d058f">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ifdeebb9d7ffc4c4f880f6b0a7d626e63_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOS0yLTEtMS0xMDc2NjA_0264f12f-1987-41e9-8409-e581ad737741"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifdeebb9d7ffc4c4f880f6b0a7d626e63_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOS00LTEtMS0xMDc2NjA_94f3e532-4b04-4fea-86b6-9fb8fc679d1f"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ifdeebb9d7ffc4c4f880f6b0a7d626e63_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOS02LTEtMS0xMDc2NjA_3eb17a86-6325-43cd-81a6-8e35b8fafc1e"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i1b2b2a06367d47abbfec8f0206207e77_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfOS04LTEtMS0xMDc2NjA_31d91a7c-b31f-4dbe-a5d0-92e6f109eb91">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMTEtMi0xLTEtMTA3NjYw_de217f00-f46e-47aa-8b0e-53aba957206d"
      unitRef="usd">28021000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMTEtNC0xLTEtMTA3NjYw_891e7385-1cdd-4423-bbfd-8b4c75f8c7e9"
      unitRef="usd">18613000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMTEtNi0xLTEtMTA3NjYw_8988846a-2ce7-40fc-ae1c-7d4ed038bb62"
      unitRef="usd">9408000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ic87dc214d1dc4774a275f4a2a58a6242_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOjkwMDczOGE0YzY2ODQ3NTA4YWY4YjQzOGU2ZTlkMDU2L3RhYmxlcmFuZ2U6OTAwNzM4YTRjNjY4NDc1MDhhZjhiNDM4ZTZlOWQwNTZfMTEtOC0xLTEtMTA3NjYw_6ef5c922-5358-4ac2-baa9-e23857585f13">P6Y3M18D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i89c034078e09425398a77c91637b6e7e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMi0yLTEtMS0xMDc2NjA_750cd2ae-7ec7-4d4d-86bd-427d5b39e20f"
      unitRef="usd">2840000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i89c034078e09425398a77c91637b6e7e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMi00LTEtMS0xMDc2NjA_5185c04a-b1ee-42a7-a748-bbccc4197d31"
      unitRef="usd">2006000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i89c034078e09425398a77c91637b6e7e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMi02LTEtMS0xMDc2NjA_84b4264b-e9fd-441f-a04a-5b272fe179b9"
      unitRef="usd">834000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i3c558c0f243746379a4ca92a0b0a33e3_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMi04LTEtMS0xMDc2NjA_db300668-2e1b-48e0-9ded-a4d11648559f">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ifd50f711c0ab4d7aa801af480b5abaa4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMy0yLTEtMS0xMDc2NjA_b3985e66-67e2-4494-8f45-cd8ca41a7f05"
      unitRef="usd">8330000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ifd50f711c0ab4d7aa801af480b5abaa4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMy00LTEtMS0xMDc2NjA_ced5f9f7-a8e6-4ff5-8f90-4b8162d17b99"
      unitRef="usd">2620000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ifd50f711c0ab4d7aa801af480b5abaa4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMy02LTEtMS0xMDc2NjA_96a4b6de-b05a-4702-8ec5-ec21aec39a4f"
      unitRef="usd">5710000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i4155bf374ca34bff88a193b31f05315e_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMy04LTEtMS0xMDc2NjA_0b58e26a-701e-4359-baea-3eab7aaf25e7">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i314b2cb87d4b46ca80a32f7682f3c763_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNC0yLTEtMS0xMDc2NjA_18ea1a25-1429-4175-8af3-5f7da48258cd"
      unitRef="usd">6539000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i314b2cb87d4b46ca80a32f7682f3c763_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNC00LTEtMS0xMDc2NjA_f7352ea4-3a73-45fa-8e82-ad0c56d8cbac"
      unitRef="usd">5107000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i314b2cb87d4b46ca80a32f7682f3c763_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNC02LTEtMS0xMDc2NjA_ab335582-214b-4306-929f-a492a634eecb"
      unitRef="usd">1432000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i0080f07f678e4f9498bd7415c49dcff4_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNC04LTEtMS0xMDc2NjA_c6c966de-57b3-41af-a8ac-99a3704645c8">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i2e96ecba5d7e4c9a9b2ea6ce8d7e1c79_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNS0yLTEtMS0xMDc2NjA_915bd58f-5c79-4b20-8fb6-3e6535835b5b"
      unitRef="usd">1890000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i2e96ecba5d7e4c9a9b2ea6ce8d7e1c79_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNS00LTEtMS0xMDc2NjA_83e3efb2-79da-47da-b434-cadef1512ac6"
      unitRef="usd">1128000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i2e96ecba5d7e4c9a9b2ea6ce8d7e1c79_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNS02LTEtMS0xMDc2NjA_021f0c1a-4ff6-4c23-a2db-601d07de0193"
      unitRef="usd">762000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i214900e5ed3441979c8f1f8b39b87173_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNS04LTEtMS0xMDc2NjA_acb8c408-830e-4557-a5b7-c0ee25f94924">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ib211593a6e7544b6a94276a1b10cd54d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNi0yLTEtMS0xMDc2NjA_cd8f760e-9bfa-4cac-8c31-a8662358e304"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ib211593a6e7544b6a94276a1b10cd54d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNi00LTEtMS0xMDc2NjA_7c6b64bb-6a51-40be-a78d-7ee059c6f33a"
      unitRef="usd">680000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ib211593a6e7544b6a94276a1b10cd54d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNi02LTEtMS0xMDc2NjA_145aee53-069e-46ae-8340-5d82a0331996"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ie63ec4c0db4148829b7e27a5ac7e27d8_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNi04LTEtMS0xMDc2NjA_21a2bf31-624d-4b0b-9414-a1a4defc9f28">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i6aac99b4f5074efbac050c6a1641abe0_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNy0yLTEtMS0xMDc2NjA_8c6c1bae-516d-4ccf-b670-26281e8a81e4"
      unitRef="usd">7400000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i6aac99b4f5074efbac050c6a1641abe0_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNy00LTEtMS0xMDc2NjA_ea628d0f-f3a9-4656-91a1-93fe3da7dce2"
      unitRef="usd">4444000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i6aac99b4f5074efbac050c6a1641abe0_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNy02LTEtMS0xMDc2NjA_e8855ab5-cfb8-4e2e-a80c-40759b3230a2"
      unitRef="usd">2956000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ia7a1c421a1f6403b93e717002c25db29_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfNy04LTEtMS0xMDc2NjA_0c5d5669-96e8-46b6-8d6a-8c8b2b3af4e1">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i4a94a6189eb14290a45dad219f9af739_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOC0yLTEtMS0xMDc2NjA_3febd5dd-182c-432e-a0e4-45b07ece8d70"
      unitRef="usd">90000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i4a94a6189eb14290a45dad219f9af739_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOC00LTEtMS0xMDc2NjA_18ce0661-a5a5-4a25-80e7-7b40b8a385c8"
      unitRef="usd">75000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i4a94a6189eb14290a45dad219f9af739_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOC02LTEtMS0xMDc2NjA_e84bb84b-8e6b-4870-b074-11a9d6f58a77"
      unitRef="usd">15000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i3104b6c38e824a8aa32242ec2c9389a3_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOC04LTEtMS0xMDc2NjA_4053d078-9725-4b1e-a5da-b918cf740ad2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ia93ef85ba72344ec9100b46c8f8b5dbd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOS0yLTEtMS0xMDc2NjA_3af69cf9-5797-46b2-8d96-560770b6e3c4"
      unitRef="usd">252000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ia93ef85ba72344ec9100b46c8f8b5dbd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOS00LTEtMS0xMDc2NjA_3f9cd66f-27ac-4cf5-aff5-17cd4d5853a2"
      unitRef="usd">250000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ia93ef85ba72344ec9100b46c8f8b5dbd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOS02LTEtMS0xMDc2NjA_6cf06635-5233-439b-9113-dc0d91c65879"
      unitRef="usd">2000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="iaf0584408d454dbda225cb1ce6065905_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfOS04LTEtMS0xMDc2NjA_8bd85d83-0c6e-4df6-8a14-01f8f31c26da">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMTEtMi0xLTEtMTA3NjYw_b4974094-8bf4-498b-85e1-44cd2c07c2f1"
      unitRef="usd">28021000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMTEtNC0xLTEtMTA3NjYw_517d93f8-9026-4986-b912-707e2b8942fe"
      unitRef="usd">16310000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMTEtNi0xLTEtMTA3NjYw_c9c06333-7e90-499e-8985-9b9a4bda0bb3"
      unitRef="usd">11711000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i571b4de54178440f8b04392be7711be1_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmEwNzFjMDc3MTBjMjQ2YmI5MTNmMzZjMmNmOTlmMGNhL3RhYmxlcmFuZ2U6YTA3MWMwNzcxMGMyNDZiYjkxM2YzNmMyY2Y5OWYwY2FfMTEtOC0xLTEtMTA3NjYw_2b8468a0-463e-4181-91cf-f4d7842500d7">P6Y3M18D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RleHRyZWdpb246NDAzZjczNGUwYWU2NGU0YWI0ZmJjY2RkYmJmNDM0NjdfMTA5OTUxMTYyODEzMA_428fc3fc-88f6-4211-b6ca-31698015e4cd"
      unitRef="usd">1200000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RleHRyZWdpb246NDAzZjczNGUwYWU2NGU0YWI0ZmJjY2RkYmJmNDM0NjdfMTA5OTUxMTYyODEzMA_4302a6a1-da00-4b5e-a719-25925889fc16"
      unitRef="usd">1200000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RleHRyZWdpb246NDAzZjczNGUwYWU2NGU0YWI0ZmJjY2RkYmJmNDM0NjdfMTA5OTUxMTYyODE2MQ_021d0560-4e19-4c11-a392-66e5e418b32e"
      unitRef="usd">2300000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RleHRyZWdpb246NDAzZjczNGUwYWU2NGU0YWI0ZmJjY2RkYmJmNDM0NjdfMTA5OTUxMTYyODE2MQ_448c2dea-a892-4174-b870-9d7a7ff736ca"
      unitRef="usd">2300000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RleHRyZWdpb246NDAzZjczNGUwYWU2NGU0YWI0ZmJjY2RkYmJmNDM0NjdfMzM5_d96f1dfd-a75a-4cd4-8690-66d558386692">Future amortization expense with respect to intangible assets is estimated as follows (in thousands):&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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;2,302&#160;&lt;/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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:#ffffff;padding:2px 1pt 2px 0;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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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:#ffffff;padding:2px 1pt 2px 0;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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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;1,545&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;9,408&#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="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmRkY2ZkNzFjNDQwMDQ0YWFhZjQ4OTE4OTM2ODQ4Y2EwL3RhYmxlcmFuZ2U6ZGRjZmQ3MWM0NDAwNDRhYWFmNDg5MTg5MzY4NDhjYTBfMS0yLTEtMS0xMDc2NjA_33988ae5-3472-4cbd-9de5-54c2ee2cf9da"
      unitRef="usd">2302000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmRkY2ZkNzFjNDQwMDQ0YWFhZjQ4OTE4OTM2ODQ4Y2EwL3RhYmxlcmFuZ2U6ZGRjZmQ3MWM0NDAwNDRhYWFmNDg5MTg5MzY4NDhjYTBfMi0yLTEtMS0xMDc2NjA_cfa6592d-3bf5-4cde-af45-be6e6f94ac68"
      unitRef="usd">3060000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmRkY2ZkNzFjNDQwMDQ0YWFhZjQ4OTE4OTM2ODQ4Y2EwL3RhYmxlcmFuZ2U6ZGRjZmQ3MWM0NDAwNDRhYWFmNDg5MTg5MzY4NDhjYTBfMy0yLTEtMS0xMDc2NjA_bac8f82d-3389-47f1-9676-e79f6472b6d2"
      unitRef="usd">835000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmRkY2ZkNzFjNDQwMDQ0YWFhZjQ4OTE4OTM2ODQ4Y2EwL3RhYmxlcmFuZ2U6ZGRjZmQ3MWM0NDAwNDRhYWFmNDg5MTg5MzY4NDhjYTBfNC0yLTEtMS0xMDc2NjA_889c7911-6424-48d9-a9d2-121ea976162d"
      unitRef="usd">833000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmRkY2ZkNzFjNDQwMDQ0YWFhZjQ4OTE4OTM2ODQ4Y2EwL3RhYmxlcmFuZ2U6ZGRjZmQ3MWM0NDAwNDRhYWFmNDg5MTg5MzY4NDhjYTBfNS0yLTEtMS0xMDc2NjA_4088d465-8b46-429f-8411-1f4504f99dbe"
      unitRef="usd">833000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <appf:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmRkY2ZkNzFjNDQwMDQ0YWFhZjQ4OTE4OTM2ODQ4Y2EwL3RhYmxlcmFuZ2U6ZGRjZmQ3MWM0NDAwNDRhYWFmNDg5MTg5MzY4NDhjYTBfNi0yLTEtMS0xMDc2NjA_fa3d1f59-aaed-456c-8b2f-b886e7fa1d80"
      unitRef="usd">1545000</appf:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV80Ni9mcmFnOjQwM2Y3MzRlMGFlNjRlNGFiNGZiY2NkZGJiZjQzNDY3L3RhYmxlOmRkY2ZkNzFjNDQwMDQ0YWFhZjQ4OTE4OTM2ODQ4Y2EwL3RhYmxlcmFuZ2U6ZGRjZmQ3MWM0NDAwNDRhYWFmNDg5MTg5MzY4NDhjYTBfNy0yLTEtMS0xMDc2NjA_f3f6fa42-0e26-4013-8839-f6b715568dff"
      unitRef="usd">9408000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTQ2Ng_cd9f1b29-f6e4-4104-b8b5-343b7441880d">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:id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfOTg_67c1edbd-e85a-4f88-8d49-c489a55cf02d"&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. Certain leases contain provisions for property-related costs that are variable in nature for which we are 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:1pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.443%"/&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.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.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.795%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;June 30,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Six Months Ended&lt;br/&gt;June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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;2022&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;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;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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,468&#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,202&#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,915&#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,297&#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;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;394&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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,720&#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,596&#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;3,290&#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;2,997&#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;td colspan="3" style="display:none"/&gt;&lt;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;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:5pt"&gt;&lt;span&gt;&lt;br/&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:120%"&gt;Lease-related assets and liabilities were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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;June 30,&lt;br/&gt;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight: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;124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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,854&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;29,228&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,710&#160;&lt;/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;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfNi0wLTEtMS0xMDc2NjA_fe66b87c-62e0-46da-9a65-b9e6a987b629"&gt;Other current liabilities&lt;/span&gt;&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,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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,874&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;54,044&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,733&#160;&lt;/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;57,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="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;57,607&#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 June&#160;30, 2022 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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;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 style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,351&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,837&#160;&lt;/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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;42,281&#160;&lt;/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;70,130&#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;(12,759)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 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&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;57,371&#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;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; &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;During the second quarter of 2022, we decided to exit and make available for sublease certain leased office spaces. As a result, we reassessed our asset groupings and evaluated the recoverability of our right-of-use and other lease related assets, and determined that the carrying value of the respective asset groups of $23.3&#160;million was not fully recoverable. As a result, we utilized discounted cash flow models to estimate the fair value of the asset groups taking into consideration the time period it will take to obtain a sublessee, the applicable discount rate and the anticipated sublease income and calculated the corresponding impairment loss. We use prices and other relevant information generated primarily by recent market transactions involving similar or comparable assets, as well as our historical experience in real estate transactions. When available, we use valuation inputs from independent valuation experts, such as real estate appraisers and brokers, to corroborate our estimates of fair value. We recorded an impairment of $19.4&#160;million consisting of $15.7&#160;million related to ROU assets and $3.7&#160;million related to property and equipment associated with our leased office spaces. These charges were 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;General and administrative expenses&lt;/span&gt; in our Condensed Consolidated Statements of Operations.</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i624348d007144f2ba0fbc21954c7db00_I20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTA0_a7baf4e5-7bc5-4688-ad30-c2d13fffc20d">P11Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:LessorOperatingLeaseRenewalTerm
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTY5_2f330743-4fb2-4874-a012-4be602c93ca6">P10Y</us-gaap:LessorOperatingLeaseRenewalTerm>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTQ3Mg_9411ea81-4530-49cf-94c6-58db51f931b3">&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:1pt;margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:41.443%"/&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.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.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.795%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Three Months Ended&lt;br/&gt;June 30,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Six Months Ended&lt;br/&gt;June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #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;2022&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;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;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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,468&#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,202&#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,915&#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,297&#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;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;394&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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,720&#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,596&#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;3,290&#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;2,997&#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;td colspan="3" style="display:none"/&gt;&lt;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;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMi0xLTEtMS0xMDc2NjA_81d50df5-fa9e-457f-a747-93e92ff135cf"
      unitRef="usd">1468000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMi0zLTEtMS0xMDc2NjA_91df3d13-c700-4186-9537-3c78a543815d"
      unitRef="usd">1202000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMi01LTEtMS0xMDc2NjA_159557bd-742c-4933-baab-55469ba74fc9"
      unitRef="usd">2915000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMi03LTEtMS0xMDc2NjA_a868bdd5-9d62-48a8-aa59-1a539d1a64a1"
      unitRef="usd">2297000</us-gaap:OperatingLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMy0xLTEtMS0xMDc2NjA_ee81ba8b-f4d5-431d-9eac-e34fa6ea4141"
      unitRef="usd">252000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMy0zLTEtMS0xMDc2NjA_61b5b1bc-d4d0-4458-ad94-7a7a480ec572"
      unitRef="usd">394000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMy01LTEtMS0xMDc2NjA_2724ca2f-e63f-4bfa-80a5-671c9409ee5a"
      unitRef="usd">375000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfMy03LTEtMS0xMDc2NjA_81102e94-4f78-49dd-a094-fcdfbad50eca"
      unitRef="usd">700000</us-gaap:VariableLeaseCost>
    <us-gaap:LeaseCost
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfNC0xLTEtMS0xMDc2NjA_fe1ce400-61e9-4718-a681-86f12c7a07d5"
      unitRef="usd">1720000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfNC0zLTEtMS0xMDc2NjA_b57ed009-65ec-4e8f-8671-c9d6f6f6f491"
      unitRef="usd">1596000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfNC01LTEtMS0xMDc2NjA_f76228c1-1128-48b7-b74a-82a20c47ee7b"
      unitRef="usd">3290000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmUzOTkxZWIyMGRhMzQ1YzNhMWFhZTk3ZDRkMjhkMzFkL3RhYmxlcmFuZ2U6ZTM5OTFlYjIwZGEzNDVjM2ExYWFlOTdkNGQyOGQzMWRfNC03LTEtMS0xMDc2NjA_32536db5-54be-411f-8d90-4eae6c362e49"
      unitRef="usd">2997000</us-gaap:LeaseCost>
    <appf:LeaseAssetsAndLiabilitiesTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTQ3NA_2ff2b9b0-079f-42ff-b37d-79817e5f9514">&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:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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;June 30,&lt;br/&gt;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight: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;124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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,854&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;29,228&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,710&#160;&lt;/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;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfNi0wLTEtMS0xMDc2NjA_fe66b87c-62e0-46da-9a65-b9e6a987b629"&gt;Other current liabilities&lt;/span&gt;&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,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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,874&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;54,044&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,733&#160;&lt;/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;57,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="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;57,607&#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;</appf:LeaseAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i4cba1fcaa48a498381745132251d7dfc_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfMi0xLTEtMS0xMDc2NjA_225c47a6-17ea-4fd1-b70d-8d1ebdd6b950"
      unitRef="usd">124000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="icae271fe2d4e4f798ed4f1c8a5399e85_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfMi0zLTEtMS0xMDc2NjA_1abc007d-477f-429c-952c-4c64e1cb00cb"
      unitRef="usd">4854000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfMy0xLTEtMS0xMDc2NjA_8e73c5c7-eaa4-40ee-bb17-01fe1db73ff9"
      unitRef="usd">29228000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfMy0zLTEtMS0xMDc2NjA_c6f5eb70-011b-4862-bffe-54a689d40746"
      unitRef="usd">41710000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfNi0xLTEtMS0xMDc2NjA_87a984b9-05aa-4094-a367-80c74f6dd0cb"
      unitRef="usd">3451000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfNi0zLTEtMS0xMDc2NjA_0fb8c6cf-65f0-49d8-be23-bb9293d7b484"
      unitRef="usd">1874000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfNy0xLTEtMS0xMDc2NjA_3f3dc5e7-62ad-4dbd-acdd-e6b22f2473d6"
      unitRef="usd">54044000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfNy0zLTEtMS0xMDc2NjA_85cecd7e-77f4-46a4-ae80-1e660c47a73d"
      unitRef="usd">55733000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfOC0xLTEtMS0xMDc2NjA_4a9a6feb-5fd9-43e0-bbb3-6386a78d1260"
      unitRef="usd">57495000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmVjOTZlNDMwNjlhZDQ4OTc4MzAxNmI1OGRiNTJlYWE5L3RhYmxlcmFuZ2U6ZWM5NmU0MzA2OWFkNDg5NzgzMDE2YjU4ZGI1MmVhYTlfOC0zLTEtMS0xMDc2NjA_c0695f5f-bc1c-42cc-a2f1-929b31ff295f"
      unitRef="usd">57607000</us-gaap:OperatingLeaseLiability>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTQ2OQ_28559b76-01cd-47dd-9b74-227fcddbb7c9">&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 June&#160;30, 2022 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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;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 style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,351&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,837&#160;&lt;/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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;42,281&#160;&lt;/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;70,130&#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;(12,759)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 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&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;57,371&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceRemainderOfFiscalYear
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfMS0xLTEtMS0xMDc2NjA_a59225bc-ef9d-431b-b7d8-cc17949f6ce5"
      unitRef="usd">2199000</appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceRemainderOfFiscalYear>
    <appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearOne
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfMi0xLTEtMS0xMDc2NjA_840d3958-9b15-4819-97f3-cded18b6d1a9"
      unitRef="usd">5427000</appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearOne>
    <appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearTwo
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfMy0xLTEtMS0xMDc2NjA_1064d3ba-ec50-469d-9178-148b4bbc908b"
      unitRef="usd">6351000</appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearTwo>
    <appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearThree
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfNC0xLTEtMS0xMDc2NjA_f3a662a1-34a5-4350-9cb6-11e043189f2c"
      unitRef="usd">6837000</appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearThree>
    <appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearFour
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfNS0xLTEtMS0xMDc2NjA_760fce55-d5ab-4096-bcac-12e43c29a93b"
      unitRef="usd">7035000</appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceYearFour>
    <appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceAfterYearFour
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfNi0xLTEtMS0xMDc2NjA_7755db33-4395-4607-aa5b-763fcbd53715"
      unitRef="usd">42281000</appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowanceAfterYearFour>
    <appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowance
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfNy0xLTEtMS0xMDc2NjA_c0cb2d9f-12c2-4540-aa7a-375e30e24237"
      unitRef="usd">70130000</appf:LesseeOperatingLeaseLiabilityToBePaidNetOfTenantImprovementAllowance>
    <appf:LesseeOperatingLeaseLiabilityUndiscountedExcessAmountNetOfTenantImprovementAllowance
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfOC0xLTEtMS0xMDc2NjA_bf42964f-0eff-495d-a449-3dd76cf828c3"
      unitRef="usd">12759000</appf:LesseeOperatingLeaseLiabilityUndiscountedExcessAmountNetOfTenantImprovementAllowance>
    <appf:LesseeOperatingLeaseLiabilityNetOfCurrentPortionNetOfTenantImprovementAllowance
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RhYmxlOmU1ZjkwZGM5Yjc3ODQxNGI4YmRmNjkwMmIyMzJjYzU1L3RhYmxlcmFuZ2U6ZTVmOTBkYzliNzc4NDE0YjhiZGY2OTAyYjIzMmNjNTVfOS0xLTEtMS0xMDc2NjA_39a8e411-d315-41bd-8e8c-17591a42c8ec"
      unitRef="usd">57371000</appf:LesseeOperatingLeaseLiabilityNetOfCurrentPortionNetOfTenantImprovementAllowance>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMzI5ODUzNDkwNTg4Mw_f3dd3e36-62fa-429f-8c00-2e0d99ea7b60"
      unitRef="usd">23300000</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:AssetImpairmentCharges
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTY0OTI2NzQ2MTUzNw_0fcae223-db58-4551-ab1b-8af7c8b51e3d"
      unitRef="usd">19400000</us-gaap:AssetImpairmentCharges>
    <us-gaap:ImpairmentOfLeasehold
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMTY0OTI2NzQ2MTU0NA_d22f24c4-99ea-447e-a556-ebcac5ae2e9b"
      unitRef="usd">15700000</us-gaap:ImpairmentOfLeasehold>
    <us-gaap:ImpairmentExcludingLessorAssetUnderOperatingLease
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81Mi9mcmFnOjE2NTYzN2Q1ZmYyZTQyNWJiZWEyOTY0MGIzNmZkZjY1L3RleHRyZWdpb246MTY1NjM3ZDVmZjJlNDI1YmJlYTI5NjQwYjM2ZmRmNjVfMzI5ODUzNDkwMzYxMw_20ddcca6-e296-4e39-a25f-3db3c67c7a74"
      unitRef="usd">3700000</us-gaap:ImpairmentExcludingLessorAssetUnderOperatingLease>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81NS9mcmFnOjc2ZTBiMjJmMmEyMzQ5ZWVhOWIyNTc2MWExYzU0OTI5L3RleHRyZWdpb246NzZlMGIyMmYyYTIzNDllZWE5YjI1NzYxYTFjNTQ5MjlfMjU3Mg_7fddba5a-27ca-442e-b677-9135680d1694">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 in connection with reinsuring liability to landlord insurance policies offered to our customers by our third-party service provider. Each policy has a limit of $100&#160;thousand per incident. We assume a 100% quota share of the liability to landlord insurance policies placed with our customers by 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 estimated liability for reported claims and incurred but not reported claims as of June&#160;30, 2022 and December&#160;31, 2021 was $2.4 million and $1.7 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 June&#160;30, 2022 and December&#160;31, 2021 are $3.0 million 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;From time to time we may become involved in various legal proceedings, investigative inquiries, and other disputes arising from or related to matters incident to the ordinary course of our business activities. We are not currently a party to any legal proceedings, nor are we aware of any pending or threatened legal proceedings, that we believe would have a material adverse effect on our business, operating results, cash flows or financial condition should such proceedings be resolved unfavorably.&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;&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 the ordinary course of business, we may provide indemnification of varying scope and terms to customers, business partners, investors, directors, officers, and other parties with respect to certain matters, including, but not limited to, losses arising out of our breach of any applicable agreements, intellectual property infringement claims made by third parties, and other liabilities relating to or arising from our services or our acts or omissions. 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 not incurred any costs as a result of such indemnification obligations and have not recorded any liabilities related to such obligations in the Condensed Consolidated Financial Statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <appf:PropertyLiabilityAndCasualtyInsurancePerIncidentAndPerResidenceCoverageLimit
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81NS9mcmFnOjc2ZTBiMjJmMmEyMzQ5ZWVhOWIyNTc2MWExYzU0OTI5L3RleHRyZWdpb246NzZlMGIyMmYyYTIzNDllZWE5YjI1NzYxYTFjNTQ5MjlfMzI4_95a5f2aa-a3fc-4344-ba2d-99161015350d"
      unitRef="usd">100000</appf:PropertyLiabilityAndCasualtyInsurancePerIncidentAndPerResidenceCoverageLimit>
    <us-gaap:ReinsuranceRetentionPolicyReinsuredRiskPercentage
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81NS9mcmFnOjc2ZTBiMjJmMmEyMzQ5ZWVhOWIyNTc2MWExYzU0OTI5L3RleHRyZWdpb246NzZlMGIyMmYyYTIzNDllZWE5YjI1NzYxYTFjNTQ5MjlfMzU3_e3bf072a-3626-438e-943d-9a456aaa162b"
      unitRef="number">1</us-gaap:ReinsuranceRetentionPolicyReinsuredRiskPercentage>
    <us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81NS9mcmFnOjc2ZTBiMjJmMmEyMzQ5ZWVhOWIyNTc2MWExYzU0OTI5L3RleHRyZWdpb246NzZlMGIyMmYyYTIzNDllZWE5YjI1NzYxYTFjNTQ5MjlfNzgy_dcc4e941-b277-4e37-b075-4321bf087414"
      unitRef="usd">2400000</us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability>
    <us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81NS9mcmFnOjc2ZTBiMjJmMmEyMzQ5ZWVhOWIyNTc2MWExYzU0OTI5L3RleHRyZWdpb246NzZlMGIyMmYyYTIzNDllZWE5YjI1NzYxYTFjNTQ5MjlfNzg5_d4137a10-df32-4c21-9259-b6187e1c579b"
      unitRef="usd">1700000</us-gaap:LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability>
    <appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81NS9mcmFnOjc2ZTBiMjJmMmEyMzQ5ZWVhOWIyNTc2MWExYzU0OTI5L3RleHRyZWdpb246NzZlMGIyMmYyYTIzNDllZWE5YjI1NzYxYTFjNTQ5MjlfOTcy_456d74ff-9d54-4d8c-9e91-11e54dc47018"
      unitRef="usd">3000000</appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices>
    <appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81NS9mcmFnOjc2ZTBiMjJmMmEyMzQ5ZWVhOWIyNTc2MWExYzU0OTI5L3RleHRyZWdpb246NzZlMGIyMmYyYTIzNDllZWE5YjI1NzYxYTFjNTQ5MjlfOTcy_a4e3736f-2295-4c1c-97bd-4d8adc217071"
      unitRef="usd">3000000</appf:PropertyLiabilityAndCasualtyInsuranceDepositsHeldWithThirdPartyAsCollateralForServices>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjk0Ng_123982c8-1624-4d8c-b01a-44c4b05f83de">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 six months ended June&#160;30, 2022, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:51.092%"/&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.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.110%"/&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, 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-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;846&#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;13.15&#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;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;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="3" style="background-color:#ffffff;padding:0 1pt"&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;/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;(85)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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="3" style="background-color:#ffffff;padding:0 1pt"&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;/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 June 30, 2022&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;761&#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;13.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;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 was not material for the periods presented.&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;No stock options were granted during the six months ended June&#160;30, 2022 or 2021. &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 six months ended June&#160;30, 2022, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.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, 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-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;837&#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;118.27&#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;547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;(136)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.08&#160;&lt;/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;(117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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 June 30, 2022&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,131&#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;119.30&#160;&lt;/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:7pt;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;Unvested RSUs as of June&#160;30, 2022 were composed of 0.9&#160;million RSUs with only service conditions and 0.2&#160;million PSUs with both service conditions and performance conditions. RSUs granted with only service conditions generally vest over a four-year period. The number of PSUs granted, as included in the above table, assumes achievement of the performance metric at 100% of the performance target. Of the unvested PSUs as of June&#160;30, 2022, 0.1&#160;million are subject to vesting based on the achievement of pre-established performance metrics for the year ending December&#160;31, 2022 and will vest over a &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTAzMA_33edab3c-a6f7-440d-8cc3-286cfadb295d"&gt;three&lt;/span&gt; year period, assuming continued employment throughout the performance period. The actual number of shares to be issued at the end of the performance period will range from 0% to 150% of the target number of shares depending on achievement relative to the performance metric over the applicable period. The remaining 0.1&#160;million PSUs unvested as of June&#160;30, 2022 are subject to vesting based on the achievement of pre-established performance metrics for &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMzI5ODUzNDg4NzAwMA_656c1be4-7f07-4599-94ac-c0805569e499"&gt;three&lt;/span&gt; year measurement periods ending December 31, 2022 and 2023, assuming continued employment throughout the performance period. 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:7pt;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 recognized stock-based compensation expense for the RSUs and PSUs of $10.5 million and $3.7 million for the three months ended June&#160;30, 2022 and 2021, respectively, and $18.3 million and $6.8 million for the six months ended June&#160;30, 2022 and 2021, respectively. Excluded from stock-based compensation expense is capitalized software development costs of $0.7 million and $1.2 million for the three and six months ended June&#160;30, 2022 and 2021. As of June&#160;30, 2022, the total estimated remaining stock-based compensation expense for the aforementioned RSUs and PSUs was $107.4 million, which is expected to be recognized over a weighted average period of 3.0 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 ("RSAs") for the six months ended June&#160;30, 2022 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-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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&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, 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-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;4&#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;144.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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;6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;144.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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 June 30, 2022&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;6&#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;96.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;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 RSAs subject to certain conditions. RSAs vest over a one-year period. Our stock-based compensation expense for RSAs was not material for the periods presented.&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 June&#160;30, 2022, the total estimated remaining stock-based compensation expense for unvested RSAs with a repurchase right was $0.6 million, which is expected to be recognized over a weighted average period of one year.&lt;/span&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjk1Ng_bf7a2069-2782-44ed-9fcd-044f76ad6799">&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 six months ended June&#160;30, 2022, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:51.092%"/&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.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.110%"/&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, 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-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;846&#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;13.15&#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;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;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="3" style="background-color:#ffffff;padding:0 1pt"&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;/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;(85)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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="3" style="background-color:#ffffff;padding:0 1pt"&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;/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 June 30, 2022&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;761&#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;13.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfMS0yLTEtMS0xMDc2NjA_fd6faad0-e7b3-4f32-bf05-e9b5b865a04b"
      unitRef="shares">846000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i0b8ff27be38c49e1b409cd4b8f5ba6e8_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfMS00LTEtMS0xMDc2NjA_a34250e1-dbd6-4e7f-8f7e-4871f81c0c84"
      unitRef="usdPerShare">13.15</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i40cdd4884ae44233b71a694a8b1171ec_D20220101-20220331"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfMS02LTEtMS0xMDc2NjA_4278c7fc-a3ea-4641-9ed0-ff4ce7d8ec27">P3Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfMi0yLTEtMS0xMDc2NjA_cc5e24a9-8b94-4bcf-8ed5-73abe5fd1e37"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfMi00LTEtMS0xMDc2NjA_8ea190fb-b240-424e-9533-c0142158f550"
      unitRef="usdPerShare"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfMy0yLTEtMS0xMDc2NjA_d91927ea-7313-4547-80e3-d983384910c7"
      unitRef="shares">85000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfMy00LTEtMS0xMDc2NjA_b3fec30a-4b95-4976-883f-3973b5d62fa8"
      unitRef="usdPerShare">7.06</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfNC0yLTEtMS0xMDc2NjA_bb841bb3-d1a8-49df-b8f4-b17ac34d187f"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfNC00LTEtMS0xMDc2NjA_15a3dbfb-8d8c-4f9e-b93f-57f5f2bae386"
      unitRef="usdPerShare"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfNS0yLTEtMS0xMDc2NjA_d65f440c-8742-4c44-8104-9597bac6ea42"
      unitRef="shares">761000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i99298c1302a8458882f7a89f17850703_I20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfNS00LTEtMS0xMDc2NjA_3d4a401a-cc00-467c-a8f9-6cf5dc62a874"
      unitRef="usdPerShare">13.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmY2MTcwYTc3YzViOTQ4ZDdhMTgxZDkwY2QzMjJhZmFlL3RhYmxlcmFuZ2U6ZjYxNzBhNzdjNWI5NDhkN2ExODFkOTBjZDMyMmFmYWVfNS02LTEtMS0xMDc2NjA_fae87827-ec96-4fdf-9a8e-7d5f6e77e6d6">P2Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjgy_52750b92-83ce-4544-a1ac-4936fdb678cf"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjgy_f972d8c0-b970-48cf-9504-63ac936ccbc0"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjkzNw_c2f128e0-997f-4624-a748-f5fc375f0340">&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 six months ended June&#160;30, 2022, is as follows (number of shares in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.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, 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-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;837&#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;118.27&#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;547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;(136)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.08&#160;&lt;/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;(117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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 June 30, 2022&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,131&#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;119.30&#160;&lt;/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="i62385e38d01a46d18f3f145091d9af87_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfMS0yLTEtMS0xMDc2NjA_eefd673c-c881-473c-84c9-a0d8ba00aea2"
      unitRef="shares">837000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i62385e38d01a46d18f3f145091d9af87_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfMS00LTEtMS0xMDc2NjA_53967c50-5a16-47b0-af7b-ead3e1888b9f"
      unitRef="usdPerShare">118.27</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="iee1e4ea66cec4c199c36a23e2d05a711_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfMi0yLTEtMS0xMDc2NjA_385196c5-a038-4a2a-9ea6-c848c71cff65"
      unitRef="shares">547000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="iee1e4ea66cec4c199c36a23e2d05a711_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfMi00LTEtMS0xMDc2NjA_469f3ebd-08cd-4c43-ad4c-a4b4b92cbdc1"
      unitRef="usdPerShare">112.97</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="iee1e4ea66cec4c199c36a23e2d05a711_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfMy0yLTEtMS0xMDc2NjA_a00f121f-9ad1-4b71-be5f-aa78c25c3ca4"
      unitRef="shares">136000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="iee1e4ea66cec4c199c36a23e2d05a711_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfMy00LTEtMS0xMDc2NjA_d52ca52d-0857-4be9-bec8-aa471fe4ad22"
      unitRef="usdPerShare">103.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="iee1e4ea66cec4c199c36a23e2d05a711_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfNC0yLTEtMS0xMDc2NjA_babd692b-f35c-433c-8ccf-21de9a1f2fff"
      unitRef="shares">117000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="iee1e4ea66cec4c199c36a23e2d05a711_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfNC00LTEtMS0xMDc2NjA_d49e60c9-db71-4d85-be28-a4ec142d9efe"
      unitRef="usdPerShare">101.13</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i5194d654f9d1426f86ff7e6d96a04fcc_I20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfNS0yLTEtMS0xMDc2NjA_ab4c914f-8050-4931-b757-f2f76ce99a2f"
      unitRef="shares">1131000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i5194d654f9d1426f86ff7e6d96a04fcc_I20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmZiOTdkMjcyYjE3ZDQzYzdhMDJiMGNlMzUwYmY4YTRiL3RhYmxlcmFuZ2U6ZmI5N2QyNzJiMTdkNDNjN2EwMmIwY2UzNTBiZjhhNGJfNS00LTEtMS0xMDc2NjA_4424a721-b5ca-416e-a2ba-fce74459e480"
      unitRef="usdPerShare">119.30</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i0c7d4c9edc7b4dabbf1917a37653d8ce_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfNTQw_0fc552fc-4c0f-41ba-aa80-8f47f1423cae"
      unitRef="shares">900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i1d1200b666ff4cd6a4d07863feccf33d_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfNTgx_808db293-99e0-45a9-9ee1-602a7609f72c"
      unitRef="shares">200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i0c7d4c9edc7b4dabbf1917a37653d8ce_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjk1NA_93d6d98e-52c5-4390-8c31-e0c1f9d4115f">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i0e4570d70d2e4780a3e211de84db64ec_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfODM1_c9c9b81b-419e-454a-9f73-8a24ead95490"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i87f056a0ba34463abf90102afbb3dbab_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY0OTI2NzQ0NTAxMQ_76f54086-0bf9-4cc6-abe3-6209be635515"
      unitRef="shares">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i4365d65b314b4f888278410d7228d869_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTIwNQ_745eecd6-8162-4fef-b94c-2ab049f08995"
      unitRef="number">0</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i2740203f742d4f2da9010775b7547a40_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTIxMQ_54fffa42-da0d-40b1-ae41-9ccb4d3c29a1"
      unitRef="number">1.50</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="iaf80c3537d7d45278c0d16ff652f5180_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY0OTI2NzQ0NTAxOA_de35ecfd-5c80-45c7-b491-ea0f3fdb244d"
      unitRef="shares">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="ic1cb1fa712de4b599018e293866c994f_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY2OA_b17175fa-9bfa-44cd-8e30-5533bfeadd03"
      unitRef="number">0</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i56cd963625294936bb1f15e6af46809e_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY3NA_af7674f7-8c23-4a28-bcfb-a405d8c43015"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i1cf015f369fc4f39b54d22dcf7f53e4d_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTc1Mw_15b0e71a-8b91-48f4-97a9-bb85e7ee9d18"
      unitRef="number">1</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric
      contextRef="i7ea5f1a6bafe4984b90b2029bea3394e_I20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTc2MA_7a44dba6-1970-41f1-ae1e-727e8c96e5fe"
      unitRef="number">1.50</appf:SharebasedCompensationArrangementsbySharebasedPaymentAwardPercentOfAwardTargetPerformanceMetric>
    <appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets
      contextRef="ic91f314cecd649fdb013128eb2ded189_D20220101-20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTg1MQ_6af1d36f-a658-477e-b5af-0a343f812d48"
      unitRef="number">0</appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets>
    <appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets
      contextRef="id584223b0afe4f95a716997ef1c53709_D20220101-20220630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTg1OA_2603352a-75cc-4302-a24b-098ce6613ab7"
      unitRef="number">0.65</appf:ShareBasedCompensationArrangementsByShareBasedPaymentAwardPercentOfCashBonusPaymentOnInitialTargets>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i0821c290677a4d92bc310b8c0e7766c3_D20220401-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTA5OTUxMTYzMDgyNw_1d9721ff-63ff-4b67-bcc4-703a55b42408"
      unitRef="usd">10500000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ib09dad5fe25f4992b2c29553d50d8c20_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTA5OTUxMTYzMDg0Mw_d2c750ac-c1e4-437e-8f88-251d5dec3a2f"
      unitRef="usd">3700000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i1f144c2394a7435e8a5cfedec9a2513a_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTA5OTUxMTYzMDc0Ng_d13cd574-e994-4c69-af84-1cc01cc128ef"
      unitRef="usd">18300000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i824e0a36d8be4a3b8a69edde6500a963_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTA5OTUxMTYzMDkxMA_40bf11bd-2767-4de4-9d2c-127dd81f13c7"
      unitRef="usd">6800000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="i0821c290677a4d92bc310b8c0e7766c3_D20220401-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjExNQ_82e07fa0-8c48-4e7a-99cd-a6f2ba761af7"
      unitRef="usd">700000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="i1f144c2394a7435e8a5cfedec9a2513a_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjExNQ_f1ec4cc5-96f3-4d5f-a5a9-0f9a225c66ef"
      unitRef="usd">700000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="ib09dad5fe25f4992b2c29553d50d8c20_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY0OTI2NzQ0NTA2Mg_00a352a0-e123-4688-b54c-f314d618797f"
      unitRef="usd">1200000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount
      contextRef="i824e0a36d8be4a3b8a69edde6500a963_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY0OTI2NzQ0NTA2Mg_241832e6-75c1-4f35-8196-f0c47864c9d7"
      unitRef="usd">1200000</us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i9d7bbd9111224f1d9619b86a3d259422_I20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY0OTI2NzQ0NTE0Nw_485d2f99-d722-40fa-8e84-85dea67ac0cb"
      unitRef="usd">107400000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i1f144c2394a7435e8a5cfedec9a2513a_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjM1MQ_96d2ecb1-f3bb-4074-ada6-8b977f15eb77">P3Y</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjk0OQ_0bce8181-0b49-4241-9158-545e116d0fb2">&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 ("RSAs") for the six months ended June&#160;30, 2022 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-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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&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, 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-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;4&#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;144.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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;6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;144.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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 June 30, 2022&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;6&#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;96.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i4ecbfadcba10437b93feb1cbccc4eb6b_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfMS0yLTEtMS0xMDc2NjA_780db698-620c-40b6-a32d-893c25813065"
      unitRef="shares">4000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i4ecbfadcba10437b93feb1cbccc4eb6b_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfMS00LTEtMS0xMDc2NjA_f26efde8-0afb-48e6-9289-a32927810770"
      unitRef="usdPerShare">144.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfMi0yLTEtMS0xMDc2NjA_7a0d2eb5-1623-4dcb-b664-1f94876070a4"
      unitRef="shares">6000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfMi00LTEtMS0xMDc2NjA_0fee72b2-3d4a-459d-a5e8-d58c718179d7"
      unitRef="usdPerShare">96.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfMy0yLTEtMS0xMDc2NjA_6909e5a5-df84-4a02-8c38-8cad09f4ce68"
      unitRef="shares">4000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfMy00LTEtMS0xMDc2NjA_9dc758ba-afde-4926-a635-b475ed413593"
      unitRef="usdPerShare">144.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfNC0yLTEtMS0xMDc2NjA_211d0b42-247e-48f5-a658-02c443cfa416"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfNC00LTEtMS0xMDc2NjA_1cec7595-0e34-49df-95b5-d7c66bd95768"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="ie311f44679dd4d298d402fc5cc7fce02_I20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfNS0yLTEtMS0xMDc2NjA_1b26c7ab-f54a-46ce-8c49-0d0060f42ebc"
      unitRef="shares">6000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="ie311f44679dd4d298d402fc5cc7fce02_I20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RhYmxlOmI0ZWVmMTRjMGY2YzQxYWU4MjM4NWJlMGQxZjA1MjAwL3RhYmxlcmFuZ2U6YjRlZWYxNGMwZjZjNDFhZTgyMzg1YmUwZDFmMDUyMDBfNS00LTEtMS0xMDc2NjA_f8ee8c2f-1b96-4f8a-9385-cc38aeec08c1"
      unitRef="usdPerShare">96.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMjk0MA_7273d151-d7de-4e83-876f-1f0495cc6bc2">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="ie311f44679dd4d298d402fc5cc7fce02_I20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY0OTI2NzQ0NDk0NQ_c7ef6d94-0603-47bc-9692-695af1817b6b"
      unitRef="usd">600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="idc3c2d6d5f654d32b70097dc02766142_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV81OC9mcmFnOjY4MDVmYzRhZmZhNjQ3MWY4YjVhMDM4Yzg3OTlkMTNhL3RleHRyZWdpb246NjgwNWZjNGFmZmE2NDcxZjhiNWEwMzhjODc5OWQxM2FfMTY0OTI2NzQ0NTE4NQ_159dc571-eb9f-455a-9f16-ad83bfd87b82">P1Y</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82MS9mcmFnOjFmMTE1NzI4ZDMzYjQ4Yjg5NjE0OWE4M2RkNDg2MjYzL3RleHRyZWdpb246MWYxMTU3MjhkMzNiNDhiODk2MTQ5YTgzZGQ0ODYyNjNfODI5_72dffbf0-2436-41d9-80e6-915bcf1882e5">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 provision for (benefit from) income taxes on a quarterly basis by applying an estimated annual effective tax rate to income/loss 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 and six months ended June&#160;30, 2022, we recorded income tax expense of $0.2&#160;million and an income tax benefit of $49&#160;thousand, 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, research and development tax credits, offset by the change in the valuation allowance against deferred 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;There were no material changes to our unrecognized tax benefits during the six months ended June&#160;30, 2022 and we do not expect to have any significant changes to unrecognized tax benefits through the remainder of the fiscal year.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82MS9mcmFnOjFmMTE1NzI4ZDMzYjQ4Yjg5NjE0OWE4M2RkNDg2MjYzL3RleHRyZWdpb246MWYxMTU3MjhkMzNiNDhiODk2MTQ5YTgzZGQ0ODYyNjNfMTA5OTUxMTYzMjY0MQ_6dc77c2c-6e79-4de7-81cc-d73363f124d4"
      unitRef="usd">200000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82MS9mcmFnOjFmMTE1NzI4ZDMzYjQ4Yjg5NjE0OWE4M2RkNDg2MjYzL3RleHRyZWdpb246MWYxMTU3MjhkMzNiNDhiODk2MTQ5YTgzZGQ0ODYyNjNfMTA5OTUxMTYzMjY0OA_a65ec1ba-c240-4335-a02b-0aa1f5363d4e"
      unitRef="usd">-49000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RleHRyZWdpb246NmM1ZTJlMjQ0Y2YzNDIyZGFmZWRkMTZkMTRkZDNmN2FfNDc2_ec90f6f3-2c2d-4eaa-a6f6-530a9019c39a">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 and six months ended June&#160;30, 2022 and 2021 (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-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:51.239%"/&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.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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.015%"/&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="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;June 30,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Six Months Ended&lt;br/&gt;June 30,&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;2022&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;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;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;32,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 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;25,363&#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;63,223&#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;49,537&#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;Value Added 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;81,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;60,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;152,950&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;111,957&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;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,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total 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;117,450&#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;89,040&#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;222,746&#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;167,961&#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-bottom:6pt;margin-top:5pt;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 six months ended June&#160;30, 2022 and 2021, we recognized $2.1 million and $1.8 million of revenue, respectively, which were included in the deferred revenue balances as of December&#160;31, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RleHRyZWdpb246NmM1ZTJlMjQ0Y2YzNDIyZGFmZWRkMTZkMTRkZDNmN2FfNDgx_52abeee6-a058-4c04-8f25-9e626c2b55ca">&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 and six months ended June&#160;30, 2022 and 2021 (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-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:51.239%"/&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.011%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width: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.015%"/&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="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;June 30,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Six Months Ended&lt;br/&gt;June 30,&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;2022&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;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;2022&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;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align: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;32,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 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;25,363&#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;63,223&#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;49,537&#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;Value Added 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;81,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;60,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;152,950&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;111,957&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;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;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,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total 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;117,450&#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;89,040&#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;222,746&#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;167,961&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i90c5e78246e04a41aca020b462483b81_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMi0yLTEtMS0xMDc2NjA_05db0c34-fbc7-41e8-9957-49b0c98c0495"
      unitRef="usd">32414000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5f54f558e8a641c794abb0443cc435fa_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMi00LTEtMS0xMDc2NjA_aa5e9bcb-959c-40f8-8cf7-de71cacd7ab2"
      unitRef="usd">25363000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i75d344a636cb4fa9bceae04ff7a131c7_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMi02LTEtMS0xMDc2NjA_aad521c7-0ec9-4ac5-b103-64b67664348a"
      unitRef="usd">63223000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia2dcf79e774e42579ce877b45c93331f_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMi04LTEtMS0xMDc2NjA_a8eeae61-27ad-43bc-a2bd-329ed6332d97"
      unitRef="usd">49537000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i38f0e0b1654041ebb21397dd05bbf113_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMy0yLTEtMS0xMDc2NjA_211bd3fa-4d83-4499-9278-b9b709f03383"
      unitRef="usd">81450000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i11ee439cabe240518fe5702de6614954_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMy00LTEtMS0xMDc2NjA_e1597d12-c3f4-4183-a63e-fc29840668d8"
      unitRef="usd">60447000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i819cf7f7224b43939607c272c744eaea_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMy02LTEtMS0xMDc2NjA_bb5b2361-964b-4119-bd72-6652dbb2c3ef"
      unitRef="usd">152950000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i73d6fe15141f4e52826807265785991f_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfMy04LTEtMS0xMDc2NjA_cd8701dd-0472-4df1-8dd6-892e0a53178d"
      unitRef="usd">111957000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i167a9746c7c54a9e94689bb0b792e882_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNC0yLTEtMS0xMDc2NjA_2d36efb5-b377-4899-bc35-626bad9e15e5"
      unitRef="usd">3586000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie251e335e27947c897204242255b1c2c_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNC00LTEtMS0xMDc2NjA_1382f3e4-e6f3-46a4-971b-a906784a812f"
      unitRef="usd">3230000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i70d00f9dde554866bede19b003c609c4_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNC02LTEtMS0xMDc2NjA_7e5874e7-14db-4842-a74f-c3eae7d2f2ac"
      unitRef="usd">6573000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iecb84f2282ea470190ef0cdf40a4f54a_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNC04LTEtMS0xMDc2NjA_6b025273-3428-4783-b749-65231331c823"
      unitRef="usd">6467000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7cd3565d89ba44ff860c3ac31e884482_D20220401-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNS0yLTEtMS0xMDc2NjA_d8ab48d1-19c4-44ff-b9e7-47c2b1223041"
      unitRef="usd">117450000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if06c556938f3441facc3462c9fc389da_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNS00LTEtMS0xMDc2NjA_b37901cd-fa7d-40b2-81f2-1dada71f1c88"
      unitRef="usd">89040000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNS02LTEtMS0xMDc2NjA_eb48fa4d-0010-4ff5-b3c5-b2845751a295"
      unitRef="usd">222746000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RhYmxlOmM5MDJkOWJkYzZmZDRkNGNiYmI1OTg2NWM2MGQzYjRiL3RhYmxlcmFuZ2U6YzkwMmQ5YmRjNmZkNGQ0Y2JiYjU5ODY1YzYwZDNiNGJfNS04LTEtMS0xMDc2NjA_1bae047e-1d9b-4544-aa7a-e79a13440ae1"
      unitRef="usd">167961000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="id0f5ffca984c48868d535f44bd0c74d6_D20220101-20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RleHRyZWdpb246NmM1ZTJlMjQ0Y2YzNDIyZGFmZWRkMTZkMTRkZDNmN2FfMzUy_6023d244-b63f-42f4-a219-79b6284b7711"
      unitRef="usd">2100000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="i205c9ea2046344e9910faf2a9ea362d8_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV82NC9mcmFnOjZjNWUyZTI0NGNmMzQyMmRhZmVkZDE2ZDE0ZGQzZjdhL3RleHRyZWdpb246NmM1ZTJlMjQ0Y2YzNDIyZGFmZWRkMTZkMTRkZDNmN2FfMzU5_76d14966-1d59-4350-81c2-3d7f2e0219e2"
      unitRef="usd">1800000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0xLTEtMS0xMDc2NjA_71799366-e918-4331-b805-32c438e0d180"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0xLTEtMS0xMDc2NjA_71799366-e918-4331-b805-32c438e0d180"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0xLTEtMS0xMDc2NjA_4e8c2cba-432e-49bd-88ec-2577ceffbeab"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0xLTEtMS0xMDc2NjA_4e8c2cba-432e-49bd-88ec-2577ceffbeab"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0zLTEtMS0xMDc2NjA_7a15c107-c1fa-472c-ab43-2ea1c99858c3"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0zLTEtMS0xMDc2NjA_7a15c107-c1fa-472c-ab43-2ea1c99858c3"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC01LTEtMS0xMDc2NjA_582ec158-c5dd-4d67-a688-4ac85c240fce"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC01LTEtMS0xMDc2NjA_582ec158-c5dd-4d67-a688-4ac85c240fce"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi03LTEtMS0xMDc2NjA_28c7c23a-c514-421b-91dd-287b5c547b40"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi03LTEtMS0xMDc2NjA_28c7c23a-c514-421b-91dd-287b5c547b40"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0zLTEtMS0xMDc2NjA_f6aac130-b7e4-46a7-b312-d9fb3874e5ab"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0zLTEtMS0xMDc2NjA_f6aac130-b7e4-46a7-b312-d9fb3874e5ab"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi01LTEtMS0xMDc2NjA_6ed664ac-8dc4-4fff-8a4b-aba8edc0d17f"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi01LTEtMS0xMDc2NjA_6ed664ac-8dc4-4fff-8a4b-aba8edc0d17f"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy03LTEtMS0xMDc2NjA_0b1bbcee-c4b6-438b-8afe-cf4243a9efa4"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy03LTEtMS0xMDc2NjA_0b1bbcee-c4b6-438b-8afe-cf4243a9efa4"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC03LTEtMS0xMDc2NjA_5c62ffe3-d7f7-4f6b-b5c7-917790bc6257"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC03LTEtMS0xMDc2NjA_5c62ffe3-d7f7-4f6b-b5c7-917790bc6257"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0zLTEtMS0xMDc2NjA_2c82ed16-a375-40a9-a7f9-55c640e8346e"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0zLTEtMS0xMDc2NjA_2c82ed16-a375-40a9-a7f9-55c640e8346e"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS01LTEtMS0xMDc2NjA_34ac7f4d-afc9-4f60-9da5-637335475cc2"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS01LTEtMS0xMDc2NjA_34ac7f4d-afc9-4f60-9da5-637335475cc2"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy01LTEtMS0xMDc2NjA_e68f204f-4e4a-450b-bfbb-881bc96c5164"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy01LTEtMS0xMDc2NjA_e68f204f-4e4a-450b-bfbb-881bc96c5164"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS03LTEtMS0xMDc2NjA_cdf97267-06d9-4bc7-9d2d-654bd9cf5cc1"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS03LTEtMS0xMDc2NjA_cdf97267-06d9-4bc7-9d2d-654bd9cf5cc1"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0xLTEtMS0xMDc2NjA_63685131-063d-43c9-a7e6-864166044e5a"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0xLTEtMS0xMDc2NjA_63685131-063d-43c9-a7e6-864166044e5a"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0zLTEtMS0xMDc2NjA_d328c398-aec1-406f-b974-f9886a4466d8"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0zLTEtMS0xMDc2NjA_d328c398-aec1-406f-b974-f9886a4466d8"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0xLTEtMS0xMDc2NjA_32f39040-9df2-4cb6-83a4-be8a166e6387"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0xLTEtMS0xMDc2NjA_32f39040-9df2-4cb6-83a4-be8a166e6387"
          xlink:type="locator"/>
        <link:footnote id="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9" xlink:label="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"> Includes stock-based compensation expense as follows:<xhtml:table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><xhtml:tr><xhtml:td style="width:1.0%"/><xhtml:td style="width:25.215%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:25.361%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:10.595%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:0.384%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:9.572%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:2.285%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:9.426%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:0.530%"/><xhtml:td style="width:0.1%"/><xhtml:td style="width:1.0%"/><xhtml:td style="width:9.432%"/><xhtml:td style="width:0.1%"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="padding:0 1pt"/><xhtml:td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Three Months Ended<xhtml:br/>June 30,</xhtml:span></xhtml:td><xhtml:td colspan="3" style="padding:0 1pt"/><xhtml:td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Six Months Ended<xhtml:br/>June 30,</xhtml:span></xhtml:td></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="padding:0 1pt"/><xhtml:td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2022</xhtml:span></xhtml:td><xhtml:td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><xhtml:td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2021</xhtml:span></xhtml:td><xhtml:td colspan="3" style="padding:0 1pt"/><xhtml:td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2022</xhtml:span></xhtml:td><xhtml:td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><xhtml:td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2021</xhtml:span></xhtml:td></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense included in costs and operating expenses:</xhtml:span></xhtml:td><xhtml:td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue (exclusive of depreciation and amortization)</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">726&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">463&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,084&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">934&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sales and marketing</xhtml:span></xhtml:td><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,013&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">447&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,473&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">849&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and product development</xhtml:span></xhtml:td><xhtml:td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,024&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,214&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,830&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,071&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">General and administrative</xhtml:span></xhtml:td><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,198&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,090&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,992&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><xhtml:td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><xhtml:td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,136&#160;</xhtml:span></xhtml:td><xhtml:td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></xhtml:tr><xhtml:tr><xhtml:td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total stock-based compensation expense</xhtml:span></xhtml:td><xhtml: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"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,961&#160;</xhtml:span></xhtml:td><xhtml: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"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml: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"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,214&#160;</xhtml:span></xhtml:td><xhtml: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"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml: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"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,379&#160;</xhtml:span></xhtml:td><xhtml: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"/><xhtml:td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><xhtml: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"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</xhtml:span></xhtml:td><xhtml:td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><xhtml:span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,990&#160;</xhtml:span></xhtml:td><xhtml: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"/></xhtml:tr></xhtml:table></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0xLTEtMS0xMDc2NjA_71799366-e918-4331-b805-32c438e0d180"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0xLTEtMS0xMDc2NjA_4e8c2cba-432e-49bd-88ec-2577ceffbeab"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC0zLTEtMS0xMDc2NjA_7a15c107-c1fa-472c-ab43-2ea1c99858c3"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC01LTEtMS0xMDc2NjA_582ec158-c5dd-4d67-a688-4ac85c240fce"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi03LTEtMS0xMDc2NjA_28c7c23a-c514-421b-91dd-287b5c547b40"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi0zLTEtMS0xMDc2NjA_f6aac130-b7e4-46a7-b312-d9fb3874e5ab"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNi01LTEtMS0xMDc2NjA_6ed664ac-8dc4-4fff-8a4b-aba8edc0d17f"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy03LTEtMS0xMDc2NjA_0b1bbcee-c4b6-438b-8afe-cf4243a9efa4"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNC03LTEtMS0xMDc2NjA_5c62ffe3-d7f7-4f6b-b5c7-917790bc6257"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0zLTEtMS0xMDc2NjA_2c82ed16-a375-40a9-a7f9-55c640e8346e"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS01LTEtMS0xMDc2NjA_34ac7f4d-afc9-4f60-9da5-637335475cc2"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy01LTEtMS0xMDc2NjA_e68f204f-4e4a-450b-bfbb-881bc96c5164"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS03LTEtMS0xMDc2NjA_cdf97267-06d9-4bc7-9d2d-654bd9cf5cc1"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNy0xLTEtMS0xMDc2NjA_63685131-063d-43c9-a7e6-864166044e5a"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0zLTEtMS0xMDc2NjA_d328c398-aec1-406f-b974-f9886a4466d8"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RhYmxlOmQ1OGUzMmViZDg5MDQzYmY4MTE4YjhlODhhYTBiZTlhL3RhYmxlcmFuZ2U6ZDU4ZTMyZWJkODkwNDNiZjgxMThiOGU4OGFhMGJlOWFfNS0xLTEtMS0xMDc2NjA_32f39040-9df2-4cb6-83a4-be8a166e6387"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOjdjOTk4MTM0MDM1NjRmMjZiZjg3Yzk1ZDk2YjBkNTRhL3NlYzo3Yzk5ODEzNDAzNTY0ZjI2YmY4N2M5NWQ5NmIwZDU0YV8xOS9mcmFnOmNhYWRhNmYwYTJhNTQ0ZTRiNWY0NDk1NWY5MDQyY2MxL3RleHRyZWdpb246Y2FhZGE2ZjBhMmE1NDRlNGI1ZjQ0OTU1ZjkwNDJjYzFfMjk3_8a43e8a4-186b-48b7-9b8b-c41fd98901b9"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
