 | us-gaap:RegistrationPaymentArrangementTerm | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:RegistrationPaymentArrangementEventToTransferConsideration | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:RegistrationPaymentArrangementSettlementAlternatives | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:RegistrationPaymentArrangementMaximumPotentialConsideration | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:RegistrationPaymentArrangementUnlimitedConsideration | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:RegistrationPaymentArrangementAccrualCarryingValue | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:RegistrationPaymentArrangementGainsAndLosses | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:RegistrationPaymentArrangementTable | all | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:RegistrationPaymentArrangementTerm | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:RegistrationPaymentArrangementEventToTransferConsideration | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:RegistrationPaymentArrangementSettlementAlternatives | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:RegistrationPaymentArrangementMaximumPotentialConsideration | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:RegistrationPaymentArrangementUnlimitedConsideration | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:RegistrationPaymentArrangementAccrualCarryingValue | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:RegistrationPaymentArrangementGainsAndLosses | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |