lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] odd/string_db4 643b141: Use "lingo" for all fields--


From: Greg Chicares
Subject: [lmi-commits] [lmi] odd/string_db4 643b141: Use "lingo" for all fields--'sample*' products only
Date: Tue, 1 Dec 2020 11:03:17 -0500 (EST)

branch: odd/string_db4
commit 643b141c34c6f400d9f105631659d84e803bca27
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Use "lingo" for all fields--'sample*' products only
    
    This experimental commit shows the effect of using '.lingo' for all
    drop-in text, for an entire block of products. The old '.policy'
    implementation is left in place. A comprehensive test verifies that
    both methods produce the same result for each text field, for every
    'sample*' product, in every state (no field yet varies by any database
    axis other than state), allowing for the "{NameOfVariable}" convention
    used for 'sample2*' products (which should perhaps have their own
    '.lingo' file instead).
    
    A fifteen or twenty-percent run-time cost is observed for the most
    straightforward scenario ("finra, no solve"); caching the '.lingo' file
    and removing the obsolescent '.policy' implementation ought to eliminate
    that penalty and perhaps even improve performance (because '.policy'
    files are not cached--but perhaps all product files should be cached).
---
 Speed_gcc_x86_64-pc-linux-gnu |  12 +-
 Speed_gcc_x86_64-w64-mingw32  |  12 +-
 dbdict.cpp                    | 351 ++++++++++++++++++++++++++
 dbdict.hpp                    | 173 +++++++++++++
 dbnames.hpp                   | 173 +++++++++++++
 dbnames.xpp                   | 171 +++++++++++++
 ledger_invariant_init.cpp     |  52 +++-
 lingo.cpp                     | 568 +++++++++++++++++++++++++++++++++++++++++-
 main_cli.cpp                  |   3 +
 product_data.cpp              | 162 ++++++------
 product_data.hpp              |   4 +-
 sample.hpp                    | 379 ++++++++++++++++++++++++++++
 12 files changed, 1964 insertions(+), 96 deletions(-)

diff --git a/Speed_gcc_x86_64-pc-linux-gnu b/Speed_gcc_x86_64-pc-linux-gnu
index 5cd14b4..d5973a8 100644
--- a/Speed_gcc_x86_64-pc-linux-gnu
+++ b/Speed_gcc_x86_64-pc-linux-gnu
@@ -1,7 +1,7 @@
 Test speed:
-  naic, no solve      : 2.012e-02 s mean;      19026 us least of  50 runs
-  naic, specamt solve : 3.338e-02 s mean;      32766 us least of  30 runs
-  naic, ee prem solve : 3.073e-02 s mean;      30324 us least of  33 runs
-  finra, no solve     : 7.956e-03 s mean;       7562 us least of 100 runs
-  finra, specamt solve: 2.084e-02 s mean;      20269 us least of  48 runs
-  finra, ee prem solve: 1.945e-02 s mean;      18905 us least of  52 runs
+  naic, no solve      : 2.123e-02 s mean;      19930 us least of  48 runs
+  naic, specamt solve : 3.441e-02 s mean;      33530 us least of  30 runs
+  naic, ee prem solve : 3.169e-02 s mean;      31105 us least of  32 runs
+  finra, no solve     : 8.890e-03 s mean;       8592 us least of 100 runs
+  finra, specamt solve: 2.170e-02 s mean;      21237 us least of  47 runs
+  finra, ee prem solve: 2.049e-02 s mean;      19914 us least of  49 runs
diff --git a/Speed_gcc_x86_64-w64-mingw32 b/Speed_gcc_x86_64-w64-mingw32
index a7b2105..e7d8c2b 100644
--- a/Speed_gcc_x86_64-w64-mingw32
+++ b/Speed_gcc_x86_64-w64-mingw32
@@ -1,7 +1,7 @@
 Test speed:
-  naic, no solve      : 2.665e-02 s mean;      26499 us least of  38 runs
-  naic, specamt solve : 4.183e-02 s mean;      41638 us least of  24 runs
-  naic, ee prem solve : 4.048e-02 s mean;      38911 us least of  25 runs
-  finra, no solve     : 1.491e-02 s mean;      14756 us least of  68 runs
-  finra, specamt solve: 2.881e-02 s mean;      28627 us least of  35 runs
-  finra, ee prem solve: 2.727e-02 s mean;      27162 us least of  37 runs
+  naic, no solve      : 2.990e-02 s mean;      29631 us least of  34 runs
+  naic, specamt solve : 4.508e-02 s mean;      44684 us least of  23 runs
+  naic, ee prem solve : 4.217e-02 s mean;      41832 us least of  24 runs
+  finra, no solve     : 1.771e-02 s mean;      17324 us least of  57 runs
+  finra, specamt solve: 3.203e-02 s mean;      31756 us least of  32 runs
+  finra, ee prem solve: 3.048e-02 s mean;      30010 us least of  33 runs
diff --git a/dbdict.cpp b/dbdict.cpp
index c5d5391..64814ca 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -421,6 +421,180 @@ void DBDictionary::ascribe_members()
     ascribe("UsePolicyFormAlt"          , &DBDictionary::UsePolicyFormAlt      
    ); // LINGO !! expunge
     ascribe("AllowGroupQuote"           , &DBDictionary::AllowGroupQuote       
    );
     ascribe("PolicyForm"                , &DBDictionary::PolicyForm            
    );
+    ascribe("PolicyFormAlternative"     , &DBDictionary::PolicyFormAlternative 
    );
+    // LINGO !! expunge
+    ascribe("PolicyMktgName"            , &DBDictionary::PolicyMktgName        
    );
+    ascribe("PolicyLegalName"           , &DBDictionary::PolicyLegalName       
    );
+    ascribe("InsCoShortName"            , &DBDictionary::InsCoShortName        
    );
+    ascribe("InsCoName"                 , &DBDictionary::InsCoName             
    );
+    ascribe("InsCoAddr"                 , &DBDictionary::InsCoAddr             
    );
+    ascribe("InsCoStreet"               , &DBDictionary::InsCoStreet           
    );
+    ascribe("InsCoPhone"                , &DBDictionary::InsCoPhone            
    );
+//  ascribe("InsCoDomicile"             , &DBDictionary::InsCoDomicile         
    ); // expunge
+    ascribe("MainUnderwriter"           , &DBDictionary::MainUnderwriter       
    );
+    ascribe("MainUnderwriterAddress"    , 
&DBDictionary::MainUnderwriterAddress    );
+    ascribe("CoUnderwriter"             , &DBDictionary::CoUnderwriter         
    );
+    ascribe("CoUnderwriterAddress"      , &DBDictionary::CoUnderwriterAddress  
    );
+    ascribe("AvName"                    , &DBDictionary::AvName                
    );
+    ascribe("CsvName"                   , &DBDictionary::CsvName               
    );
+    ascribe("CsvHeaderName"             , &DBDictionary::CsvHeaderName         
    );
+    ascribe("NoLapseProvisionName"      , &DBDictionary::NoLapseProvisionName  
    );
+    ascribe("ContractName"              , &DBDictionary::ContractName          
    );
+    ascribe("DboName"                   , &DBDictionary::DboName               
    );
+    ascribe("DboNameLevel"              , &DBDictionary::DboNameLevel          
    );
+    ascribe("DboNameIncreasing"         , &DBDictionary::DboNameIncreasing     
    );
+    ascribe("DboNameReturnOfPremium"    , 
&DBDictionary::DboNameReturnOfPremium    );
+    ascribe("DboNameMinDeathBenefit"    , 
&DBDictionary::DboNameMinDeathBenefit    );
+    ascribe("GenAcctName"               , &DBDictionary::GenAcctName           
    );
+    ascribe("GenAcctNameElaborated"     , &DBDictionary::GenAcctNameElaborated 
    );
+    ascribe("SepAcctName"               , &DBDictionary::SepAcctName           
    );
+    ascribe("SpecAmtName"               , &DBDictionary::SpecAmtName           
    );
+    ascribe("SpecAmtNameElaborated"     , &DBDictionary::SpecAmtNameElaborated 
    );
+    ascribe("UwBasisMedical"            , &DBDictionary::UwBasisMedical        
    );
+    ascribe("UwBasisParamedical"        , &DBDictionary::UwBasisParamedical    
    );
+    ascribe("UwBasisNonmedical"         , &DBDictionary::UwBasisNonmedical     
    );
+    ascribe("UwBasisSimplified"         , &DBDictionary::UwBasisSimplified     
    );
+    ascribe("UwBasisGuaranteed"         , &DBDictionary::UwBasisGuaranteed     
    );
+    ascribe("UwClassPreferred"          , &DBDictionary::UwClassPreferred      
    );
+    ascribe("UwClassStandard"           , &DBDictionary::UwClassStandard       
    );
+    ascribe("UwClassRated"              , &DBDictionary::UwClassRated          
    );
+    ascribe("UwClassUltra"              , &DBDictionary::UwClassUltra          
    );
+    ascribe("AccountValueFootnote"      , &DBDictionary::AccountValueFootnote  
    );
+    ascribe("AttainedAgeFootnote"       , &DBDictionary::AttainedAgeFootnote   
    );
+    ascribe("CashSurrValueFootnote"     , &DBDictionary::CashSurrValueFootnote 
    );
+    ascribe("DeathBenefitFootnote"      , &DBDictionary::DeathBenefitFootnote  
    );
+    ascribe("InitialPremiumFootnote"    , 
&DBDictionary::InitialPremiumFootnote    );
+    ascribe("NetPremiumFootnote"        , &DBDictionary::NetPremiumFootnote    
    );
+    ascribe("GrossPremiumFootnote"      , &DBDictionary::GrossPremiumFootnote  
    );
+    ascribe("OutlayFootnote"            , &DBDictionary::OutlayFootnote        
    );
+    ascribe("PolicyYearFootnote"        , &DBDictionary::PolicyYearFootnote    
    );
+    ascribe("ADDTerseName"              , &DBDictionary::ADDTerseName          
    );
+    ascribe("InsurabilityTerseName"     , &DBDictionary::InsurabilityTerseName 
    );
+    ascribe("ChildTerseName"            , &DBDictionary::ChildTerseName        
    );
+    ascribe("SpouseTerseName"           , &DBDictionary::SpouseTerseName       
    );
+    ascribe("TermTerseName"             , &DBDictionary::TermTerseName         
    );
+    ascribe("WaiverTerseName"           , &DBDictionary::WaiverTerseName       
    );
+    ascribe("AccelBftRiderTerseName"    , 
&DBDictionary::AccelBftRiderTerseName    );
+    ascribe("OverloanRiderTerseName"    , 
&DBDictionary::OverloanRiderTerseName    );
+    ascribe("ADDFootnote"               , &DBDictionary::ADDFootnote           
    );
+    ascribe("ChildFootnote"             , &DBDictionary::ChildFootnote         
    );
+    ascribe("SpouseFootnote"            , &DBDictionary::SpouseFootnote        
    );
+    ascribe("TermFootnote"              , &DBDictionary::TermFootnote          
    );
+    ascribe("WaiverFootnote"            , &DBDictionary::WaiverFootnote        
    );
+    ascribe("AccelBftRiderFootnote"     , &DBDictionary::AccelBftRiderFootnote 
    );
+    ascribe("OverloanRiderFootnote"     , &DBDictionary::OverloanRiderFootnote 
    );
+    ascribe("GroupQuoteShortProductName", 
&DBDictionary::GroupQuoteShortProductName);
+    ascribe("GroupQuoteIsNotAnOffer"    , 
&DBDictionary::GroupQuoteIsNotAnOffer    );
+    ascribe("GroupQuoteRidersFooter"    , 
&DBDictionary::GroupQuoteRidersFooter    );
+    ascribe("GroupQuotePolicyFormId"    , 
&DBDictionary::GroupQuotePolicyFormId    );
+    ascribe("GroupQuoteStateVariations" , 
&DBDictionary::GroupQuoteStateVariations );
+    ascribe("GroupQuoteProspectus"      , &DBDictionary::GroupQuoteProspectus  
    );
+    ascribe("GroupQuoteUnderwriter"     , &DBDictionary::GroupQuoteUnderwriter 
    );
+    ascribe("GroupQuoteBrokerDealer"    , 
&DBDictionary::GroupQuoteBrokerDealer    );
+    ascribe("GroupQuoteRubricMandatory" , 
&DBDictionary::GroupQuoteRubricMandatory );
+    ascribe("GroupQuoteRubricVoluntary" , 
&DBDictionary::GroupQuoteRubricVoluntary );
+    ascribe("GroupQuoteRubricFusion"    , 
&DBDictionary::GroupQuoteRubricFusion    );
+    ascribe("GroupQuoteFooterMandatory" , 
&DBDictionary::GroupQuoteFooterMandatory );
+    ascribe("GroupQuoteFooterVoluntary" , 
&DBDictionary::GroupQuoteFooterVoluntary );
+    ascribe("GroupQuoteFooterFusion"    , 
&DBDictionary::GroupQuoteFooterFusion    );
+    ascribe("MinimumPremiumFootnote"    , 
&DBDictionary::MinimumPremiumFootnote    );
+    ascribe("PremAllocationFootnote"    , 
&DBDictionary::PremAllocationFootnote    );
+    ascribe("InterestDisclaimer"        , &DBDictionary::InterestDisclaimer    
    );
+    ascribe("GuarMortalityFootnote"     , &DBDictionary::GuarMortalityFootnote 
    );
+    ascribe("ProductDescription"        , &DBDictionary::ProductDescription    
    );
+    ascribe("StableValueFootnote"       , &DBDictionary::StableValueFootnote   
    );
+    ascribe("NoVanishPremiumFootnote"   , 
&DBDictionary::NoVanishPremiumFootnote   );
+    ascribe("RejectPremiumFootnote"     , &DBDictionary::RejectPremiumFootnote 
    );
+    ascribe("ExpRatingFootnote"         , &DBDictionary::ExpRatingFootnote     
    );
+    ascribe("MortalityBlendFootnote"    , 
&DBDictionary::MortalityBlendFootnote    );
+    ascribe("HypotheticalRatesFootnote" , 
&DBDictionary::HypotheticalRatesFootnote );
+    ascribe("SalesLoadRefundFootnote"   , 
&DBDictionary::SalesLoadRefundFootnote   );
+    ascribe("NoLapseEverFootnote"       , &DBDictionary::NoLapseEverFootnote   
    );
+    ascribe("NoLapseFootnote"           , &DBDictionary::NoLapseFootnote       
    );
+    ascribe("CurrentValuesFootnote"     , &DBDictionary::CurrentValuesFootnote 
    );
+    ascribe("DBOption1Footnote"         , &DBDictionary::DBOption1Footnote     
    );
+    ascribe("DBOption2Footnote"         , &DBDictionary::DBOption2Footnote     
    );
+    ascribe("DBOption3Footnote"         , &DBDictionary::DBOption3Footnote     
    );
+    ascribe("MinDeathBenefitFootnote"   , 
&DBDictionary::MinDeathBenefitFootnote   );
+    ascribe("ExpRatRiskChargeFootnote"  , 
&DBDictionary::ExpRatRiskChargeFootnote  );
+    ascribe("ExchangeChargeFootnote1"   , 
&DBDictionary::ExchangeChargeFootnote1   );
+    ascribe("FlexiblePremiumFootnote"   , 
&DBDictionary::FlexiblePremiumFootnote   );
+    ascribe("GuaranteedValuesFootnote"  , 
&DBDictionary::GuaranteedValuesFootnote  );
+    ascribe("CreditingRateFootnote"     , &DBDictionary::CreditingRateFootnote 
    );
+// out of order    ascribe("DefnGuarGenAcctRate"       , &DBDictionary::
+    ascribe("GrossRateFootnote"         , &DBDictionary::GrossRateFootnote     
    );
+    ascribe("NetRateFootnote"           , &DBDictionary::NetRateFootnote       
    );
+    ascribe("MecFootnote"               , &DBDictionary::MecFootnote           
    );
+    ascribe("GptFootnote"               , &DBDictionary::GptFootnote           
    );
+    ascribe("MidpointValuesFootnote"    , 
&DBDictionary::MidpointValuesFootnote    );
+    ascribe("SinglePremiumFootnote"     , &DBDictionary::SinglePremiumFootnote 
    );
+    ascribe("MonthlyChargesFootnote"    , 
&DBDictionary::MonthlyChargesFootnote    );
+    ascribe("UltCreditingRateFootnote"  , 
&DBDictionary::UltCreditingRateFootnote  );
+    ascribe("UltCreditingRateHeader"    , 
&DBDictionary::UltCreditingRateHeader    );
+    ascribe("MaxNaarFootnote"           , &DBDictionary::MaxNaarFootnote       
    );
+    ascribe("PremTaxSurrChgFootnote"    , 
&DBDictionary::PremTaxSurrChgFootnote    );
+    ascribe("PolicyFeeFootnote"         , &DBDictionary::PolicyFeeFootnote     
    );
+    ascribe("AssetChargeFootnote"       , &DBDictionary::AssetChargeFootnote   
    );
+    ascribe("InvestmentIncomeFootnote"  , 
&DBDictionary::InvestmentIncomeFootnote  );
+    ascribe("IrrDbFootnote"             , &DBDictionary::IrrDbFootnote         
    );
+    ascribe("IrrCsvFootnote"            , &DBDictionary::IrrCsvFootnote        
    );
+    ascribe("MortalityChargesFootnote"  , 
&DBDictionary::MortalityChargesFootnote  );
+    ascribe("LoanAndWithdrawalFootnote" , 
&DBDictionary::LoanAndWithdrawalFootnote );
+    ascribe("LoanFootnote"              , &DBDictionary::LoanFootnote          
    );
+    ascribe("ImprimaturPresale"         , &DBDictionary::ImprimaturPresale     
    );
+    ascribe("ImprimaturPresaleComposite", 
&DBDictionary::ImprimaturPresaleComposite);
+    ascribe("ImprimaturInforce"         , &DBDictionary::ImprimaturInforce     
    );
+    ascribe("ImprimaturInforceComposite", 
&DBDictionary::ImprimaturInforceComposite);
+    ascribe("StateMarketingImprimatur"  , 
&DBDictionary::StateMarketingImprimatur  );
+    ascribe("NonGuaranteedFootnote"     , &DBDictionary::NonGuaranteedFootnote 
    );
+    ascribe("NonGuaranteedFootnote1"    , 
&DBDictionary::NonGuaranteedFootnote1    );
+    ascribe("NonGuaranteedFootnote1Tx"  , 
&DBDictionary::NonGuaranteedFootnote1Tx  );
+    ascribe("FnMonthlyDeductions"       , &DBDictionary::FnMonthlyDeductions   
    );
+    ascribe("SurrenderFootnote"         , &DBDictionary::SurrenderFootnote     
    );
+    ascribe("PortabilityFootnote"       , &DBDictionary::PortabilityFootnote   
    );
+    ascribe("FundRateFootnote"          , &DBDictionary::FundRateFootnote      
    );
+    ascribe("IssuingCompanyFootnote"    , 
&DBDictionary::IssuingCompanyFootnote    );
+    ascribe("SubsidiaryFootnote"        , &DBDictionary::SubsidiaryFootnote    
    );
+    ascribe("PlacementAgentFootnote"    , 
&DBDictionary::PlacementAgentFootnote    );
+    ascribe("MarketingNameFootnote"     , &DBDictionary::MarketingNameFootnote 
    );
+    ascribe("GuarIssueDisclaimerNcSc"   , 
&DBDictionary::GuarIssueDisclaimerNcSc   );
+    ascribe("GuarIssueDisclaimerMd"     , &DBDictionary::GuarIssueDisclaimerMd 
    );
+    ascribe("GuarIssueDisclaimerTx"     , &DBDictionary::GuarIssueDisclaimerTx 
    );
+    ascribe("IllRegCertAgent"           , &DBDictionary::IllRegCertAgent       
    );
+    ascribe("IllRegCertAgentIl"         , &DBDictionary::IllRegCertAgentIl     
    );
+    ascribe("IllRegCertAgentTx"         , &DBDictionary::IllRegCertAgentTx     
    );
+    ascribe("IllRegCertClient"          , &DBDictionary::IllRegCertClient      
    );
+    ascribe("IllRegCertClientIl"        , &DBDictionary::IllRegCertClientIl    
    );
+    ascribe("IllRegCertClientTx"        , &DBDictionary::IllRegCertClientTx    
    );
+    ascribe("FnMaturityAge"             , &DBDictionary::FnMaturityAge         
    );
+    ascribe("FnPartialMortality"        , &DBDictionary::FnPartialMortality    
    );
+    ascribe("FnProspectus"              , &DBDictionary::FnProspectus          
    );
+    ascribe("FnInitialSpecAmt"          , &DBDictionary::FnInitialSpecAmt      
    );
+    ascribe("FnInforceAcctVal"          , &DBDictionary::FnInforceAcctVal      
    );
+    ascribe("FnInforceTaxBasis"         , &DBDictionary::FnInforceTaxBasis     
    );
+    ascribe("Fn1035Charge"              , &DBDictionary::Fn1035Charge          
    );
+    ascribe("FnMecExtraWarning"         , &DBDictionary::FnMecExtraWarning     
    );
+    ascribe("FnNotTaxAdvice"            , &DBDictionary::FnNotTaxAdvice        
    );
+    ascribe("FnNotTaxAdvice2"           , &DBDictionary::FnNotTaxAdvice2       
    );
+    ascribe("FnImf"                     , &DBDictionary::FnImf                 
    );
+    ascribe("FnCensus"                  , &DBDictionary::FnCensus              
    );
+    ascribe("FnDacTax"                  , &DBDictionary::FnDacTax              
    );
+    ascribe("FnDefnLifeIns"             , &DBDictionary::FnDefnLifeIns         
    );
+    ascribe("FnBoyEoy"                  , &DBDictionary::FnBoyEoy              
    );
+    ascribe("FnGeneralAccount"          , &DBDictionary::FnGeneralAccount      
    );
+    ascribe("FnPpMemorandum"            , &DBDictionary::FnPpMemorandum        
    );
+    ascribe("FnPpAccreditedInvestor"    , 
&DBDictionary::FnPpAccreditedInvestor    );
+    ascribe("FnPpLoads"                 , &DBDictionary::FnPpLoads             
    );
+    ascribe("FnProposalUnderwriting"    , 
&DBDictionary::FnProposalUnderwriting    );
+    ascribe("FnGuaranteedPremium"       , &DBDictionary::FnGuaranteedPremium   
    );
+    ascribe("FnOmnibusDisclaimer"       , &DBDictionary::FnOmnibusDisclaimer   
    );
+    ascribe("FnInitialDbo"              , &DBDictionary::FnInitialDbo          
    );
+    ascribe("DefnGuarGenAcctRate"       , &DBDictionary::DefnGuarGenAcctRate   
    );
+    ascribe("DefnAV"                    , &DBDictionary::DefnAV                
    );
+    ascribe("DefnCSV"                   , &DBDictionary::DefnCSV               
    );
+    ascribe("DefnMec"                   , &DBDictionary::DefnMec               
    );
+    ascribe("DefnOutlay"                , &DBDictionary::DefnOutlay            
    );
+    ascribe("DefnSpecAmt"               , &DBDictionary::DefnSpecAmt           
    );
     ascribe("WeightClass"               , &DBDictionary::WeightClass           
    );
     ascribe("WeightGender"              , &DBDictionary::WeightGender          
    );
     ascribe("WeightSmoking"             , &DBDictionary::WeightSmoking         
    );
@@ -939,6 +1113,179 @@ sample::sample()
     policy_form[mce_s_KS] = superior::policy_form_KS_KY;
     policy_form[mce_s_KY] = superior::policy_form_KS_KY;
     Add({DB_PolicyForm, premium_tax_dimensions, policy_form});
+    Add({DB_PolicyFormAlternative      , superior::policy_form_alternative}); 
// LINGO !! expunge
+    Add({DB_PolicyMktgName             , superior::policy_mktg_name});
+    Add({DB_PolicyLegalName            , superior::policy_legal_name});
+    Add({DB_InsCoShortName             , superior::insco_short_name});
+    Add({DB_InsCoName                  , superior::insco_name});
+    Add({DB_InsCoAddr                  , superior::insco_addr});
+    Add({DB_InsCoStreet                , superior::insco_street});
+    Add({DB_InsCoPhone                 , superior::insco_phone});
+//  Add({DB_InsCoDomicile              , superior::insco_domicile}); // expunge
+    Add({DB_MainUnderwriter            , superior::main_underwriter});
+    Add({DB_MainUnderwriterAddress     , superior::main_underwriter_address});
+    Add({DB_CoUnderwriter              , superior::counderwriter});
+    Add({DB_CoUnderwriterAddress       , superior::counderwriter_address});
+    Add({DB_AvName                     , superior::av_name});
+    Add({DB_CsvName                    , superior::csv_name});
+    Add({DB_CsvHeaderName              , superior::csv_header_name});
+    Add({DB_NoLapseProvisionName       , superior::no_lapse_provision_name});
+    Add({DB_ContractName               , superior::contract_name});
+    Add({DB_DboName                    , superior::dbo_name});
+    Add({DB_DboNameLevel               , superior::dbo_name_level});
+    Add({DB_DboNameIncreasing          , superior::dbo_name_increasing});
+    Add({DB_DboNameReturnOfPremium     , 
superior::dbo_name_return_of_premium});
+    Add({DB_DboNameMinDeathBenefit     , 
superior::dbo_name_min_death_benefit});
+    Add({DB_GenAcctName                , superior::gen_acct_name});
+    Add({DB_GenAcctNameElaborated      , superior::gen_acct_name_elaborated});
+    Add({DB_SepAcctName                , superior::sep_acct_name});
+    Add({DB_SpecAmtName                , superior::spec_amt_name});
+    Add({DB_SpecAmtNameElaborated      , superior::spec_amt_name_elaborated});
+    Add({DB_UwBasisMedical             , superior::uw_basis_medical});
+    Add({DB_UwBasisParamedical         , superior::uw_basis_paramedical});
+    Add({DB_UwBasisNonmedical          , superior::uw_basis_nonmedical});
+    Add({DB_UwBasisSimplified          , superior::uw_basis_simplified});
+    Add({DB_UwBasisGuaranteed          , superior::uw_basis_guaranteed});
+    Add({DB_UwClassPreferred           , superior::uw_class_preferred});
+    Add({DB_UwClassStandard            , superior::uw_class_standard});
+    Add({DB_UwClassRated               , superior::uw_class_rated});
+    Add({DB_UwClassUltra               , superior::uw_class_ultra});
+    Add({DB_AccountValueFootnote       , superior::account_value_footnote});
+    Add({DB_AttainedAgeFootnote        , superior::attained_age_footnote});
+    Add({DB_CashSurrValueFootnote      , superior::cash_surr_value_footnote});
+    Add({DB_DeathBenefitFootnote       , superior::death_benefit_footnote});
+    Add({DB_InitialPremiumFootnote     , superior::initial_premium_footnote});
+    Add({DB_NetPremiumFootnote         , superior::net_premium_footnote});
+    Add({DB_GrossPremiumFootnote       , superior::gross_premium_footnote});
+    Add({DB_OutlayFootnote             , superior::outlay_footnote});
+    Add({DB_PolicyYearFootnote         , superior::policy_year_footnote});
+    Add({DB_ADDTerseName               , superior::add_terse_name});
+    Add({DB_InsurabilityTerseName      , superior::insurability_terse_name});
+    Add({DB_ChildTerseName             , superior::child_terse_name});
+    Add({DB_SpouseTerseName            , superior::spouse_terse_name});
+    Add({DB_TermTerseName              , superior::term_terse_name});
+    Add({DB_WaiverTerseName            , superior::waiver_terse_name});
+    Add({DB_AccelBftRiderTerseName     , 
superior::accel_bft_rider_terse_name});
+    Add({DB_OverloanRiderTerseName     , superior::overloan_rider_terse_name});
+    Add({DB_ADDFootnote                , superior::add_footnote});
+    Add({DB_ChildFootnote              , superior::child_footnote});
+    Add({DB_SpouseFootnote             , superior::spouse_footnote});
+    Add({DB_TermFootnote               , superior::term_footnote});
+    Add({DB_WaiverFootnote             , superior::waiver_footnote});
+    Add({DB_AccelBftRiderFootnote      , superior::accel_bft_rider_footnote});
+    Add({DB_OverloanRiderFootnote      , superior::overloan_rider_footnote});
+    Add({DB_GroupQuoteShortProductName , 
superior::group_quote_short_product_name});
+    Add({DB_GroupQuoteIsNotAnOffer     , 
superior::group_quote_is_not_an_offer});
+    Add({DB_GroupQuoteRidersFooter     , superior::group_quote_riders_footer});
+    Add({DB_GroupQuotePolicyFormId     , 
superior::group_quote_policy_form_id});
+    Add({DB_GroupQuoteStateVariations  , 
superior::group_quote_state_variations});
+    Add({DB_GroupQuoteProspectus       , superior::group_quote_prospectus});
+    Add({DB_GroupQuoteUnderwriter      , superior::group_quote_underwriter});
+    Add({DB_GroupQuoteBrokerDealer     , superior::group_quote_broker_dealer});
+    Add({DB_GroupQuoteRubricMandatory  , 
superior::group_quote_rubric_mandatory});
+    Add({DB_GroupQuoteRubricVoluntary  , 
superior::group_quote_rubric_voluntary});
+    Add({DB_GroupQuoteRubricFusion     , superior::group_quote_rubric_fusion});
+    Add({DB_GroupQuoteFooterMandatory  , 
superior::group_quote_footer_mandatory});
+    Add({DB_GroupQuoteFooterVoluntary  , 
superior::group_quote_footer_voluntary});
+    Add({DB_GroupQuoteFooterFusion     , superior::group_quote_footer_fusion});
+    Add({DB_MinimumPremiumFootnote     , superior::minimum_premium_footnote});
+    Add({DB_PremAllocationFootnote     , superior::prem_allocation_footnote});
+    Add({DB_InterestDisclaimer         , superior::interest_disclaimer});
+    Add({DB_GuarMortalityFootnote      , superior::guar_mortality_footnote});
+    Add({DB_ProductDescription         , superior::product_description});
+    Add({DB_StableValueFootnote        , superior::stable_value_footnote});
+    Add({DB_NoVanishPremiumFootnote    , 
superior::no_vanish_premium_footnote});
+    Add({DB_RejectPremiumFootnote      , superior::reject_premium_footnote});
+    Add({DB_ExpRatingFootnote          , superior::exp_rating_footnote});
+    Add({DB_MortalityBlendFootnote     , superior::mortality_blend_footnote});
+    Add({DB_HypotheticalRatesFootnote  , 
superior::hypothetical_rates_footnote});
+    Add({DB_SalesLoadRefundFootnote    , 
superior::sales_load_refund_footnote});
+    Add({DB_NoLapseEverFootnote        , superior::no_lapse_ever_footnote});
+    Add({DB_NoLapseFootnote            , superior::no_lapse_footnote});
+    Add({DB_CurrentValuesFootnote      , superior::current_values_footnote});
+    Add({DB_DBOption1Footnote          , superior::dbo1_footnote});
+    Add({DB_DBOption2Footnote          , superior::dbo2_footnote});
+    Add({DB_DBOption3Footnote          , superior::dbo3_footnote});
+    Add({DB_MinDeathBenefitFootnote    , 
superior::min_death_benefit_footnote});
+    Add({DB_ExpRatRiskChargeFootnote   , 
superior::exp_rat_risk_charge_footnote});
+    Add({DB_ExchangeChargeFootnote1    , superior::exchange_charge_footnote1});
+    Add({DB_FlexiblePremiumFootnote    , superior::flexible_premium_footnote});
+    Add({DB_GuaranteedValuesFootnote   , 
superior::guaranteed_values_footnote});
+    Add({DB_CreditingRateFootnote      , superior::crediting_rate_footnote});
+// out of order    Add({DB_DefnGuarGenAcctRate        , 
superior::defn_guar_gen_acct_rate});
+    Add({DB_GrossRateFootnote          , superior::gross_rate_footnote});
+    Add({DB_NetRateFootnote            , superior::net_rate_footnote});
+    Add({DB_MecFootnote                , superior::mec_footnote});
+    Add({DB_GptFootnote                , superior::gpt_footnote});
+    Add({DB_MidpointValuesFootnote     , superior::midpoint_values_footnote});
+    Add({DB_SinglePremiumFootnote      , superior::single_premium_footnote});
+    Add({DB_MonthlyChargesFootnote     , superior::monthly_charges_footnote});
+    Add({DB_UltCreditingRateFootnote   , 
superior::ult_crediting_rate_footnote});
+    Add({DB_UltCreditingRateHeader     , superior::ult_crediting_rate_header});
+    Add({DB_MaxNaarFootnote            , superior::max_naar_footnote});
+    Add({DB_PremTaxSurrChgFootnote     , 
superior::prem_tax_surr_chg_footnote});
+    Add({DB_PolicyFeeFootnote          , superior::policy_fee_footnote});
+    Add({DB_AssetChargeFootnote        , superior::asset_charge_footnote});
+    Add({DB_InvestmentIncomeFootnote   , 
superior::investment_income_footnote});
+    Add({DB_IrrDbFootnote              , superior::irr_db_footnote});
+    Add({DB_IrrCsvFootnote             , superior::irr_csv_footnote});
+    Add({DB_MortalityChargesFootnote   , 
superior::mortality_charges_footnote});
+    Add({DB_LoanAndWithdrawalFootnote  , 
superior::loan_and_withdrawal_footnote});
+    Add({DB_LoanFootnote               , superior::loan_footnote});
+    Add({DB_ImprimaturPresale          , superior::imprimatur_presale});
+    Add({DB_ImprimaturPresaleComposite , 
superior::imprimatur_presale_composite});
+    Add({DB_ImprimaturInforce          , superior::imprimatur_inforce});
+    Add({DB_ImprimaturInforceComposite , 
superior::imprimatur_inforce_composite});
+    Add({DB_StateMarketingImprimatur   , 
superior::state_marketing_imprimatur});
+    Add({DB_NonGuaranteedFootnote      , superior::non_guaranteed_footnote});
+    Add({DB_NonGuaranteedFootnote1     , superior::non_guaranteed_footnote1});
+    Add({DB_NonGuaranteedFootnote1Tx   , 
superior::non_guaranteed_footnote1tx});
+    Add({DB_FnMonthlyDeductions        , superior::fn_monthly_deductions});
+    Add({DB_SurrenderFootnote          , superior::surrender_footnote});
+    Add({DB_PortabilityFootnote        , superior::portability_footnote});
+    Add({DB_FundRateFootnote           , superior::fund_rate_footnote});
+    Add({DB_IssuingCompanyFootnote     , superior::issuing_company_footnote});
+    Add({DB_SubsidiaryFootnote         , superior::subsidiary_footnote});
+    Add({DB_PlacementAgentFootnote     , superior::placement_agent_footnote});
+    Add({DB_MarketingNameFootnote      , superior::marketing_name_footnote});
+    Add({DB_GuarIssueDisclaimerNcSc    , 
superior::guar_issue_disclaimer_nc_sc});
+    Add({DB_GuarIssueDisclaimerMd      , superior::guar_issue_disclaimer_md});
+    Add({DB_GuarIssueDisclaimerTx      , superior::guar_issue_disclaimer_tx});
+    Add({DB_IllRegCertAgent            , superior::ill_reg_cert_agent});
+    Add({DB_IllRegCertAgentIl          , superior::ill_reg_cert_agent_il});
+    Add({DB_IllRegCertAgentTx          , superior::ill_reg_cert_agent_tx});
+    Add({DB_IllRegCertClient           , superior::ill_reg_cert_client});
+    Add({DB_IllRegCertClientIl         , superior::ill_reg_cert_client_il});
+    Add({DB_IllRegCertClientTx         , superior::ill_reg_cert_client_tx});
+    Add({DB_FnMaturityAge              , superior::fn_maturity_age});
+    Add({DB_FnPartialMortality         , superior::fn_partial_mortality});
+    Add({DB_FnProspectus               , superior::fn_prospectus});
+    Add({DB_FnInitialSpecAmt           , superior::fn_initial_spec_amt});
+    Add({DB_FnInforceAcctVal           , superior::fn_inforce_acct_val});
+    Add({DB_FnInforceTaxBasis          , superior::fn_inforce_tax_basis});
+    Add({DB_Fn1035Charge               , superior::fn1035charge});
+    Add({DB_FnMecExtraWarning          , superior::fn_mec_extra_warning});
+    Add({DB_FnNotTaxAdvice             , superior::fn_not_tax_advice});
+    Add({DB_FnNotTaxAdvice2            , superior::fn_not_tax_advice2});
+    Add({DB_FnImf                      , superior::fn_imf});
+    Add({DB_FnCensus                   , superior::fn_census});
+    Add({DB_FnDacTax                   , superior::fn_dac_tax});
+    Add({DB_FnDefnLifeIns              , superior::fn_defn_life_ins});
+    Add({DB_FnBoyEoy                   , superior::fn_boy_eoy});
+    Add({DB_FnGeneralAccount           , superior::fn_general_account});
+    Add({DB_FnPpMemorandum             , superior::fn_pp_memorandum});
+    Add({DB_FnPpAccreditedInvestor     , superior::fn_pp_accredited_investor});
+    Add({DB_FnPpLoads                  , superior::fn_pp_loads});
+    Add({DB_FnProposalUnderwriting     , superior::fn_proposal_underwriting});
+    Add({DB_FnGuaranteedPremium        , superior::fn_guaranteed_premium});
+    Add({DB_FnOmnibusDisclaimer        , superior::fn_omnibus_disclaimer});
+    Add({DB_FnInitialDbo               , superior::fn_initial_dbo});
+    Add({DB_DefnGuarGenAcctRate        , superior::defn_guar_gen_acct_rate});
+    Add({DB_DefnAV                     , superior::defn_av});
+    Add({DB_DefnCSV                    , superior::defn_csv});
+    Add({DB_DefnMec                    , superior::defn_mec});
+    Add({DB_DefnOutlay                 , superior::defn_outlay});
+    Add({DB_DefnSpecAmt                , superior::defn_spec_amt});
 }
 
 sample2::sample2()
@@ -971,6 +1318,10 @@ sample2gpp::sample2gpp()
 sample2ipp::sample2ipp()
 {
     Add({DB_LedgerType          , mce_individual_private_placement});
+    Add({DB_IrrDbFootnote            , superior::poe_0});
+    Add({DB_IrrCsvFootnote           , superior::poe_1});
+    Add({DB_MortalityChargesFootnote , superior::poe_2});
+    Add({DB_PolicyYearFootnote       , superior::poe_3});
 }
 
 sample2xyz::sample2xyz()
diff --git a/dbdict.hpp b/dbdict.hpp
index c0679ac..17ea4bd 100644
--- a/dbdict.hpp
+++ b/dbdict.hpp
@@ -404,6 +404,179 @@ class LMI_SO DBDictionary
     database_entity UsePolicyFormAlt          ; // LINGO !! expunge
     database_entity AllowGroupQuote           ;
     database_entity PolicyForm                ;
+    database_entity PolicyFormAlternative     ; // LINGO !! expunge
+    database_entity PolicyMktgName            ;
+    database_entity PolicyLegalName           ;
+    database_entity InsCoShortName            ;
+    database_entity InsCoName                 ;
+    database_entity InsCoAddr                 ;
+    database_entity InsCoStreet               ;
+    database_entity InsCoPhone                ;
+//  database_entity InsCoDomicile             ; // expunge
+    database_entity MainUnderwriter           ;
+    database_entity MainUnderwriterAddress    ;
+    database_entity CoUnderwriter             ;
+    database_entity CoUnderwriterAddress      ;
+    database_entity AvName                    ;
+    database_entity CsvName                   ;
+    database_entity CsvHeaderName             ;
+    database_entity NoLapseProvisionName      ;
+    database_entity ContractName              ;
+    database_entity DboName                   ;
+    database_entity DboNameLevel              ;
+    database_entity DboNameIncreasing         ;
+    database_entity DboNameReturnOfPremium    ;
+    database_entity DboNameMinDeathBenefit    ;
+    database_entity GenAcctName               ;
+    database_entity GenAcctNameElaborated     ;
+    database_entity SepAcctName               ;
+    database_entity SpecAmtName               ;
+    database_entity SpecAmtNameElaborated     ;
+    database_entity UwBasisMedical            ;
+    database_entity UwBasisParamedical        ;
+    database_entity UwBasisNonmedical         ;
+    database_entity UwBasisSimplified         ;
+    database_entity UwBasisGuaranteed         ;
+    database_entity UwClassPreferred          ;
+    database_entity UwClassStandard           ;
+    database_entity UwClassRated              ;
+    database_entity UwClassUltra              ;
+    database_entity AccountValueFootnote      ;
+    database_entity AttainedAgeFootnote       ;
+    database_entity CashSurrValueFootnote     ;
+    database_entity DeathBenefitFootnote      ;
+    database_entity InitialPremiumFootnote    ;
+    database_entity NetPremiumFootnote        ;
+    database_entity GrossPremiumFootnote      ;
+    database_entity OutlayFootnote            ;
+    database_entity PolicyYearFootnote        ;
+    database_entity ADDTerseName              ;
+    database_entity InsurabilityTerseName     ;
+    database_entity ChildTerseName            ;
+    database_entity SpouseTerseName           ;
+    database_entity TermTerseName             ;
+    database_entity WaiverTerseName           ;
+    database_entity AccelBftRiderTerseName    ;
+    database_entity OverloanRiderTerseName    ;
+    database_entity ADDFootnote               ;
+    database_entity ChildFootnote             ;
+    database_entity SpouseFootnote            ;
+    database_entity TermFootnote              ;
+    database_entity WaiverFootnote            ;
+    database_entity AccelBftRiderFootnote     ;
+    database_entity OverloanRiderFootnote     ;
+    database_entity GroupQuoteShortProductName;
+    database_entity GroupQuoteIsNotAnOffer    ;
+    database_entity GroupQuoteRidersFooter    ;
+    database_entity GroupQuotePolicyFormId    ;
+    database_entity GroupQuoteStateVariations ;
+    database_entity GroupQuoteProspectus      ;
+    database_entity GroupQuoteUnderwriter     ;
+    database_entity GroupQuoteBrokerDealer    ;
+    database_entity GroupQuoteRubricMandatory ;
+    database_entity GroupQuoteRubricVoluntary ;
+    database_entity GroupQuoteRubricFusion    ;
+    database_entity GroupQuoteFooterMandatory ;
+    database_entity GroupQuoteFooterVoluntary ;
+    database_entity GroupQuoteFooterFusion    ;
+    database_entity MinimumPremiumFootnote    ;
+    database_entity PremAllocationFootnote    ;
+    database_entity InterestDisclaimer        ;
+    database_entity GuarMortalityFootnote     ;
+    database_entity ProductDescription        ;
+    database_entity StableValueFootnote       ;
+    database_entity NoVanishPremiumFootnote   ;
+    database_entity RejectPremiumFootnote     ;
+    database_entity ExpRatingFootnote         ;
+    database_entity MortalityBlendFootnote    ;
+    database_entity HypotheticalRatesFootnote ;
+    database_entity SalesLoadRefundFootnote   ;
+    database_entity NoLapseEverFootnote       ;
+    database_entity NoLapseFootnote           ;
+    database_entity CurrentValuesFootnote     ;
+    database_entity DBOption1Footnote         ;
+    database_entity DBOption2Footnote         ;
+    database_entity DBOption3Footnote         ;
+    database_entity MinDeathBenefitFootnote   ;
+    database_entity ExpRatRiskChargeFootnote  ;
+    database_entity ExchangeChargeFootnote1   ;
+    database_entity FlexiblePremiumFootnote   ;
+    database_entity GuaranteedValuesFootnote  ;
+    database_entity CreditingRateFootnote     ;
+// out of order    database_entity DefnGuarGenAcctRate       ;
+    database_entity GrossRateFootnote         ;
+    database_entity NetRateFootnote           ;
+    database_entity MecFootnote               ;
+    database_entity GptFootnote               ;
+    database_entity MidpointValuesFootnote    ;
+    database_entity SinglePremiumFootnote     ;
+    database_entity MonthlyChargesFootnote    ;
+    database_entity UltCreditingRateFootnote  ;
+    database_entity UltCreditingRateHeader    ;
+    database_entity MaxNaarFootnote           ;
+    database_entity PremTaxSurrChgFootnote    ;
+    database_entity PolicyFeeFootnote         ;
+    database_entity AssetChargeFootnote       ;
+    database_entity InvestmentIncomeFootnote  ;
+    database_entity IrrDbFootnote             ;
+    database_entity IrrCsvFootnote            ;
+    database_entity MortalityChargesFootnote  ;
+    database_entity LoanAndWithdrawalFootnote ;
+    database_entity LoanFootnote              ;
+    database_entity ImprimaturPresale         ;
+    database_entity ImprimaturPresaleComposite;
+    database_entity ImprimaturInforce         ;
+    database_entity ImprimaturInforceComposite;
+    database_entity StateMarketingImprimatur  ;
+    database_entity NonGuaranteedFootnote     ;
+    database_entity NonGuaranteedFootnote1    ;
+    database_entity NonGuaranteedFootnote1Tx  ;
+    database_entity FnMonthlyDeductions       ;
+    database_entity SurrenderFootnote         ;
+    database_entity PortabilityFootnote       ;
+    database_entity FundRateFootnote          ;
+    database_entity IssuingCompanyFootnote    ;
+    database_entity SubsidiaryFootnote        ;
+    database_entity PlacementAgentFootnote    ;
+    database_entity MarketingNameFootnote     ;
+    database_entity GuarIssueDisclaimerNcSc   ;
+    database_entity GuarIssueDisclaimerMd     ;
+    database_entity GuarIssueDisclaimerTx     ;
+    database_entity IllRegCertAgent           ;
+    database_entity IllRegCertAgentIl         ;
+    database_entity IllRegCertAgentTx         ;
+    database_entity IllRegCertClient          ;
+    database_entity IllRegCertClientIl        ;
+    database_entity IllRegCertClientTx        ;
+    database_entity FnMaturityAge             ;
+    database_entity FnPartialMortality        ;
+    database_entity FnProspectus              ;
+    database_entity FnInitialSpecAmt          ;
+    database_entity FnInforceAcctVal          ;
+    database_entity FnInforceTaxBasis         ;
+    database_entity Fn1035Charge              ;
+    database_entity FnMecExtraWarning         ;
+    database_entity FnNotTaxAdvice            ;
+    database_entity FnNotTaxAdvice2           ;
+    database_entity FnImf                     ;
+    database_entity FnCensus                  ;
+    database_entity FnDacTax                  ;
+    database_entity FnDefnLifeIns             ;
+    database_entity FnBoyEoy                  ;
+    database_entity FnGeneralAccount          ;
+    database_entity FnPpMemorandum            ;
+    database_entity FnPpAccreditedInvestor    ;
+    database_entity FnPpLoads                 ;
+    database_entity FnProposalUnderwriting    ;
+    database_entity FnGuaranteedPremium       ;
+    database_entity FnOmnibusDisclaimer       ;
+    database_entity FnInitialDbo              ;
+    database_entity DefnGuarGenAcctRate       ;
+    database_entity DefnAV                    ;
+    database_entity DefnCSV                   ;
+    database_entity DefnMec                   ;
+    database_entity DefnOutlay                ;
+    database_entity DefnSpecAmt               ;
     database_entity WeightClass               ;
     database_entity WeightGender              ;
     database_entity WeightSmoking             ;
diff --git a/dbnames.hpp b/dbnames.hpp
index c5bf7a0..dea6d21 100644
--- a/dbnames.hpp
+++ b/dbnames.hpp
@@ -530,6 +530,179 @@ enum e_database_key
     ,DB_Topic_Lingo
 
         ,DB_PolicyForm
+        ,DB_PolicyFormAlternative // LINGO !! expunge
+        ,DB_PolicyMktgName
+        ,DB_PolicyLegalName
+        ,DB_InsCoShortName
+        ,DB_InsCoName
+        ,DB_InsCoAddr
+        ,DB_InsCoStreet
+        ,DB_InsCoPhone
+//      ,DB_InsCoDomicile // expunge
+        ,DB_MainUnderwriter
+        ,DB_MainUnderwriterAddress
+        ,DB_CoUnderwriter
+        ,DB_CoUnderwriterAddress
+        ,DB_AvName
+        ,DB_CsvName
+        ,DB_CsvHeaderName
+        ,DB_NoLapseProvisionName
+        ,DB_ContractName
+        ,DB_DboName
+        ,DB_DboNameLevel
+        ,DB_DboNameIncreasing
+        ,DB_DboNameReturnOfPremium
+        ,DB_DboNameMinDeathBenefit
+        ,DB_GenAcctName
+        ,DB_GenAcctNameElaborated
+        ,DB_SepAcctName
+        ,DB_SpecAmtName
+        ,DB_SpecAmtNameElaborated
+        ,DB_UwBasisMedical
+        ,DB_UwBasisParamedical
+        ,DB_UwBasisNonmedical
+        ,DB_UwBasisSimplified
+        ,DB_UwBasisGuaranteed
+        ,DB_UwClassPreferred
+        ,DB_UwClassStandard
+        ,DB_UwClassRated
+        ,DB_UwClassUltra
+        ,DB_AccountValueFootnote
+        ,DB_AttainedAgeFootnote
+        ,DB_CashSurrValueFootnote
+        ,DB_DeathBenefitFootnote
+        ,DB_InitialPremiumFootnote
+        ,DB_NetPremiumFootnote
+        ,DB_GrossPremiumFootnote
+        ,DB_OutlayFootnote
+        ,DB_PolicyYearFootnote
+        ,DB_ADDTerseName
+        ,DB_InsurabilityTerseName
+        ,DB_ChildTerseName
+        ,DB_SpouseTerseName
+        ,DB_TermTerseName
+        ,DB_WaiverTerseName
+        ,DB_AccelBftRiderTerseName
+        ,DB_OverloanRiderTerseName
+        ,DB_ADDFootnote
+        ,DB_ChildFootnote
+        ,DB_SpouseFootnote
+        ,DB_TermFootnote
+        ,DB_WaiverFootnote
+        ,DB_AccelBftRiderFootnote
+        ,DB_OverloanRiderFootnote
+        ,DB_GroupQuoteShortProductName
+        ,DB_GroupQuoteIsNotAnOffer
+        ,DB_GroupQuoteRidersFooter
+        ,DB_GroupQuotePolicyFormId
+        ,DB_GroupQuoteStateVariations
+        ,DB_GroupQuoteProspectus
+        ,DB_GroupQuoteUnderwriter
+        ,DB_GroupQuoteBrokerDealer
+        ,DB_GroupQuoteRubricMandatory
+        ,DB_GroupQuoteRubricVoluntary
+        ,DB_GroupQuoteRubricFusion
+        ,DB_GroupQuoteFooterMandatory
+        ,DB_GroupQuoteFooterVoluntary
+        ,DB_GroupQuoteFooterFusion
+        ,DB_MinimumPremiumFootnote
+        ,DB_PremAllocationFootnote
+        ,DB_InterestDisclaimer
+        ,DB_GuarMortalityFootnote
+        ,DB_ProductDescription
+        ,DB_StableValueFootnote
+        ,DB_NoVanishPremiumFootnote
+        ,DB_RejectPremiumFootnote
+        ,DB_ExpRatingFootnote
+        ,DB_MortalityBlendFootnote
+        ,DB_HypotheticalRatesFootnote
+        ,DB_SalesLoadRefundFootnote
+        ,DB_NoLapseEverFootnote
+        ,DB_NoLapseFootnote
+        ,DB_CurrentValuesFootnote
+        ,DB_DBOption1Footnote
+        ,DB_DBOption2Footnote
+        ,DB_DBOption3Footnote
+        ,DB_MinDeathBenefitFootnote
+        ,DB_ExpRatRiskChargeFootnote
+        ,DB_ExchangeChargeFootnote1
+        ,DB_FlexiblePremiumFootnote
+        ,DB_GuaranteedValuesFootnote
+        ,DB_CreditingRateFootnote
+//      ,DB_DefnGuarGenAcctRate // out of order
+        ,DB_GrossRateFootnote
+        ,DB_NetRateFootnote
+        ,DB_MecFootnote
+        ,DB_GptFootnote
+        ,DB_MidpointValuesFootnote
+        ,DB_SinglePremiumFootnote
+        ,DB_MonthlyChargesFootnote
+        ,DB_UltCreditingRateFootnote
+        ,DB_UltCreditingRateHeader
+        ,DB_MaxNaarFootnote
+        ,DB_PremTaxSurrChgFootnote
+        ,DB_PolicyFeeFootnote
+        ,DB_AssetChargeFootnote
+        ,DB_InvestmentIncomeFootnote
+        ,DB_IrrDbFootnote
+        ,DB_IrrCsvFootnote
+        ,DB_MortalityChargesFootnote
+        ,DB_LoanAndWithdrawalFootnote
+        ,DB_LoanFootnote
+        ,DB_ImprimaturPresale
+        ,DB_ImprimaturPresaleComposite
+        ,DB_ImprimaturInforce
+        ,DB_ImprimaturInforceComposite
+        ,DB_StateMarketingImprimatur
+        ,DB_NonGuaranteedFootnote
+        ,DB_NonGuaranteedFootnote1
+        ,DB_NonGuaranteedFootnote1Tx
+        ,DB_FnMonthlyDeductions
+        ,DB_SurrenderFootnote
+        ,DB_PortabilityFootnote
+        ,DB_FundRateFootnote
+        ,DB_IssuingCompanyFootnote
+        ,DB_SubsidiaryFootnote
+        ,DB_PlacementAgentFootnote
+        ,DB_MarketingNameFootnote
+        ,DB_GuarIssueDisclaimerNcSc
+        ,DB_GuarIssueDisclaimerMd
+        ,DB_GuarIssueDisclaimerTx
+        ,DB_IllRegCertAgent
+        ,DB_IllRegCertAgentIl
+        ,DB_IllRegCertAgentTx
+        ,DB_IllRegCertClient
+        ,DB_IllRegCertClientIl
+        ,DB_IllRegCertClientTx
+        ,DB_FnMaturityAge
+        ,DB_FnPartialMortality
+        ,DB_FnProspectus
+        ,DB_FnInitialSpecAmt
+        ,DB_FnInforceAcctVal
+        ,DB_FnInforceTaxBasis
+        ,DB_Fn1035Charge
+        ,DB_FnMecExtraWarning
+        ,DB_FnNotTaxAdvice
+        ,DB_FnNotTaxAdvice2
+        ,DB_FnImf
+        ,DB_FnCensus
+        ,DB_FnDacTax
+        ,DB_FnDefnLifeIns
+        ,DB_FnBoyEoy
+        ,DB_FnGeneralAccount
+        ,DB_FnPpMemorandum
+        ,DB_FnPpAccreditedInvestor
+        ,DB_FnPpLoads
+        ,DB_FnProposalUnderwriting
+        ,DB_FnGuaranteedPremium
+        ,DB_FnOmnibusDisclaimer
+        ,DB_FnInitialDbo
+        ,DB_DefnGuarGenAcctRate
+        ,DB_DefnAV
+        ,DB_DefnCSV
+        ,DB_DefnMec
+        ,DB_DefnOutlay
+        ,DB_DefnSpecAmt
 
     ,DB_Topic_Weights
 
diff --git a/dbnames.xpp b/dbnames.xpp
index c871302..e3e79fe 100644
--- a/dbnames.xpp
+++ b/dbnames.xpp
@@ -358,6 +358,177 @@
 {DB_AllowGroupQuote,DB_Topic_Miscellanea,"AllowGroupQuote","Allow group 
premium quotes: 0=no, 1=yes",}, \
 {DB_Topic_Lingo,DB_FIRST,"Lingo","Text to be dropped into report templates: 
index into lingo file",}, \
 {DB_PolicyForm,DB_Topic_Lingo,"PolicyForm","Policy form",}, \
+{DB_PolicyFormAlternative,DB_Topic_Lingo,"PolicyFormAlternative","LINGO !! 
expunge",}, \
+{DB_PolicyMktgName,DB_Topic_Lingo,"PolicyMktgName","PolicyMktgName",}, \
+{DB_PolicyLegalName,DB_Topic_Lingo,"PolicyLegalName","PolicyLegalName",}, \
+{DB_InsCoShortName,DB_Topic_Lingo,"InsCoShortName","InsCoShortName",}, \
+{DB_InsCoName,DB_Topic_Lingo,"InsCoName","InsCoName",}, \
+{DB_InsCoAddr,DB_Topic_Lingo,"InsCoAddr","InsCoAddr",}, \
+{DB_InsCoStreet,DB_Topic_Lingo,"InsCoStreet","InsCoStreet",}, \
+{DB_InsCoPhone,DB_Topic_Lingo,"InsCoPhone","InsCoPhone",}, \
+{DB_MainUnderwriter,DB_Topic_Lingo,"MainUnderwriter","MainUnderwriter",}, \
+{DB_MainUnderwriterAddress,DB_Topic_Lingo,"MainUnderwriterAddress","MainUnderwriterAddress",},
 \
+{DB_CoUnderwriter,DB_Topic_Lingo,"CoUnderwriter","CoUnderwriter",}, \
+{DB_CoUnderwriterAddress,DB_Topic_Lingo,"CoUnderwriterAddress","CoUnderwriterAddress",},
 \
+{DB_AvName,DB_Topic_Lingo,"AvName","AvName",}, \
+{DB_CsvName,DB_Topic_Lingo,"CsvName","CsvName",}, \
+{DB_CsvHeaderName,DB_Topic_Lingo,"CsvHeaderName","CsvHeaderName",}, \
+{DB_NoLapseProvisionName,DB_Topic_Lingo,"NoLapseProvisionName","NoLapseProvisionName",},
 \
+{DB_ContractName,DB_Topic_Lingo,"ContractName","ContractName",}, \
+{DB_DboName,DB_Topic_Lingo,"DboName","DboName",}, \
+{DB_DboNameLevel,DB_Topic_Lingo,"DboNameLevel","DboNameLevel",}, \
+{DB_DboNameIncreasing,DB_Topic_Lingo,"DboNameIncreasing","DboNameIncreasing",},
 \
+{DB_DboNameReturnOfPremium,DB_Topic_Lingo,"DboNameReturnOfPremium","DboNameReturnOfPremium",},
 \
+{DB_DboNameMinDeathBenefit,DB_Topic_Lingo,"DboNameMinDeathBenefit","DboNameMinDeathBenefit",},
 \
+{DB_GenAcctName,DB_Topic_Lingo,"GenAcctName","GenAcctName",}, \
+{DB_GenAcctNameElaborated,DB_Topic_Lingo,"GenAcctNameElaborated","GenAcctNameElaborated",},
 \
+{DB_SepAcctName,DB_Topic_Lingo,"SepAcctName","SepAcctName",}, \
+{DB_SpecAmtName,DB_Topic_Lingo,"SpecAmtName","SpecAmtName",}, \
+{DB_SpecAmtNameElaborated,DB_Topic_Lingo,"SpecAmtNameElaborated","SpecAmtNameElaborated",},
 \
+{DB_UwBasisMedical,DB_Topic_Lingo,"UwBasisMedical","UwBasisMedical",}, \
+{DB_UwBasisParamedical,DB_Topic_Lingo,"UwBasisParamedical","UwBasisParamedical",},
 \
+{DB_UwBasisNonmedical,DB_Topic_Lingo,"UwBasisNonmedical","UwBasisNonmedical",},
 \
+{DB_UwBasisSimplified,DB_Topic_Lingo,"UwBasisSimplified","UwBasisSimplified",},
 \
+{DB_UwBasisGuaranteed,DB_Topic_Lingo,"UwBasisGuaranteed","UwBasisGuaranteed",},
 \
+{DB_UwClassPreferred,DB_Topic_Lingo,"UwClassPreferred","UwClassPreferred",}, \
+{DB_UwClassStandard,DB_Topic_Lingo,"UwClassStandard","UwClassStandard",}, \
+{DB_UwClassRated,DB_Topic_Lingo,"UwClassRated","UwClassRated",}, \
+{DB_UwClassUltra,DB_Topic_Lingo,"UwClassUltra","UwClassUltra",}, \
+{DB_AccountValueFootnote,DB_Topic_Lingo,"AccountValueFootnote","AccountValueFootnote",},
 \
+{DB_AttainedAgeFootnote,DB_Topic_Lingo,"AttainedAgeFootnote","AttainedAgeFootnote",},
 \
+{DB_CashSurrValueFootnote,DB_Topic_Lingo,"CashSurrValueFootnote","CashSurrValueFootnote",},
 \
+{DB_DeathBenefitFootnote,DB_Topic_Lingo,"DeathBenefitFootnote","DeathBenefitFootnote",},
 \
+{DB_InitialPremiumFootnote,DB_Topic_Lingo,"InitialPremiumFootnote","InitialPremiumFootnote",},
 \
+{DB_NetPremiumFootnote,DB_Topic_Lingo,"NetPremiumFootnote","NetPremiumFootnote",},
 \
+{DB_GrossPremiumFootnote,DB_Topic_Lingo,"GrossPremiumFootnote","GrossPremiumFootnote",},
 \
+{DB_OutlayFootnote,DB_Topic_Lingo,"OutlayFootnote","OutlayFootnote",}, \
+{DB_PolicyYearFootnote,DB_Topic_Lingo,"PolicyYearFootnote","PolicyYearFootnote",},
 \
+{DB_ADDTerseName,DB_Topic_Lingo,"ADDTerseName","ADDTerseName",}, \
+{DB_InsurabilityTerseName,DB_Topic_Lingo,"InsurabilityTerseName","InsurabilityTerseName",},
 \
+{DB_ChildTerseName,DB_Topic_Lingo,"ChildTerseName","ChildTerseName",}, \
+{DB_SpouseTerseName,DB_Topic_Lingo,"SpouseTerseName","SpouseTerseName",}, \
+{DB_TermTerseName,DB_Topic_Lingo,"TermTerseName","TermTerseName",}, \
+{DB_WaiverTerseName,DB_Topic_Lingo,"WaiverTerseName","WaiverTerseName",}, \
+{DB_AccelBftRiderTerseName,DB_Topic_Lingo,"AccelBftRiderTerseName","AccelBftRiderTerseName",},
 \
+{DB_OverloanRiderTerseName,DB_Topic_Lingo,"OverloanRiderTerseName","OverloanRiderTerseName",},
 \
+{DB_ADDFootnote,DB_Topic_Lingo,"ADDFootnote","ADDFootnote",}, \
+{DB_ChildFootnote,DB_Topic_Lingo,"ChildFootnote","ChildFootnote",}, \
+{DB_SpouseFootnote,DB_Topic_Lingo,"SpouseFootnote","SpouseFootnote",}, \
+{DB_TermFootnote,DB_Topic_Lingo,"TermFootnote","TermFootnote",}, \
+{DB_WaiverFootnote,DB_Topic_Lingo,"WaiverFootnote","WaiverFootnote",}, \
+{DB_AccelBftRiderFootnote,DB_Topic_Lingo,"AccelBftRiderFootnote","AccelBftRiderFootnote",},
 \
+{DB_OverloanRiderFootnote,DB_Topic_Lingo,"OverloanRiderFootnote","OverloanRiderFootnote",},
 \
+{DB_GroupQuoteShortProductName,DB_Topic_Lingo,"GroupQuoteShortProductName","GroupQuoteShortProductName",},
 \
+{DB_GroupQuoteIsNotAnOffer,DB_Topic_Lingo,"GroupQuoteIsNotAnOffer","GroupQuoteIsNotAnOffer",},
 \
+{DB_GroupQuoteRidersFooter,DB_Topic_Lingo,"GroupQuoteRidersFooter","GroupQuoteRidersFooter",},
 \
+{DB_GroupQuotePolicyFormId,DB_Topic_Lingo,"GroupQuotePolicyFormId","GroupQuotePolicyFormId",},
 \
+{DB_GroupQuoteStateVariations,DB_Topic_Lingo,"GroupQuoteStateVariations","GroupQuoteStateVariations",},
 \
+{DB_GroupQuoteProspectus,DB_Topic_Lingo,"GroupQuoteProspectus","GroupQuoteProspectus",},
 \
+{DB_GroupQuoteUnderwriter,DB_Topic_Lingo,"GroupQuoteUnderwriter","GroupQuoteUnderwriter",},
 \
+{DB_GroupQuoteBrokerDealer,DB_Topic_Lingo,"GroupQuoteBrokerDealer","GroupQuoteBrokerDealer",},
 \
+{DB_GroupQuoteRubricMandatory,DB_Topic_Lingo,"GroupQuoteRubricMandatory","GroupQuoteRubricMandatory",},
 \
+{DB_GroupQuoteRubricVoluntary,DB_Topic_Lingo,"GroupQuoteRubricVoluntary","GroupQuoteRubricVoluntary",},
 \
+{DB_GroupQuoteRubricFusion,DB_Topic_Lingo,"GroupQuoteRubricFusion","GroupQuoteRubricFusion",},
 \
+{DB_GroupQuoteFooterMandatory,DB_Topic_Lingo,"GroupQuoteFooterMandatory","GroupQuoteFooterMandatory",},
 \
+{DB_GroupQuoteFooterVoluntary,DB_Topic_Lingo,"GroupQuoteFooterVoluntary","GroupQuoteFooterVoluntary",},
 \
+{DB_GroupQuoteFooterFusion,DB_Topic_Lingo,"GroupQuoteFooterFusion","GroupQuoteFooterFusion",},
 \
+{DB_MinimumPremiumFootnote,DB_Topic_Lingo,"MinimumPremiumFootnote","MinimumPremiumFootnote",},
 \
+{DB_PremAllocationFootnote,DB_Topic_Lingo,"PremAllocationFootnote","PremAllocationFootnote",},
 \
+{DB_InterestDisclaimer,DB_Topic_Lingo,"InterestDisclaimer","InterestDisclaimer",},
 \
+{DB_GuarMortalityFootnote,DB_Topic_Lingo,"GuarMortalityFootnote","GuarMortalityFootnote",},
 \
+{DB_ProductDescription,DB_Topic_Lingo,"ProductDescription","ProductDescription",},
 \
+{DB_StableValueFootnote,DB_Topic_Lingo,"StableValueFootnote","StableValueFootnote",},
 \
+{DB_NoVanishPremiumFootnote,DB_Topic_Lingo,"NoVanishPremiumFootnote","NoVanishPremiumFootnote",},
 \
+{DB_RejectPremiumFootnote,DB_Topic_Lingo,"RejectPremiumFootnote","RejectPremiumFootnote",},
 \
+{DB_ExpRatingFootnote,DB_Topic_Lingo,"ExpRatingFootnote","ExpRatingFootnote",},
 \
+{DB_MortalityBlendFootnote,DB_Topic_Lingo,"MortalityBlendFootnote","MortalityBlendFootnote",},
 \
+{DB_HypotheticalRatesFootnote,DB_Topic_Lingo,"HypotheticalRatesFootnote","HypotheticalRatesFootnote",},
 \
+{DB_SalesLoadRefundFootnote,DB_Topic_Lingo,"SalesLoadRefundFootnote","SalesLoadRefundFootnote",},
 \
+{DB_NoLapseEverFootnote,DB_Topic_Lingo,"NoLapseEverFootnote","NoLapseEverFootnote",},
 \
+{DB_NoLapseFootnote,DB_Topic_Lingo,"NoLapseFootnote","NoLapseFootnote",}, \
+{DB_CurrentValuesFootnote,DB_Topic_Lingo,"CurrentValuesFootnote","CurrentValuesFootnote",},
 \
+{DB_DBOption1Footnote,DB_Topic_Lingo,"DBOption1Footnote","DBOption1Footnote",},
 \
+{DB_DBOption2Footnote,DB_Topic_Lingo,"DBOption2Footnote","DBOption2Footnote",},
 \
+{DB_DBOption3Footnote,DB_Topic_Lingo,"DBOption3Footnote","DBOption3Footnote",},
 \
+{DB_MinDeathBenefitFootnote,DB_Topic_Lingo,"MinDeathBenefitFootnote","MinDeathBenefitFootnote",},
 \
+{DB_ExpRatRiskChargeFootnote,DB_Topic_Lingo,"ExpRatRiskChargeFootnote","ExpRatRiskChargeFootnote",},
 \
+{DB_ExchangeChargeFootnote1,DB_Topic_Lingo,"ExchangeChargeFootnote1","ExchangeChargeFootnote1",},
 \
+{DB_FlexiblePremiumFootnote,DB_Topic_Lingo,"FlexiblePremiumFootnote","FlexiblePremiumFootnote",},
 \
+{DB_GuaranteedValuesFootnote,DB_Topic_Lingo,"GuaranteedValuesFootnote","GuaranteedValuesFootnote",},
 \
+{DB_CreditingRateFootnote,DB_Topic_Lingo,"CreditingRateFootnote","CreditingRateFootnote",},
 \
+{DB_GrossRateFootnote,DB_Topic_Lingo,"GrossRateFootnote","GrossRateFootnote",},
 \
+{DB_NetRateFootnote,DB_Topic_Lingo,"NetRateFootnote","NetRateFootnote",}, \
+{DB_MecFootnote,DB_Topic_Lingo,"MecFootnote","MecFootnote",}, \
+{DB_GptFootnote,DB_Topic_Lingo,"GptFootnote","GptFootnote",}, \
+{DB_MidpointValuesFootnote,DB_Topic_Lingo,"MidpointValuesFootnote","MidpointValuesFootnote",},
 \
+{DB_SinglePremiumFootnote,DB_Topic_Lingo,"SinglePremiumFootnote","SinglePremiumFootnote",},
 \
+{DB_MonthlyChargesFootnote,DB_Topic_Lingo,"MonthlyChargesFootnote","MonthlyChargesFootnote",},
 \
+{DB_UltCreditingRateFootnote,DB_Topic_Lingo,"UltCreditingRateFootnote","UltCreditingRateFootnote",},
 \
+{DB_UltCreditingRateHeader,DB_Topic_Lingo,"UltCreditingRateHeader","UltCreditingRateHeader",},
 \
+{DB_MaxNaarFootnote,DB_Topic_Lingo,"MaxNaarFootnote","MaxNaarFootnote",}, \
+{DB_PremTaxSurrChgFootnote,DB_Topic_Lingo,"PremTaxSurrChgFootnote","PremTaxSurrChgFootnote",},
 \
+{DB_PolicyFeeFootnote,DB_Topic_Lingo,"PolicyFeeFootnote","PolicyFeeFootnote",},
 \
+{DB_AssetChargeFootnote,DB_Topic_Lingo,"AssetChargeFootnote","AssetChargeFootnote",},
 \
+{DB_InvestmentIncomeFootnote,DB_Topic_Lingo,"InvestmentIncomeFootnote","InvestmentIncomeFootnote",},
 \
+{DB_IrrDbFootnote,DB_Topic_Lingo,"IrrDbFootnote","IrrDbFootnote",}, \
+{DB_IrrCsvFootnote,DB_Topic_Lingo,"IrrCsvFootnote","IrrCsvFootnote",}, \
+{DB_MortalityChargesFootnote,DB_Topic_Lingo,"MortalityChargesFootnote","MortalityChargesFootnote",},
 \
+{DB_LoanAndWithdrawalFootnote,DB_Topic_Lingo,"LoanAndWithdrawalFootnote","LoanAndWithdrawalFootnote",},
 \
+{DB_LoanFootnote,DB_Topic_Lingo,"LoanFootnote","LoanFootnote",}, \
+{DB_ImprimaturPresale,DB_Topic_Lingo,"ImprimaturPresale","ImprimaturPresale",},
 \
+{DB_ImprimaturPresaleComposite,DB_Topic_Lingo,"ImprimaturPresaleComposite","ImprimaturPresaleComposite",},
 \
+{DB_ImprimaturInforce,DB_Topic_Lingo,"ImprimaturInforce","ImprimaturInforce",},
 \
+{DB_ImprimaturInforceComposite,DB_Topic_Lingo,"ImprimaturInforceComposite","ImprimaturInforceComposite",},
 \
+{DB_StateMarketingImprimatur,DB_Topic_Lingo,"StateMarketingImprimatur","StateMarketingImprimatur",},
 \
+{DB_NonGuaranteedFootnote,DB_Topic_Lingo,"NonGuaranteedFootnote","NonGuaranteedFootnote",},
 \
+{DB_NonGuaranteedFootnote1,DB_Topic_Lingo,"NonGuaranteedFootnote1","NonGuaranteedFootnote1",},
 \
+{DB_NonGuaranteedFootnote1Tx,DB_Topic_Lingo,"NonGuaranteedFootnote1Tx","NonGuaranteedFootnote1Tx",},
 \
+{DB_FnMonthlyDeductions,DB_Topic_Lingo,"FnMonthlyDeductions","FnMonthlyDeductions",},
 \
+{DB_SurrenderFootnote,DB_Topic_Lingo,"SurrenderFootnote","SurrenderFootnote",},
 \
+{DB_PortabilityFootnote,DB_Topic_Lingo,"PortabilityFootnote","PortabilityFootnote",},
 \
+{DB_FundRateFootnote,DB_Topic_Lingo,"FundRateFootnote","FundRateFootnote",}, \
+{DB_IssuingCompanyFootnote,DB_Topic_Lingo,"IssuingCompanyFootnote","IssuingCompanyFootnote",},
 \
+{DB_SubsidiaryFootnote,DB_Topic_Lingo,"SubsidiaryFootnote","SubsidiaryFootnote",},
 \
+{DB_PlacementAgentFootnote,DB_Topic_Lingo,"PlacementAgentFootnote","PlacementAgentFootnote",},
 \
+{DB_MarketingNameFootnote,DB_Topic_Lingo,"MarketingNameFootnote","MarketingNameFootnote",},
 \
+{DB_GuarIssueDisclaimerNcSc,DB_Topic_Lingo,"GuarIssueDisclaimerNcSc","GuarIssueDisclaimerNcSc",},
 \
+{DB_GuarIssueDisclaimerMd,DB_Topic_Lingo,"GuarIssueDisclaimerMd","GuarIssueDisclaimerMd",},
 \
+{DB_GuarIssueDisclaimerTx,DB_Topic_Lingo,"GuarIssueDisclaimerTx","GuarIssueDisclaimerTx",},
 \
+{DB_IllRegCertAgent,DB_Topic_Lingo,"IllRegCertAgent","IllRegCertAgent",}, \
+{DB_IllRegCertAgentIl,DB_Topic_Lingo,"IllRegCertAgentIl","IllRegCertAgentIl",},
 \
+{DB_IllRegCertAgentTx,DB_Topic_Lingo,"IllRegCertAgentTx","IllRegCertAgentTx",},
 \
+{DB_IllRegCertClient,DB_Topic_Lingo,"IllRegCertClient","IllRegCertClient",}, \
+{DB_IllRegCertClientIl,DB_Topic_Lingo,"IllRegCertClientIl","IllRegCertClientIl",},
 \
+{DB_IllRegCertClientTx,DB_Topic_Lingo,"IllRegCertClientTx","IllRegCertClientTx",},
 \
+{DB_FnMaturityAge,DB_Topic_Lingo,"FnMaturityAge","FnMaturityAge",}, \
+{DB_FnPartialMortality,DB_Topic_Lingo,"FnPartialMortality","FnPartialMortality",},
 \
+{DB_FnProspectus,DB_Topic_Lingo,"FnProspectus","FnProspectus",}, \
+{DB_FnInitialSpecAmt,DB_Topic_Lingo,"FnInitialSpecAmt","FnInitialSpecAmt",}, \
+{DB_FnInforceAcctVal,DB_Topic_Lingo,"FnInforceAcctVal","FnInforceAcctVal",}, \
+{DB_FnInforceTaxBasis,DB_Topic_Lingo,"FnInforceTaxBasis","FnInforceTaxBasis",},
 \
+{DB_Fn1035Charge,DB_Topic_Lingo,"Fn1035Charge","Fn1035Charge",}, \
+{DB_FnMecExtraWarning,DB_Topic_Lingo,"FnMecExtraWarning","FnMecExtraWarning",},
 \
+{DB_FnNotTaxAdvice,DB_Topic_Lingo,"FnNotTaxAdvice","FnNotTaxAdvice",}, \
+{DB_FnNotTaxAdvice2,DB_Topic_Lingo,"FnNotTaxAdvice2","FnNotTaxAdvice2",}, \
+{DB_FnImf,DB_Topic_Lingo,"FnImf","FnImf",}, \
+{DB_FnCensus,DB_Topic_Lingo,"FnCensus","FnCensus",}, \
+{DB_FnDacTax,DB_Topic_Lingo,"FnDacTax","FnDacTax",}, \
+{DB_FnDefnLifeIns,DB_Topic_Lingo,"FnDefnLifeIns","FnDefnLifeIns",}, \
+{DB_FnBoyEoy,DB_Topic_Lingo,"FnBoyEoy","FnBoyEoy",}, \
+{DB_FnGeneralAccount,DB_Topic_Lingo,"FnGeneralAccount","FnGeneralAccount",}, \
+{DB_FnPpMemorandum,DB_Topic_Lingo,"FnPpMemorandum","FnPpMemorandum",}, \
+{DB_FnPpAccreditedInvestor,DB_Topic_Lingo,"FnPpAccreditedInvestor","FnPpAccreditedInvestor",},
 \
+{DB_FnPpLoads,DB_Topic_Lingo,"FnPpLoads","FnPpLoads",}, \
+{DB_FnProposalUnderwriting,DB_Topic_Lingo,"FnProposalUnderwriting","FnProposalUnderwriting",},
 \
+{DB_FnGuaranteedPremium,DB_Topic_Lingo,"FnGuaranteedPremium","FnGuaranteedPremium",},
 \
+{DB_FnOmnibusDisclaimer,DB_Topic_Lingo,"FnOmnibusDisclaimer","FnOmnibusDisclaimer",},
 \
+{DB_FnInitialDbo,DB_Topic_Lingo,"FnInitialDbo","FnInitialDbo",}, \
+{DB_DefnGuarGenAcctRate,DB_Topic_Lingo,"DefnGuarGenAcctRate","DefnGuarGenAcctRate",},
 \
+{DB_DefnAV,DB_Topic_Lingo,"DefnAV","DefnAV",}, \
+{DB_DefnCSV,DB_Topic_Lingo,"DefnCSV","DefnCSV",}, \
+{DB_DefnMec,DB_Topic_Lingo,"DefnMec","DefnMec",}, \
+{DB_DefnOutlay,DB_Topic_Lingo,"DefnOutlay","DefnOutlay",}, \
+{DB_DefnSpecAmt,DB_Topic_Lingo,"DefnSpecAmt","DefnSpecAmt",}, \
 {DB_Topic_Weights,DB_FIRST,"Weights","Weights for profit analysis cells [not 
yet implemented]",}, \
 {DB_WeightClass,DB_Topic_Weights,"WeightClass","Weight by underwriting class 
[not yet implemented]",}, \
 {DB_WeightGender,DB_Topic_Weights,"WeightGender","Weight by gender [not yet 
implemented]",}, \
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index 9117d25..5d5f608 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -340,6 +340,54 @@ void LedgerInvariant::Init(BasicValues const* b)
                 ;
         PolicyForm = b->lingo_->lookup(policy_form);
 
+#if 1
+        for(auto const& i : p.member_names())
+            {
+            if(ends_with(i, "Filename") || i == "InsCoDomicile")
+                continue;
+            auto const k = static_cast<e_database_key>(db_key_from_name(i));
+            auto const lingo_index = b->database().query<e_database_key>(k);
+//warning() << "Try '" << i << "' index " << lingo_index << std::flush;
+            std::string const newer = b->lingo_->lookup(lingo_index);
+            std::string const older = p.datum(i);
+            std::string const term  = '{' + i + '}';
+            bool const is_same =
+                   newer == older
+                || term  == older
+                ;
+//warning()
+//    << i << " i\n"
+//    << "'" << newer << "' newer\n"
+//    << "'" << older << "' older\n"
+//    << "'" << term  << "' term \n"
+//    << is_same << " is_same\n"
+//    << std::flush
+//    ;
+//warning() << "...succeeded '" << lingo_index << "'" << std::flush;
+            if(!is_same)
+                {
+                if("PolicyForm" == i)
+                    warning()
+                        << "Expected difference:\n"
+                        << i << " entity\n"
+                        << newer << " newer\n"
+                        << older << " older\n"
+                        << term  << " term\n"
+                        << LMI_FLUSH
+                        ;
+                else
+                    alarum()
+                        << "ERROR:\n"
+                        << i << " entity\n"
+                        << newer << " newer\n"
+                        << older << " older\n"
+                        << term  << " term\n"
+                        << LMI_FLUSH
+                        ;
+                }
+            }
+#endif // 0
+
         PolicyMktgName             = p.datum("PolicyMktgName"                 
);
         PolicyLegalName            = p.datum("PolicyLegalName"                
);
         CsoEra     = mc_str(b->database().query<mcenum_cso_era>(DB_CsoEra));
@@ -460,7 +508,8 @@ void LedgerInvariant::Init(BasicValues const* b)
         FlexiblePremiumFootnote    = p.datum("FlexiblePremiumFootnote"        
);
         GuaranteedValuesFootnote   = p.datum("GuaranteedValuesFootnote"       
);
         CreditingRateFootnote      = p.datum("CreditingRateFootnote"          
);
-        DefnGuarGenAcctRate        = p.datum("DefnGuarGenAcctRate"            
);
+// out of order:
+//      DefnGuarGenAcctRate        = p.datum("DefnGuarGenAcctRate"            
);
         GrossRateFootnote          = p.datum("GrossRateFootnote"              
);
         NetRateFootnote            = p.datum("NetRateFootnote"                
);
         MecFootnote                = p.datum("MecFootnote"                    
);
@@ -528,6 +577,7 @@ void LedgerInvariant::Init(BasicValues const* b)
         FnGuaranteedPremium        = p.datum("FnGuaranteedPremium"            
);
         FnOmnibusDisclaimer        = p.datum("FnOmnibusDisclaimer"            
);
         FnInitialDbo               = p.datum("FnInitialDbo"                   
);
+        DefnGuarGenAcctRate        = p.datum("DefnGuarGenAcctRate"            
);
         DefnAV                     = p.datum("DefnAV"                         
);
         DefnCSV                    = p.datum("DefnCSV"                        
);
         DefnMec                    = p.datum("DefnMec"                        
);
diff --git a/lingo.cpp b/lingo.cpp
index db56429..e4afd2d 100644
--- a/lingo.cpp
+++ b/lingo.cpp
@@ -58,16 +58,576 @@ std::string const& lingo::lookup(int index) const
     return map_lookup(map_, index);
 }
 
+namespace
+{
+static std::string const S_FnMonthlyDeductions =
+  "Monthly charges are deducted from the account value; if it is depleted,"
+  " additional premiums may be required.";
+
+// These two certifications are copied verbatim et literatim from the
+// illustration reg.
+static std::string const S_IllRegCertAgent =
+  "I certify that this illustration has been presented to the applicant and"
+  " that I have explained that any non-guaranteed elements illustrated are"
+  " subject to change. I have made no statements that are inconsistent with"
+  " the illustration.";
+static std::string const S_IllRegCertClient =
+  "I have received a copy of this illustration and understand that any"
+  " non-guaranteed elements illustrated are subject to change and could be"
+  " either higher or lower. The agent has told me they are not guaranteed.";
+
+static std::string const S_FnMaturityAge =
+  "¶¶Maturity age: {{EndtAge}}.";
+
+static std::string const S_FnPartialMortality =
+  "¶¶Columns reflect mortality, beginning at {{PartMortTableMult[0]}}"
+  " of the {{PartMortTableName}} table,"
+  " with all deaths at the end of each year"
+  "{{#SurviveToExpectancy}}"
+  " and survival limited to life expectancy"
+  "{{/SurviveToExpectancy}}"
+  "{{#SurviveToYear}}"
+  " and survival limited to {{SurvivalMaxYear}} years"
+  "{{/SurviveToYear}}"
+  "{{#SurviveToAge}}"
+  " and survival limited to age {{SurvivalMaxAge}}"
+  "{{/SurviveToAge}}"
+  ".";
+
+static std::string const S_FnProspectus =
+  "Must be preceded or accompanied by a prospectus.";
+static std::string const S_FnInitialSpecAmt =
+  "The initial specified amount is ${{InitTotalSA}}.";
+static std::string const S_FnInforceAcctVal =
+  "The inforce account value is ${{InforceTotalAV}}.";
+static std::string const S_FnInforceTaxBasis =
+  "The inforce tax basis is ${{InforceTaxBasis}}.";
+static std::string const S_Fn1035Charge =
+  "A charge may be deducted from the proceeds of a 1035 exchange.";
+static std::string const S_FnMecExtraWarning =
+  "{{#IsMec}}¶¶This is a Modified Endowment Contract.{{/IsMec}}";
+static std::string const S_FnNotTaxAdvice =
+  "{{InsCoShortName}} cannot give tax advice. Consult your own advisors.";
+static std::string const S_FnImf =
+  "Initial investment management fee: {{TotalIMF[0]}}.";
+static std::string const S_FnCensus =
+  ""; // There is no census attached to a composite.
+static std::string const S_FnDacTax =
+  "There is no explicit charge for DAC tax.";
+
+static std::string const S_FnDefnLifeIns =
+  "This policy is intended to qualify as life insurance under the IRC §7702"
+  "{{#DefnLifeInsIsGPT}}"
+  " guideline premium test. ${{InitGSP}} is the guideline single premium,"
+  " and ${{InitGLP}} is the guideline level premium."
+  "{{/DefnLifeInsIsGPT}}"
+  "{{^DefnLifeInsIsGPT}}"
+  "cash value accumulation test."
+  "{{/DefnLifeInsIsGPT}}";
+
+static std::string const S_FnBoyEoy =
+  "Premiums are payable in advance. Benefits are as of year end.";
+static std::string const S_FnGeneralAccount =
+  "The general account credits interest of at least 
{{InitAnnGenAcctInt_Guaranteed}}.";
+static std::string const S_FnPpMemorandum =
+  "Must be preceded or accompanied by a prospectus.";
+static std::string const S_FnPpAccreditedInvestor =
+  "Available only to accredited investors.";
+static std::string const S_FnPpLoads =
+  ""; // Explanation of any special loads.
+static std::string const S_FnProposalUnderwriting =
+  ""; // Explanation of group underwriting.
+static std::string const S_FnGuaranteedPremium =
+  "An outlay of ${{GuarPrem}} ({{InitEeMode}}) will guarantee coverage"
+  " to age {{EndtAge}}"
+  "{{#DefnLifeInsIsGPT}}"
+  ", subject to guideline premium test limits"
+  "{{/DefnLifeInsIsGPT}}"
+  ".";
+static std::string const S_FnOmnibusDisclaimer =
+  "Non-guaranteed values are based on current assumptions, which are"
+  " subject to change. Actual results may be more or less favorable.";
+static std::string const S_FnInitialDbo =
+  "The initial death benefit option is {{InitDBOpt}}.";
+static std::string const S_DefnGuarGenAcctRate =
+  "¶¶«Guaranteed Crediting Rate:»"
+  " The minimum annual interest rate credited on unloaned funds."
+  ;
+static std::string const S_DefnAV =
+  "Account value is the accumulation of payments less charges and 
disbursements.";
+static std::string const S_DefnCSV =
+  "Cash surrender value is account value less any surrender charge.";
+static std::string const S_DefnMec =
+  "A Modified Endowment Contract is a contract that does not qualify"
+  " for favorable tax treatment under IRC §7702A.";
+static std::string const S_DefnOutlay =
+  "Outlay is premium paid out of pocket.";
+static std::string const S_DefnSpecAmt =
+  "Specified amount is the nominal face amount.";
+
+static std::string const S_Poe0 =
+  "The \"Red Death\" had long devastated the country. No pestilence"
+  " had ever been so fatal, or so hideous. Blood was its Avatar and"
+  " its seal--the redness and the horror of blood. There were sharp"
+  " pains, and sudden dizziness, and then profuse bleeding at the"
+  " pores, with dissolution. The scarlet stains upon the body and"
+  " especially upon the face of the victim, were the pest ban which"
+  " shut him out from the aid and from the sympathy of his fellow-men."
+  " And the whole seizure, progress and termination of the disease,"
+  " were the incidents of half an hour.";
+static std::string const S_Poe1 =
+  "But the Prince Prospero was happy and dauntless and sagacious. When"
+  " his dominions were half depopulated, he summoned to his presence a"
+  " thousand hale and light-hearted friends from among the knights and"
+  " dames of his court, and with these retired to the deep seclusion"
+  " of one of his castellated abbeys. This was an extensive and"
+  " magnificent structure, the creation of the prince's own eccentric"
+  " yet august taste. A strong and lofty wall girdled it in. This wall"
+  " had gates of iron. The courtiers, having entered, brought furnaces"
+  " and massy hammers and welded the bolts. They resolved to leave"
+  " means neither of ingress nor egress to the sudden impulses of"
+  " despair or of frenzy from within. The abbey was amply provisioned."
+  " With such precautions the courtiers might bid defiance to contagion."
+  " The external world could take care of itself. In the meantime it"
+  " was folly to grieve, or to think. The prince had provided all the"
+  " appliances of pleasure. There were buffoons, there were"
+  " improvisatori, there were ballet-dancers, there were musicians,"
+  " there was Beauty, there was wine. All these and security were"
+  " within. Without was the \"Red Death\".";
+static std::string const S_Poe2 =
+  "It was towards the close of the fifth or sixth month of his"
+  " seclusion, and while the pestilence raged most furiously abroad,"
+  " that the Prince Prospero entertained his thousand friends at a"
+  " masked ball of the most unusual magnificence.";
+static std::string const S_Poe3 =
+  "It was a voluptuous scene, that masquerade. But first let me tell"
+  " of the rooms in which it was held. These were seven--an imperial"
+  " suite. In many palaces, however, such suites form a long and"
+  " straight vista, while the folding doors slide back nearly to the"
+  " walls on either hand, so that the view of the whole extent is"
+  " scarcely impeded. Here the case was very different, as might have"
+  " been expected from the duke's love of the _bizarre_. The apartments"
+  " were so irregularly disposed that the vision embraced but little"
+  " more than one at a time. There was a sharp turn at every twenty or"
+  " thirty yards, and at each turn a novel effect. To the right and"
+  " left, in the middle of each wall, a tall and narrow Gothic window"
+  " looked out upon a closed corridor which pursued the windings of the"
+  " suite. These windows were of stained glass whose color varied in"
+  " accordance with the prevailing hue of the decorations of the"
+  " chamber into which it opened. That at the eastern extremity was"
+  " hung, for example in blue--and vividly blue were its windows. The"
+  " second chamber was purple in its ornaments and tapestries, and here"
+  " the panes were purple. The third was green throughout, and so were"
+  " the casements. The fourth was furnished and lighted with orange--the"
+  " fifth with white--the sixth with violet. The seventh apartment was"
+  " closely shrouded in black velvet tapestries that hung all over the"
+  " ceiling and down the walls, falling in heavy folds upon a carpet of"
+  " the same material and hue. But in this chamber only, the color of"
+  " the windows failed to correspond with the decorations. The panes"
+  " here were scarlet--a deep blood color. Now in no one of the seven"
+  " apartments was there any lamp or candelabrum, amid the profusion of"
+  " golden ornaments that lay scattered to and fro or depended from the"
+  " roof. There was no light of any kind emanating from lamp or candle"
+  " within the suite of chambers. But in the corridors that followed the"
+  " suite, there stood, opposite to each window, a heavy tripod, bearing"
+  " a brazier of fire, that projected its rays through the tinted glass"
+  " and so glaringly illumined the room. And thus were produced a"
+  " multitude of gaudy and fantastic appearances. But in the western or"
+  " black chamber the effect of the fire-light that streamed upon the"
+  " dark hangings through the blood-tinted panes, was ghastly in the"
+  " extreme, and produced so wild a look upon the countenances of those"
+  " who entered, that there were few of the company bold enough to set"
+  " foot within its precincts at all.";
+} // Unnamed namespace.
+
 void lingo::write_lingo_files()
 {
     // superior::lingo enumerators are used for clarity in specifying
     // this map. They decay to integers in the resulting file, which
     // can therefore be read without the enumerators being visible.
     static std::unordered_map<superior::lingo,std::string> const 
enumerative_map
-        {{superior::empty_string     , ""}
-        ,{superior::policy_form_term , "{PolicyForm}"}
-        ,{superior::policy_form      , "UL32768-NY"}
-        ,{superior::policy_form_KS_KY, "UL32768-X"}
+        {{superior::empty_string                        , ""}
+
+        // Essential strings describing the policy and company.
+        ,{superior::policy_form_term                    , "{PolicyForm}"}
+        ,{superior::policy_form                         , "UL32768-NY"}
+        ,{superior::policy_form_KS_KY                   , "UL32768-X"}
+        ,{superior::policy_form_alternative_term        , 
"{PolicyFormAlternative}"} // LINGO !! expunge
+        ,{superior::policy_form_alternative             , "UL32768-X"} // 
LINGO !! expunge
+        ,{superior::policy_mktg_name_term               , "{PolicyMktgName}"}
+        ,{superior::policy_mktg_name                    , "UL Supreme"}
+        ,{superior::policy_legal_name_term              , "{PolicyLegalName}"}
+        ,{superior::policy_legal_name                   , "Flexible Premium 
Adjustable Life Insurance Policy"}
+        ,{superior::insco_short_name_term               , "{InsCoShortName}"}
+        ,{superior::insco_short_name                    , "Superior Life"}
+        ,{superior::insco_name_term                     , "{InsCoName}"}
+        ,{superior::insco_name                          , "Superior Life 
Insurance Company"}
+        ,{superior::insco_addr_term                     , "{InsCoAddr}"}
+        ,{superior::insco_addr                          , "Superior, WI 12345"}
+        ,{superior::insco_street_term                   , "{InsCoStreet}"}
+        ,{superior::insco_street                        , "246 Main Street"}
+        ,{superior::insco_phone_term                    , "{InsCoPhone}"}
+        ,{superior::insco_phone                         , "(800) 555-1212"}
+//      ,{superior::insco_domicile_term                 , "{InsCoDomicile}"} 
// expunge
+//      ,{superior::insco_domicile                      , ""}                
// expunge
+        ,{superior::main_underwriter_term               , "{MainUnderwriter}"}
+        ,{superior::main_underwriter                    , "Superior 
Securities"}
+        ,{superior::main_underwriter_address_term       , 
"{MainUnderwriterAddress}"}
+        ,{superior::main_underwriter_address            , "246-M Main Street, 
Superior, WI 12345"}
+        ,{superior::counderwriter_term                  , "{CoUnderwriter}"}
+        ,{superior::counderwriter                       , "Superior Investors"}
+        ,{superior::counderwriter_address_term          , 
"{CoUnderwriterAddress}"}
+        ,{superior::counderwriter_address               , "246-C Main Street, 
Superior, WI 12345"}
+
+        // Terms defined in the contract, which must be used for column
+        // headers, footnotes, etc. according to the illustration reg.
+        ,{superior::av_name_term                        , "{AvName}"}
+        ,{superior::av_name                             , "Account"}
+        ,{superior::csv_name_term                       , "{CsvName}"}
+        ,{superior::csv_name                            , "Cash Surrender"}
+        ,{superior::csv_header_name_term                , "{CsvHeaderName}"}
+        ,{superior::csv_header_name                     , "Cash Surr"}
+        ,{superior::no_lapse_provision_name_term        , 
"{NoLapseProvisionName}"}
+        ,{superior::no_lapse_provision_name             , "No-lapse Provision"}
+        ,{superior::contract_name_term                  , "{ContractName}"}
+        ,{superior::contract_name                       , "contract"} // 
Alternatively, "policy" or "certificate".
+        ,{superior::dbo_name_term                       , "{DboName}"}
+        ,{superior::dbo_name                            , "Death Benefit 
Option"}
+        ,{superior::dbo_name_level_term                 , "{DboNameLevel}"}
+        ,{superior::dbo_name_level                      , "A"}
+        ,{superior::dbo_name_increasing_term            , 
"{DboNameIncreasing}"}
+        ,{superior::dbo_name_increasing                 , "B"}
+        ,{superior::dbo_name_return_of_premium_term     , 
"{DboNameReturnOfPremium}"}
+        ,{superior::dbo_name_return_of_premium          , "ROP"}
+        ,{superior::dbo_name_min_death_benefit_term     , 
"{DboNameMinDeathBenefit}"}
+        ,{superior::dbo_name_min_death_benefit          , "MDB"}
+        ,{superior::gen_acct_name_term                  , "{GenAcctName}"}
+        ,{superior::gen_acct_name                       , "General Account"}
+        ,{superior::gen_acct_name_elaborated_term       , 
"{GenAcctNameElaborated}"}
+        ,{superior::gen_acct_name_elaborated            , "General Account 
(GA)"}
+        ,{superior::sep_acct_name_term                  , "{SepAcctName}"}
+        ,{superior::sep_acct_name                       , "Separate Account"}
+        ,{superior::spec_amt_name_term                  , "{SpecAmtName}"}
+        ,{superior::spec_amt_name                       , "Specified Amount"}
+        ,{superior::spec_amt_name_elaborated_term       , 
"{SpecAmtNameElaborated}"}
+        ,{superior::spec_amt_name_elaborated            , "Specified (Face) 
Amount"}
+
+        // Underwriting terms.
+        ,{superior::uw_basis_medical_term               , "{UwBasisMedical}"}
+        ,{superior::uw_basis_medical                    , "Medical"}
+        ,{superior::uw_basis_paramedical_term           , 
"{UwBasisParamedical}"}
+        ,{superior::uw_basis_paramedical                , "Paramedical"}
+        ,{superior::uw_basis_nonmedical_term            , 
"{UwBasisNonmedical}"}
+        ,{superior::uw_basis_nonmedical                 , "Nonmedical"}
+        ,{superior::uw_basis_simplified_term            , 
"{UwBasisSimplified}"}
+        ,{superior::uw_basis_simplified                 , "Simplified Issue"}
+        ,{superior::uw_basis_guaranteed_term            , 
"{UwBasisGuaranteed}"}
+        ,{superior::uw_basis_guaranteed                 , "Guaranteed Issue"}
+        ,{superior::uw_class_preferred_term             , "{UwClassPreferred}"}
+        ,{superior::uw_class_preferred                  , "Preferred"}
+        ,{superior::uw_class_standard_term              , "{UwClassStandard}"}
+        ,{superior::uw_class_standard                   , "Standard"}
+        ,{superior::uw_class_rated_term                 , "{UwClassRated}"}
+        ,{superior::uw_class_rated                      , "Rated"}
+        ,{superior::uw_class_ultra_term                 , "{UwClassUltra}"}
+        ,{superior::uw_class_ultra                      , "Ultrapreferred"}
+
+        // Ledger column definitions.
+        ,{superior::account_value_footnote_term         , 
"{AccountValueFootnote}"}
+        ,{superior::account_value_footnote              , ""}
+        ,{superior::attained_age_footnote_term          , 
"{AttainedAgeFootnote}"}
+        ,{superior::attained_age_footnote               , ""}
+        ,{superior::cash_surr_value_footnote_term       , 
"{CashSurrValueFootnote}"}
+        ,{superior::cash_surr_value_footnote            , ""}
+        ,{superior::death_benefit_footnote_term         , 
"{DeathBenefitFootnote}"}
+        ,{superior::death_benefit_footnote              , ""}
+        ,{superior::initial_premium_footnote_term       , 
"{InitialPremiumFootnote}"}
+        ,{superior::initial_premium_footnote            , ""}
+        ,{superior::net_premium_footnote_term           , 
"{NetPremiumFootnote}"}
+        ,{superior::net_premium_footnote                , ""}
+        ,{superior::gross_premium_footnote_term         , 
"{GrossPremiumFootnote}"}
+        ,{superior::gross_premium_footnote              , ""}
+        ,{superior::outlay_footnote_term                , "{OutlayFootnote}"}
+        ,{superior::outlay_footnote                     , ""}
+        ,{superior::policy_year_footnote_term           , 
"{PolicyYearFootnote}"}
+        ,{superior::policy_year_footnote                , ""}
+
+        // Terse rider names.
+        ,{superior::add_terse_name_term                 , "{ADDTerseName}"}
+        ,{superior::add_terse_name                      , "Accident"}
+        ,{superior::insurability_terse_name_term        , 
"{InsurabilityTerseName}"}
+        ,{superior::insurability_terse_name             , "Insurability"}
+        ,{superior::child_terse_name_term               , "{ChildTerseName}"}
+        ,{superior::child_terse_name                    , "Child"}
+        ,{superior::spouse_terse_name_term              , "{SpouseTerseName}"}
+        ,{superior::spouse_terse_name                   , "Spouse"}
+        ,{superior::term_terse_name_term                , "{TermTerseName}"}
+        ,{superior::term_terse_name                     , "Term"}
+        ,{superior::waiver_terse_name_term              , "{WaiverTerseName}"}
+        ,{superior::waiver_terse_name                   , "Waiver"}
+        ,{superior::accel_bft_rider_terse_name_term     , 
"{AccelBftRiderTerseName}"}
+        ,{superior::accel_bft_rider_terse_name          , "Acceleration"}
+        ,{superior::overloan_rider_terse_name_term      , 
"{OverloanRiderTerseName}"}
+        ,{superior::overloan_rider_terse_name           , "Overloan"}
+
+        // Rider footnotes.
+        ,{superior::add_footnote_term                   , "{ADDFootnote}"}
+        ,{superior::add_footnote                        , ""}
+        ,{superior::child_footnote_term                 , "{ChildFootnote}"}
+        ,{superior::child_footnote                      , ""}
+        ,{superior::spouse_footnote_term                , "{SpouseFootnote}"}
+        ,{superior::spouse_footnote                     , ""}
+        ,{superior::term_footnote_term                  , "{TermFootnote}"}
+        ,{superior::term_footnote                       , ""}
+        ,{superior::waiver_footnote_term                , "{WaiverFootnote}"}
+        ,{superior::waiver_footnote                     , ""}
+        ,{superior::accel_bft_rider_footnote_term       , 
"{AccelBftRiderFootnote}"}
+        ,{superior::accel_bft_rider_footnote            , ""}
+        ,{superior::overloan_rider_footnote_term        , 
"{OverloanRiderFootnote}"}
+        ,{superior::overloan_rider_footnote             , ""}
+
+        // Group quotes.
+        ,{superior::group_quote_short_product_name_term , 
"{GroupQuoteShortProductName}"}
+        ,{superior::group_quote_short_product_name      , "UL SUPREME®"}
+        ,{superior::group_quote_is_not_an_offer_term    , 
"{GroupQuoteIsNotAnOffer}"}
+        ,{superior::group_quote_is_not_an_offer         , "This is not an 
offer of insurance."}
+        ,{superior::group_quote_riders_footer_term      , 
"{GroupQuoteRidersFooter}"}
+        ,{superior::group_quote_riders_footer           , "Available riders: 
accident and waiver."}
+        ,{superior::group_quote_policy_form_id_term     , 
"{GroupQuotePolicyFormId}"}
+        ,{superior::group_quote_policy_form_id          , "Policy form 
UL32768-NY is a flexible premium contract."}
+        ,{superior::group_quote_state_variations_term   , 
"{GroupQuoteStateVariations}"}
+        ,{superior::group_quote_state_variations        , "Not available in 
all states."}
+        ,{superior::group_quote_prospectus_term         , 
"{GroupQuoteProspectus}"}
+        ,{superior::group_quote_prospectus              , "Read the prospectus 
carefully."}
+        ,{superior::group_quote_underwriter_term        , 
"{GroupQuoteUnderwriter}"}
+        ,{superior::group_quote_underwriter             , "Securities 
underwritten by Superior Securities."}
+        ,{superior::group_quote_broker_dealer_term      , 
"{GroupQuoteBrokerDealer}"}
+        ,{superior::group_quote_broker_dealer           , "Securities offered 
through Superior Brokerage."}
+        // Group plan type is one of:
+        //   -Mandatory: no individual selection of amounts; typically,
+        //     the employer pays the entire premium
+        //   -Voluntary: individual selection of amounts; typically, the
+        //      employee pays the premium; may be called "supplemental"
+        //      when it complements a (separate) "mandatory" plan
+        //   -Fusion: mandatory and supplemental combined; typically, the
+        //      employer and employee pay their respective premiums
+        ,{superior::group_quote_rubric_mandatory_term   , 
"{GroupQuoteRubricMandatory}"}
+        ,{superior::group_quote_rubric_mandatory        , "Mandatory"}
+        ,{superior::group_quote_rubric_voluntary_term   , 
"{GroupQuoteRubricVoluntary}"}
+        ,{superior::group_quote_rubric_voluntary        , "Voluntary"}
+        ,{superior::group_quote_rubric_fusion_term      , 
"{GroupQuoteRubricFusion}"}
+        ,{superior::group_quote_rubric_fusion           , "Fusion"}
+        ,{superior::group_quote_footer_mandatory_term   , 
"{GroupQuoteFooterMandatory}"}
+        ,{superior::group_quote_footer_mandatory        , "The employer pays 
all premiums."}
+        ,{superior::group_quote_footer_voluntary_term   , 
"{GroupQuoteFooterVoluntary}"}
+        ,{superior::group_quote_footer_voluntary        , "The employee pays 
all premiums."}
+        ,{superior::group_quote_footer_fusion_term      , 
"{GroupQuoteFooterFusion}"}
+        ,{superior::group_quote_footer_fusion           , "The employer and 
employee pay their respective premiums."}
+
+        // Premium-specific footnotes.
+        ,{superior::minimum_premium_footnote_term       , 
"{MinimumPremiumFootnote}"}
+        ,{superior::minimum_premium_footnote            , ""}
+        ,{superior::prem_allocation_footnote_term       , 
"{PremAllocationFootnote}"}
+        ,{superior::prem_allocation_footnote            , ""}
+
+        // Miscellaneous other footnotes.
+        ,{superior::interest_disclaimer_term            , 
"{InterestDisclaimer}"}
+        ,{superior::interest_disclaimer                 , ""}
+        ,{superior::guar_mortality_footnote_term        , 
"{GuarMortalityFootnote}"}
+        ,{superior::guar_mortality_footnote             , "Guaranteed 
mortality basis: {{CsoEra}} CSO."}
+        ,{superior::product_description_term            , 
"{ProductDescription}"}
+        ,{superior::product_description                 , ""}
+        ,{superior::stable_value_footnote_term          , 
"{StableValueFootnote}"}
+        ,{superior::stable_value_footnote               , ""}
+        ,{superior::no_vanish_premium_footnote_term     , 
"{NoVanishPremiumFootnote}"}
+        ,{superior::no_vanish_premium_footnote          , ""}
+        ,{superior::reject_premium_footnote_term        , 
"{RejectPremiumFootnote}"}
+        ,{superior::reject_premium_footnote             , ""}
+        ,{superior::exp_rating_footnote_term            , 
"{ExpRatingFootnote}"}
+        ,{superior::exp_rating_footnote                 , ""}
+        ,{superior::mortality_blend_footnote_term       , 
"{MortalityBlendFootnote}"}
+        ,{superior::mortality_blend_footnote            , ""}
+        ,{superior::hypothetical_rates_footnote_term    , 
"{HypotheticalRatesFootnote}"}
+        ,{superior::hypothetical_rates_footnote         , ""}
+        ,{superior::sales_load_refund_footnote_term     , 
"{SalesLoadRefundFootnote}"}
+        ,{superior::sales_load_refund_footnote          , ""}
+        ,{superior::no_lapse_ever_footnote_term         , 
"{NoLapseEverFootnote}"}
+        ,{superior::no_lapse_ever_footnote              , ""}
+        ,{superior::no_lapse_footnote_term              , "{NoLapseFootnote}"}
+        ,{superior::no_lapse_footnote                   , ""}
+        ,{superior::current_values_footnote_term        , 
"{CurrentValuesFootnote}"}
+        ,{superior::current_values_footnote             , ""}
+        ,{superior::dbo1_footnote_term                  , 
"{DBOption1Footnote}"}
+        ,{superior::dbo1_footnote                       , ""}
+        ,{superior::dbo2_footnote_term                  , 
"{DBOption2Footnote}"}
+        ,{superior::dbo2_footnote                       , ""}
+        ,{superior::dbo3_footnote_term                  , 
"{DBOption3Footnote}"}
+        ,{superior::dbo3_footnote                       , ""}
+        ,{superior::min_death_benefit_footnote_term     , 
"{MinDeathBenefitFootnote}"}
+        ,{superior::min_death_benefit_footnote          , ""}
+        ,{superior::exp_rat_risk_charge_footnote_term   , 
"{ExpRatRiskChargeFootnote}"}
+        ,{superior::exp_rat_risk_charge_footnote        , ""}
+        ,{superior::exchange_charge_footnote1_term      , 
"{ExchangeChargeFootnote1}"}
+        ,{superior::exchange_charge_footnote1           , ""}
+        ,{superior::flexible_premium_footnote_term      , 
"{FlexiblePremiumFootnote}"}
+        ,{superior::flexible_premium_footnote           , ""}
+        ,{superior::guaranteed_values_footnote_term     , 
"{GuaranteedValuesFootnote}"}
+        ,{superior::guaranteed_values_footnote          , ""}
+        ,{superior::crediting_rate_footnote_term        , 
"{CreditingRateFootnote}"}
+        ,{superior::crediting_rate_footnote             , ""}
+// out of order:
+//      ,{superior::defn_guar_gen_acct_rate_term        , 
"{DefnGuarGenAcctRate}"}
+//      ,{superior::defn_guar_gen_acct_rate             , 
S_DefnGuarGenAcctRate}
+        ,{superior::gross_rate_footnote_term            , 
"{GrossRateFootnote}"}
+        ,{superior::gross_rate_footnote                 , ""}
+        ,{superior::net_rate_footnote_term              , "{NetRateFootnote}"}
+        ,{superior::net_rate_footnote                   , ""}
+        ,{superior::mec_footnote_term                   , "{MecFootnote}"}
+        ,{superior::mec_footnote                        , ""}
+        ,{superior::gpt_footnote_term                   , "{GptFootnote}"}
+        ,{superior::gpt_footnote                        , ""}
+        ,{superior::midpoint_values_footnote_term       , 
"{MidpointValuesFootnote}"}
+        ,{superior::midpoint_values_footnote            , ""}
+        ,{superior::single_premium_footnote_term        , 
"{SinglePremiumFootnote}"}
+        ,{superior::single_premium_footnote             , ""}
+        ,{superior::monthly_charges_footnote_term       , 
"{MonthlyChargesFootnote}"}
+        ,{superior::monthly_charges_footnote            , ""}
+        ,{superior::ult_crediting_rate_footnote_term    , 
"{UltCreditingRateFootnote}"}
+        ,{superior::ult_crediting_rate_footnote         , ""}
+        ,{superior::ult_crediting_rate_header_term      , 
"{UltCreditingRateHeader}"}
+        ,{superior::ult_crediting_rate_header           , ""}
+        ,{superior::max_naar_footnote_term              , "{MaxNaarFootnote}"}
+        ,{superior::max_naar_footnote                   , ""}
+        ,{superior::prem_tax_surr_chg_footnote_term     , 
"{PremTaxSurrChgFootnote}"}
+        ,{superior::prem_tax_surr_chg_footnote          , ""}
+        ,{superior::policy_fee_footnote_term            , 
"{PolicyFeeFootnote}"}
+        ,{superior::policy_fee_footnote                 , ""}
+        ,{superior::asset_charge_footnote_term          , 
"{AssetChargeFootnote}"}
+        ,{superior::asset_charge_footnote               , ""}
+        ,{superior::investment_income_footnote_term     , 
"{InvestmentIncomeFootnote}"}
+        ,{superior::investment_income_footnote          , ""}
+        ,{superior::irr_db_footnote_term                , "{IrrDbFootnote}"}
+        ,{superior::irr_db_footnote                     , ""}
+        ,{superior::irr_csv_footnote_term               , "{IrrCsvFootnote}"}
+        ,{superior::irr_csv_footnote                    , ""}
+        ,{superior::mortality_charges_footnote_term     , 
"{MortalityChargesFootnote}"}
+        ,{superior::mortality_charges_footnote          , ""}
+        ,{superior::loan_and_withdrawal_footnote_term   , 
"{LoanAndWithdrawalFootnote}"}
+        ,{superior::loan_and_withdrawal_footnote        , ""}
+        ,{superior::loan_footnote_term                  , "{LoanFootnote}"}
+        ,{superior::loan_footnote                       , ""}
+        ,{superior::imprimatur_presale_term             , 
"{ImprimaturPresale}"}
+        ,{superior::imprimatur_presale                  , ""}
+        ,{superior::imprimatur_presale_composite_term   , 
"{ImprimaturPresaleComposite}"}
+        ,{superior::imprimatur_presale_composite        , ""}
+        ,{superior::imprimatur_inforce_term             , 
"{ImprimaturInforce}"}
+        ,{superior::imprimatur_inforce                  , ""}
+        ,{superior::imprimatur_inforce_composite_term   , 
"{ImprimaturInforceComposite}"}
+        ,{superior::imprimatur_inforce_composite        , ""}
+        ,{superior::state_marketing_imprimatur_term     , 
"{StateMarketingImprimatur}"}
+        ,{superior::state_marketing_imprimatur          , ""}
+        ,{superior::non_guaranteed_footnote_term        , 
"{NonGuaranteedFootnote}"}
+        ,{superior::non_guaranteed_footnote             , ""}
+        ,{superior::non_guaranteed_footnote1_term       , 
"{NonGuaranteedFootnote1}"}
+        ,{superior::non_guaranteed_footnote1            , ""}
+        ,{superior::non_guaranteed_footnote1tx_term     , 
"{NonGuaranteedFootnote1Tx}"}
+        ,{superior::non_guaranteed_footnote1tx          , ""}
+        ,{superior::fn_monthly_deductions_term          , 
"{FnMonthlyDeductions}"}
+        ,{superior::fn_monthly_deductions               , 
S_FnMonthlyDeductions}
+        ,{superior::surrender_footnote_term             , 
"{SurrenderFootnote}"}
+        ,{superior::surrender_footnote                  , ""}
+        ,{superior::portability_footnote_term           , 
"{PortabilityFootnote}"}
+        ,{superior::portability_footnote                , ""}
+        ,{superior::fund_rate_footnote_term             , "{FundRateFootnote}"}
+        ,{superior::fund_rate_footnote                  , ""}
+        ,{superior::issuing_company_footnote_term       , 
"{IssuingCompanyFootnote}"}
+        ,{superior::issuing_company_footnote            , ""}
+        ,{superior::subsidiary_footnote_term            , 
"{SubsidiaryFootnote}"}
+        ,{superior::subsidiary_footnote                 , ""}
+        ,{superior::placement_agent_footnote_term       , 
"{PlacementAgentFootnote}"}
+        ,{superior::placement_agent_footnote            , ""}
+        ,{superior::marketing_name_footnote_term        , 
"{MarketingNameFootnote}"}
+        ,{superior::marketing_name_footnote             , "Policy form 
UL32768-NY is marketed as 'UL Supreme'."}
+        ,{superior::guar_issue_disclaimer_nc_sc_term    , 
"{GuarIssueDisclaimerNcSc}"}
+        ,{superior::guar_issue_disclaimer_nc_sc         , ""}
+        ,{superior::guar_issue_disclaimer_md_term       , 
"{GuarIssueDisclaimerMd}"}
+        ,{superior::guar_issue_disclaimer_md            , ""}
+        ,{superior::guar_issue_disclaimer_tx_term       , 
"{GuarIssueDisclaimerTx}"}
+        ,{superior::guar_issue_disclaimer_tx            , ""}
+        ,{superior::ill_reg_cert_agent_term             , "{IllRegCertAgent}"}
+        ,{superior::ill_reg_cert_agent                  , S_IllRegCertAgent}
+        ,{superior::ill_reg_cert_agent_il_term          , 
"{IllRegCertAgentIl}"}
+        ,{superior::ill_reg_cert_agent_il               , S_IllRegCertAgent}
+        ,{superior::ill_reg_cert_agent_tx_term          , 
"{IllRegCertAgentTx}"}
+        ,{superior::ill_reg_cert_agent_tx               , S_IllRegCertAgent}
+        ,{superior::ill_reg_cert_client_term            , "{IllRegCertClient}"}
+        ,{superior::ill_reg_cert_client                 , S_IllRegCertClient}
+        ,{superior::ill_reg_cert_client_il_term         , 
"{IllRegCertClientIl}"}
+        ,{superior::ill_reg_cert_client_il              , S_IllRegCertClient}
+        ,{superior::ill_reg_cert_client_tx_term         , 
"{IllRegCertClientTx}"}
+        ,{superior::ill_reg_cert_client_tx              , S_IllRegCertClient}
+        ,{superior::fn_maturity_age_term                , "{FnMaturityAge}"}
+        ,{superior::fn_maturity_age                     , S_FnMaturityAge}
+        ,{superior::fn_partial_mortality_term           , 
"{FnPartialMortality}"}
+        ,{superior::fn_partial_mortality                , S_FnPartialMortality}
+        ,{superior::fn_prospectus_term                  , "{FnProspectus}"}
+        ,{superior::fn_prospectus                       , S_FnProspectus}
+        ,{superior::fn_initial_spec_amt_term            , "{FnInitialSpecAmt}"}
+        ,{superior::fn_initial_spec_amt                 , S_FnInitialSpecAmt}
+        ,{superior::fn_inforce_acct_val_term            , "{FnInforceAcctVal}"}
+        ,{superior::fn_inforce_acct_val                 , S_FnInforceAcctVal}
+        ,{superior::fn_inforce_tax_basis_term           , 
"{FnInforceTaxBasis}"}
+        ,{superior::fn_inforce_tax_basis                , S_FnInforceTaxBasis}
+        ,{superior::fn1035charge_term                   , "{Fn1035Charge}"}
+        ,{superior::fn1035charge                        , S_Fn1035Charge}
+        ,{superior::fn_mec_extra_warning_term           , 
"{FnMecExtraWarning}"}
+        ,{superior::fn_mec_extra_warning                , S_FnMecExtraWarning}
+        ,{superior::fn_not_tax_advice_term              , "{FnNotTaxAdvice}"}
+        ,{superior::fn_not_tax_advice                   , S_FnNotTaxAdvice}
+        ,{superior::fn_not_tax_advice2_term             , "{FnNotTaxAdvice2}"}
+        ,{superior::fn_not_tax_advice2                  , ""} // Deliberately 
empty: shouldn't even exist.
+        ,{superior::fn_imf_term                         , "{FnImf}"}
+        ,{superior::fn_imf                              , S_FnImf}
+        ,{superior::fn_census_term                      , "{FnCensus}"}
+        ,{superior::fn_census                           , S_FnCensus}
+        ,{superior::fn_dac_tax_term                     , "{FnDacTax}"}
+        ,{superior::fn_dac_tax                          , S_FnDacTax}
+        ,{superior::fn_defn_life_ins_term               , "{FnDefnLifeIns}"}
+        ,{superior::fn_defn_life_ins                    , S_FnDefnLifeIns}
+        ,{superior::fn_boy_eoy_term                     , "{FnBoyEoy}"}
+        ,{superior::fn_boy_eoy                          , S_FnBoyEoy}
+        ,{superior::fn_general_account_term             , "{FnGeneralAccount}"}
+        ,{superior::fn_general_account                  , S_FnGeneralAccount}
+        ,{superior::fn_pp_memorandum_term               , "{FnPpMemorandum}"}
+        ,{superior::fn_pp_memorandum                    , S_FnPpMemorandum}
+        ,{superior::fn_pp_accredited_investor_term      , 
"{FnPpAccreditedInvestor}"}
+        ,{superior::fn_pp_accredited_investor           , 
S_FnPpAccreditedInvestor}
+        ,{superior::fn_pp_loads_term                    , "{FnPpLoads}"}
+        ,{superior::fn_pp_loads                         , S_FnPpLoads}
+        ,{superior::fn_proposal_underwriting_term       , 
"{FnProposalUnderwriting}"}
+        ,{superior::fn_proposal_underwriting            , 
S_FnProposalUnderwriting}
+        ,{superior::fn_guaranteed_premium_term          , 
"{FnGuaranteedPremium}"}
+        ,{superior::fn_guaranteed_premium               , 
S_FnGuaranteedPremium}
+        ,{superior::fn_omnibus_disclaimer_term          , 
"{FnOmnibusDisclaimer}"}
+        ,{superior::fn_omnibus_disclaimer               , 
S_FnOmnibusDisclaimer}
+        ,{superior::fn_initial_dbo_term                 , "{FnInitialDbo}"}
+        ,{superior::fn_initial_dbo                      , S_FnInitialDbo}
+        ,{superior::defn_guar_gen_acct_rate_term        , 
"{DefnGuarGenAcctRate}"}
+        ,{superior::defn_guar_gen_acct_rate             , 
S_DefnGuarGenAcctRate}
+        ,{superior::defn_av_term                        , "{DefnAV}"}
+        ,{superior::defn_av                             , S_DefnAV}
+        ,{superior::defn_csv_term                       , "{DefnCSV}"}
+        ,{superior::defn_csv                            , S_DefnCSV}
+        ,{superior::defn_mec_term                       , "{DefnMec}"}
+        ,{superior::defn_mec                            , S_DefnMec}
+        ,{superior::defn_outlay_term                    , "{DefnOutlay}"}
+        ,{superior::defn_outlay                         , S_DefnOutlay}
+        ,{superior::defn_spec_amt_term                  , "{DefnSpecAmt}"}
+        ,{superior::defn_spec_amt                       , S_DefnSpecAmt}
+        ,{superior::poe_0                               , S_Poe0}
+        ,{superior::poe_1                               , S_Poe1}
+        ,{superior::poe_2                               , S_Poe2}
+        ,{superior::poe_3                               , S_Poe3}
         };
 
     fs::path const path(AddDataDir("sample.lingo"));
diff --git a/main_cli.cpp b/main_cli.cpp
index ec12b53..703de6d 100644
--- a/main_cli.cpp
+++ b/main_cli.cpp
@@ -193,10 +193,13 @@ void product_test()
     std::vector<std::string> const& s = all_strings_state();
     for(auto const& i : p)
         {
+        if(!begins_with(i, "sample"))
+           continue;
         std::cout << "Testing product " << i << std::endl;
         input["ProductName"        ] = i;
         for(auto const& j : s)
             {
+            std::cout << "  state " << j << " product " << i << std::endl;
             input["StateOfJurisdiction"] = j;
             try
                 {
diff --git a/product_data.cpp b/product_data.cpp
index ab38c57..139bcc2 100644
--- a/product_data.cpp
+++ b/product_data.cpp
@@ -306,7 +306,8 @@ void product_data::ascribe_members()
     ascribe("FlexiblePremiumFootnote"    , 
&product_data::FlexiblePremiumFootnote       );
     ascribe("GuaranteedValuesFootnote"   , 
&product_data::GuaranteedValuesFootnote      );
     ascribe("CreditingRateFootnote"      , 
&product_data::CreditingRateFootnote         );
-    ascribe("DefnGuarGenAcctRate"        , &product_data::DefnGuarGenAcctRate  
         );
+// out of order:
+//  ascribe("DefnGuarGenAcctRate"        , &product_data::DefnGuarGenAcctRate  
         );
     ascribe("GrossRateFootnote"          , &product_data::GrossRateFootnote    
         );
     ascribe("NetRateFootnote"            , &product_data::NetRateFootnote      
         );
     ascribe("MecFootnote"                , &product_data::MecFootnote          
         );
@@ -374,6 +375,7 @@ void product_data::ascribe_members()
     ascribe("FnGuaranteedPremium"        , &product_data::FnGuaranteedPremium  
         );
     ascribe("FnOmnibusDisclaimer"        , &product_data::FnOmnibusDisclaimer  
         );
     ascribe("FnInitialDbo"               , &product_data::FnInitialDbo         
         );
+    ascribe("DefnGuarGenAcctRate"        , &product_data::DefnGuarGenAcctRate  
         );
     ascribe("DefnAV"                     , &product_data::DefnAV               
         );
     ascribe("DefnCSV"                    , &product_data::DefnCSV              
         );
     ascribe("DefnMec"                    , &product_data::DefnMec              
         );
@@ -832,6 +834,83 @@ sample2gpp::sample2gpp()
     item("DatabaseFilename")           = glossed_string("sample2gpp.database");
 }
 
+static std::string const S_Poe0 =
+  "The \"Red Death\" had long devastated the country. No pestilence"
+  " had ever been so fatal, or so hideous. Blood was its Avatar and"
+  " its seal--the redness and the horror of blood. There were sharp"
+  " pains, and sudden dizziness, and then profuse bleeding at the"
+  " pores, with dissolution. The scarlet stains upon the body and"
+  " especially upon the face of the victim, were the pest ban which"
+  " shut him out from the aid and from the sympathy of his fellow-men."
+  " And the whole seizure, progress and termination of the disease,"
+  " were the incidents of half an hour.";
+
+static std::string const S_Poe1 =
+  "But the Prince Prospero was happy and dauntless and sagacious. When"
+  " his dominions were half depopulated, he summoned to his presence a"
+  " thousand hale and light-hearted friends from among the knights and"
+  " dames of his court, and with these retired to the deep seclusion"
+  " of one of his castellated abbeys. This was an extensive and"
+  " magnificent structure, the creation of the prince's own eccentric"
+  " yet august taste. A strong and lofty wall girdled it in. This wall"
+  " had gates of iron. The courtiers, having entered, brought furnaces"
+  " and massy hammers and welded the bolts. They resolved to leave"
+  " means neither of ingress nor egress to the sudden impulses of"
+  " despair or of frenzy from within. The abbey was amply provisioned."
+  " With such precautions the courtiers might bid defiance to contagion."
+  " The external world could take care of itself. In the meantime it"
+  " was folly to grieve, or to think. The prince had provided all the"
+  " appliances of pleasure. There were buffoons, there were"
+  " improvisatori, there were ballet-dancers, there were musicians,"
+  " there was Beauty, there was wine. All these and security were"
+  " within. Without was the \"Red Death\".";
+
+static std::string const S_Poe2 =
+  "It was towards the close of the fifth or sixth month of his"
+  " seclusion, and while the pestilence raged most furiously abroad,"
+  " that the Prince Prospero entertained his thousand friends at a"
+  " masked ball of the most unusual magnificence.";
+
+static std::string const S_Poe3 =
+  "It was a voluptuous scene, that masquerade. But first let me tell"
+  " of the rooms in which it was held. These were seven--an imperial"
+  " suite. In many palaces, however, such suites form a long and"
+  " straight vista, while the folding doors slide back nearly to the"
+  " walls on either hand, so that the view of the whole extent is"
+  " scarcely impeded. Here the case was very different, as might have"
+  " been expected from the duke's love of the _bizarre_. The apartments"
+  " were so irregularly disposed that the vision embraced but little"
+  " more than one at a time. There was a sharp turn at every twenty or"
+  " thirty yards, and at each turn a novel effect. To the right and"
+  " left, in the middle of each wall, a tall and narrow Gothic window"
+  " looked out upon a closed corridor which pursued the windings of the"
+  " suite. These windows were of stained glass whose color varied in"
+  " accordance with the prevailing hue of the decorations of the"
+  " chamber into which it opened. That at the eastern extremity was"
+  " hung, for example in blue--and vividly blue were its windows. The"
+  " second chamber was purple in its ornaments and tapestries, and here"
+  " the panes were purple. The third was green throughout, and so were"
+  " the casements. The fourth was furnished and lighted with orange--the"
+  " fifth with white--the sixth with violet. The seventh apartment was"
+  " closely shrouded in black velvet tapestries that hung all over the"
+  " ceiling and down the walls, falling in heavy folds upon a carpet of"
+  " the same material and hue. But in this chamber only, the color of"
+  " the windows failed to correspond with the decorations. The panes"
+  " here were scarlet--a deep blood color. Now in no one of the seven"
+  " apartments was there any lamp or candelabrum, amid the profusion of"
+  " golden ornaments that lay scattered to and fro or depended from the"
+  " roof. There was no light of any kind emanating from lamp or candle"
+  " within the suite of chambers. But in the corridors that followed the"
+  " suite, there stood, opposite to each window, a heavy tripod, bearing"
+  " a brazier of fire, that projected its rays through the tinted glass"
+  " and so glaringly illumined the room. And thus were produced a"
+  " multitude of gaudy and fantastic appearances. But in the western or"
+  " black chamber the effect of the fire-light that streamed upon the"
+  " dark hangings through the blood-tinted panes, was ghastly in the"
+  " extreme, and produced so wild a look upon the countenances of those"
+  " who entered, that there were few of the company bold enough to set"
+  " foot within its precincts at all.";
+
 /// This specimen product
 ///   https://lists.nongnu.org/archive/html/lmi/2018-09/msg00039.html
 /// | has deliberately overlong footnotes
@@ -840,83 +919,10 @@ sample2gpp::sample2gpp()
 sample2ipp::sample2ipp()
 {
     item("DatabaseFilename")           = glossed_string("sample2ipp.database");
-    item("IrrDbFootnote") = glossed_string
-        ("The \"Red Death\" had long devastated the country. No pestilence"
-         " had ever been so fatal, or so hideous. Blood was its Avatar and"
-         " its seal--the redness and the horror of blood. There were sharp"
-         " pains, and sudden dizziness, and then profuse bleeding at the"
-         " pores, with dissolution. The scarlet stains upon the body and"
-         " especially upon the face of the victim, were the pest ban which"
-         " shut him out from the aid and from the sympathy of his fellow-men."
-         " And the whole seizure, progress and termination of the disease,"
-         " were the incidents of half an hour."
-        );
-    item("IrrCsvFootnote") = glossed_string
-        ("But the Prince Prospero was happy and dauntless and sagacious. When"
-         " his dominions were half depopulated, he summoned to his presence a"
-         " thousand hale and light-hearted friends from among the knights and"
-         " dames of his court, and with these retired to the deep seclusion"
-         " of one of his castellated abbeys. This was an extensive and"
-         " magnificent structure, the creation of the prince's own eccentric"
-         " yet august taste. A strong and lofty wall girdled it in. This wall"
-         " had gates of iron. The courtiers, having entered, brought furnaces"
-         " and massy hammers and welded the bolts. They resolved to leave"
-         " means neither of ingress nor egress to the sudden impulses of"
-         " despair or of frenzy from within. The abbey was amply provisioned."
-         " With such precautions the courtiers might bid defiance to 
contagion."
-         " The external world could take care of itself. In the meantime it"
-         " was folly to grieve, or to think. The prince had provided all the"
-         " appliances of pleasure. There were buffoons, there were"
-         " improvisatori, there were ballet-dancers, there were musicians,"
-         " there was Beauty, there was wine. All these and security were"
-         " within. Without was the \"Red Death\"."
-        );
-    item("MortalityChargesFootnote") = glossed_string
-        ("It was towards the close of the fifth or sixth month of his"
-         " seclusion, and while the pestilence raged most furiously abroad,"
-         " that the Prince Prospero entertained his thousand friends at a"
-         " masked ball of the most unusual magnificence."
-        );
-    item("PolicyYearFootnote") = glossed_string
-        ("It was a voluptuous scene, that masquerade. But first let me tell"
-         " of the rooms in which it was held. These were seven--an imperial"
-         " suite. In many palaces, however, such suites form a long and"
-         " straight vista, while the folding doors slide back nearly to the"
-         " walls on either hand, so that the view of the whole extent is"
-         " scarcely impeded. Here the case was very different, as might have"
-         " been expected from the duke's love of the _bizarre_. The apartments"
-         " were so irregularly disposed that the vision embraced but little"
-         " more than one at a time. There was a sharp turn at every twenty or"
-         " thirty yards, and at each turn a novel effect. To the right and"
-         " left, in the middle of each wall, a tall and narrow Gothic window"
-         " looked out upon a closed corridor which pursued the windings of the"
-         " suite. These windows were of stained glass whose color varied in"
-         " accordance with the prevailing hue of the decorations of the"
-         " chamber into which it opened. That at the eastern extremity was"
-         " hung, for example in blue--and vividly blue were its windows. The"
-         " second chamber was purple in its ornaments and tapestries, and here"
-         " the panes were purple. The third was green throughout, and so were"
-         " the casements. The fourth was furnished and lighted with 
orange--the"
-         " fifth with white--the sixth with violet. The seventh apartment was"
-         " closely shrouded in black velvet tapestries that hung all over the"
-         " ceiling and down the walls, falling in heavy folds upon a carpet of"
-         " the same material and hue. But in this chamber only, the color of"
-         " the windows failed to correspond with the decorations. The panes"
-         " here were scarlet--a deep blood color. Now in no one of the seven"
-         " apartments was there any lamp or candelabrum, amid the profusion of"
-         " golden ornaments that lay scattered to and fro or depended from the"
-         " roof. There was no light of any kind emanating from lamp or candle"
-         " within the suite of chambers. But in the corridors that followed 
the"
-         " suite, there stood, opposite to each window, a heavy tripod, 
bearing"
-         " a brazier of fire, that projected its rays through the tinted glass"
-         " and so glaringly illumined the room. And thus were produced a"
-         " multitude of gaudy and fantastic appearances. But in the western or"
-         " black chamber the effect of the fire-light that streamed upon the"
-         " dark hangings through the blood-tinted panes, was ghastly in the"
-         " extreme, and produced so wild a look upon the countenances of those"
-         " who entered, that there were few of the company bold enough to set"
-         " foot within its precincts at all."
-        );
+    item("IrrDbFootnote")              = S_Poe0;
+    item("IrrCsvFootnote")             = S_Poe1;
+    item("MortalityChargesFootnote")   = S_Poe2;
+    item("PolicyYearFootnote")         = S_Poe3;
 }
 
 sample2xyz::sample2xyz()
diff --git a/product_data.hpp b/product_data.hpp
index 7fd8e61..24fd937 100644
--- a/product_data.hpp
+++ b/product_data.hpp
@@ -294,7 +294,8 @@ class LMI_SO product_data
     glossed_string FlexiblePremiumFootnote;
     glossed_string GuaranteedValuesFootnote;
     glossed_string CreditingRateFootnote;
-    glossed_string DefnGuarGenAcctRate;
+// out of order:
+//  glossed_string DefnGuarGenAcctRate;
     glossed_string GrossRateFootnote;
     glossed_string NetRateFootnote;
     glossed_string MecFootnote;
@@ -362,6 +363,7 @@ class LMI_SO product_data
     glossed_string FnGuaranteedPremium;
     glossed_string FnOmnibusDisclaimer;
     glossed_string FnInitialDbo;
+    glossed_string DefnGuarGenAcctRate;
     glossed_string DefnAV;
     glossed_string DefnCSV;
     glossed_string DefnMec;
diff --git a/sample.hpp b/sample.hpp
index a1c194b..697f108 100644
--- a/sample.hpp
+++ b/sample.hpp
@@ -50,9 +50,388 @@ namespace superior
 
 enum lingo : int
     {empty_string = 0
+
+    // Essential strings describing the policy and company.
     ,policy_form_term
     ,policy_form
     ,policy_form_KS_KY
+    // LINGO !! expunge next line:
+    ,policy_form_alternative
+    ,policy_form_alternative_term
+    ,policy_mktg_name
+    ,policy_mktg_name_term
+    ,policy_legal_name
+    ,policy_legal_name_term
+    ,insco_short_name
+    ,insco_short_name_term
+    ,insco_name
+    ,insco_name_term
+    ,insco_addr
+    ,insco_addr_term
+    ,insco_street
+    ,insco_street_term
+    ,insco_phone
+    ,insco_phone_term
+//  ,insco_domicile      // expunge
+//  ,insco_domicile_term // expunge
+    ,main_underwriter
+    ,main_underwriter_term
+    ,main_underwriter_address
+    ,main_underwriter_address_term
+    ,counderwriter
+    ,counderwriter_term
+    ,counderwriter_address
+    ,counderwriter_address_term
+
+    // Terms defined in the contract, which must be used for column
+    // headers, footnotes, etc. according to the illustration reg.
+    ,av_name
+    ,av_name_term
+    ,csv_name
+    ,csv_name_term
+    ,csv_header_name
+    ,csv_header_name_term
+    ,no_lapse_provision_name
+    ,no_lapse_provision_name_term
+    ,contract_name
+    ,contract_name_term
+    ,dbo_name
+    ,dbo_name_term
+    ,dbo_name_level
+    ,dbo_name_level_term
+    ,dbo_name_increasing
+    ,dbo_name_increasing_term
+    ,dbo_name_return_of_premium
+    ,dbo_name_return_of_premium_term
+    ,dbo_name_min_death_benefit
+    ,dbo_name_min_death_benefit_term
+    ,gen_acct_name
+    ,gen_acct_name_term
+    ,gen_acct_name_elaborated
+    ,gen_acct_name_elaborated_term
+    ,sep_acct_name
+    ,sep_acct_name_term
+    ,spec_amt_name
+    ,spec_amt_name_term
+    ,spec_amt_name_elaborated
+    ,spec_amt_name_elaborated_term
+
+    // Underwriting terms.
+    ,uw_basis_medical
+    ,uw_basis_medical_term
+    ,uw_basis_paramedical
+    ,uw_basis_paramedical_term
+    ,uw_basis_nonmedical
+    ,uw_basis_nonmedical_term
+    ,uw_basis_simplified
+    ,uw_basis_simplified_term
+    ,uw_basis_guaranteed
+    ,uw_basis_guaranteed_term
+    ,uw_class_preferred
+    ,uw_class_preferred_term
+    ,uw_class_standard
+    ,uw_class_standard_term
+    ,uw_class_rated
+    ,uw_class_rated_term
+    ,uw_class_ultra
+    ,uw_class_ultra_term
+
+    // Ledger column definitions.
+    ,account_value_footnote
+    ,account_value_footnote_term
+    ,attained_age_footnote
+    ,attained_age_footnote_term
+    ,cash_surr_value_footnote
+    ,cash_surr_value_footnote_term
+    ,death_benefit_footnote
+    ,death_benefit_footnote_term
+    ,initial_premium_footnote
+    ,initial_premium_footnote_term
+    ,net_premium_footnote
+    ,net_premium_footnote_term
+    ,gross_premium_footnote
+    ,gross_premium_footnote_term
+    ,outlay_footnote
+    ,outlay_footnote_term
+    ,policy_year_footnote
+    ,policy_year_footnote_term
+
+    // Terse rider names.
+    ,add_terse_name
+    ,add_terse_name_term
+    ,insurability_terse_name
+    ,insurability_terse_name_term
+    ,child_terse_name
+    ,child_terse_name_term
+    ,spouse_terse_name
+    ,spouse_terse_name_term
+    ,term_terse_name
+    ,term_terse_name_term
+    ,waiver_terse_name
+    ,waiver_terse_name_term
+    ,accel_bft_rider_terse_name
+    ,accel_bft_rider_terse_name_term
+    ,overloan_rider_terse_name
+    ,overloan_rider_terse_name_term
+
+    // Rider footnotes.
+    ,add_footnote
+    ,add_footnote_term
+    ,child_footnote
+    ,child_footnote_term
+    ,spouse_footnote
+    ,spouse_footnote_term
+    ,term_footnote
+    ,term_footnote_term
+    ,waiver_footnote
+    ,waiver_footnote_term
+    ,accel_bft_rider_footnote
+    ,accel_bft_rider_footnote_term
+    ,overloan_rider_footnote
+    ,overloan_rider_footnote_term
+
+    // Group quotes.
+    ,group_quote_short_product_name
+    ,group_quote_short_product_name_term
+    ,group_quote_is_not_an_offer
+    ,group_quote_is_not_an_offer_term
+    ,group_quote_riders_footer
+    ,group_quote_riders_footer_term
+    ,group_quote_policy_form_id
+    ,group_quote_policy_form_id_term
+    ,group_quote_state_variations
+    ,group_quote_state_variations_term
+    ,group_quote_prospectus
+    ,group_quote_prospectus_term
+    ,group_quote_underwriter
+    ,group_quote_underwriter_term
+    ,group_quote_broker_dealer
+    ,group_quote_broker_dealer_term
+    // Group plan type is one of:
+    //   -Mandatory: no individual selection of amounts; typically,
+    //     the employer pays the entire premium
+    //   -Voluntary: individual selection of amounts; typically, the
+    //      employee pays the premium; may be called "supplemental"
+    //      when it complements a (separate) "mandatory" plan
+    //   -Fusion: mandatory and supplemental combined; typically, the
+    //      employer and employee pay their respective premiums
+    ,group_quote_rubric_mandatory
+    ,group_quote_rubric_mandatory_term
+    ,group_quote_rubric_voluntary
+    ,group_quote_rubric_voluntary_term
+    ,group_quote_rubric_fusion
+    ,group_quote_rubric_fusion_term
+    ,group_quote_footer_mandatory
+    ,group_quote_footer_mandatory_term
+    ,group_quote_footer_voluntary
+    ,group_quote_footer_voluntary_term
+    ,group_quote_footer_fusion
+    ,group_quote_footer_fusion_term
+
+    // Premium-specific footnotes.
+    ,minimum_premium_footnote
+    ,minimum_premium_footnote_term
+    ,prem_allocation_footnote
+    ,prem_allocation_footnote_term
+
+    // Miscellaneous other footnotes.
+    ,interest_disclaimer
+    ,interest_disclaimer_term
+    ,guar_mortality_footnote
+    ,guar_mortality_footnote_term
+    ,product_description
+    ,product_description_term
+    ,stable_value_footnote
+    ,stable_value_footnote_term
+    ,no_vanish_premium_footnote
+    ,no_vanish_premium_footnote_term
+    ,reject_premium_footnote
+    ,reject_premium_footnote_term
+    ,exp_rating_footnote
+    ,exp_rating_footnote_term
+    ,mortality_blend_footnote
+    ,mortality_blend_footnote_term
+    ,hypothetical_rates_footnote
+    ,hypothetical_rates_footnote_term
+    ,sales_load_refund_footnote
+    ,sales_load_refund_footnote_term
+    ,no_lapse_ever_footnote
+    ,no_lapse_ever_footnote_term
+    ,no_lapse_footnote
+    ,no_lapse_footnote_term
+    ,current_values_footnote
+    ,current_values_footnote_term
+    ,dbo1_footnote
+    ,dbo1_footnote_term
+    ,dbo2_footnote
+    ,dbo2_footnote_term
+    ,dbo3_footnote
+    ,dbo3_footnote_term
+    ,min_death_benefit_footnote
+    ,min_death_benefit_footnote_term
+    ,exp_rat_risk_charge_footnote
+    ,exp_rat_risk_charge_footnote_term
+    ,exchange_charge_footnote1
+    ,exchange_charge_footnote1_term
+    ,flexible_premium_footnote
+    ,flexible_premium_footnote_term
+    ,guaranteed_values_footnote
+    ,guaranteed_values_footnote_term
+    ,crediting_rate_footnote
+    ,crediting_rate_footnote_term
+// out of order:
+//  ,defn_guar_gen_acct_rate
+//  ,defn_guar_gen_acct_rate_term
+    ,gross_rate_footnote
+    ,gross_rate_footnote_term
+    ,net_rate_footnote
+    ,net_rate_footnote_term
+    ,mec_footnote
+    ,mec_footnote_term
+    ,gpt_footnote
+    ,gpt_footnote_term
+    ,midpoint_values_footnote
+    ,midpoint_values_footnote_term
+    ,single_premium_footnote
+    ,single_premium_footnote_term
+    ,monthly_charges_footnote
+    ,monthly_charges_footnote_term
+    ,ult_crediting_rate_footnote
+    ,ult_crediting_rate_footnote_term
+    ,ult_crediting_rate_header
+    ,ult_crediting_rate_header_term
+    ,max_naar_footnote
+    ,max_naar_footnote_term
+    ,prem_tax_surr_chg_footnote
+    ,prem_tax_surr_chg_footnote_term
+    ,policy_fee_footnote
+    ,policy_fee_footnote_term
+    ,asset_charge_footnote
+    ,asset_charge_footnote_term
+    ,investment_income_footnote
+    ,investment_income_footnote_term
+    ,irr_db_footnote
+    ,irr_db_footnote_term
+    ,irr_csv_footnote
+    ,irr_csv_footnote_term
+    ,mortality_charges_footnote
+    ,mortality_charges_footnote_term
+    ,loan_and_withdrawal_footnote
+    ,loan_and_withdrawal_footnote_term
+    ,loan_footnote
+    ,loan_footnote_term
+    ,imprimatur_presale
+    ,imprimatur_presale_term
+    ,imprimatur_presale_composite
+    ,imprimatur_presale_composite_term
+    ,imprimatur_inforce
+    ,imprimatur_inforce_term
+    ,imprimatur_inforce_composite
+    ,imprimatur_inforce_composite_term
+    ,state_marketing_imprimatur
+    ,state_marketing_imprimatur_term
+    ,non_guaranteed_footnote
+    ,non_guaranteed_footnote_term
+    ,non_guaranteed_footnote1
+    ,non_guaranteed_footnote1_term
+    ,non_guaranteed_footnote1tx
+    ,non_guaranteed_footnote1tx_term
+    ,fn_monthly_deductions
+    ,fn_monthly_deductions_term
+    ,surrender_footnote
+    ,surrender_footnote_term
+    ,portability_footnote
+    ,portability_footnote_term
+    ,fund_rate_footnote
+    ,fund_rate_footnote_term
+    ,issuing_company_footnote
+    ,issuing_company_footnote_term
+    ,subsidiary_footnote
+    ,subsidiary_footnote_term
+    ,placement_agent_footnote
+    ,placement_agent_footnote_term
+    ,marketing_name_footnote
+    ,marketing_name_footnote_term
+    ,guar_issue_disclaimer_nc_sc
+    ,guar_issue_disclaimer_nc_sc_term
+    ,guar_issue_disclaimer_md
+    ,guar_issue_disclaimer_md_term
+    ,guar_issue_disclaimer_tx
+    ,guar_issue_disclaimer_tx_term
+    ,ill_reg_cert_agent
+    ,ill_reg_cert_agent_term
+    ,ill_reg_cert_agent_il
+    ,ill_reg_cert_agent_il_term
+    ,ill_reg_cert_agent_tx
+    ,ill_reg_cert_agent_tx_term
+    ,ill_reg_cert_client
+    ,ill_reg_cert_client_term
+    ,ill_reg_cert_client_il
+    ,ill_reg_cert_client_il_term
+    ,ill_reg_cert_client_tx
+    ,ill_reg_cert_client_tx_term
+    ,fn_maturity_age
+    ,fn_maturity_age_term
+    ,fn_partial_mortality
+    ,fn_partial_mortality_term
+    ,fn_prospectus
+    ,fn_prospectus_term
+    ,fn_initial_spec_amt
+    ,fn_initial_spec_amt_term
+    ,fn_inforce_acct_val
+    ,fn_inforce_acct_val_term
+    ,fn_inforce_tax_basis
+    ,fn_inforce_tax_basis_term
+    ,fn1035charge
+    ,fn1035charge_term
+    ,fn_mec_extra_warning
+    ,fn_mec_extra_warning_term
+    ,fn_not_tax_advice
+    ,fn_not_tax_advice_term
+    ,fn_not_tax_advice2
+    ,fn_not_tax_advice2_term
+    ,fn_imf
+    ,fn_imf_term
+    ,fn_census
+    ,fn_census_term
+    ,fn_dac_tax
+    ,fn_dac_tax_term
+    ,fn_defn_life_ins
+    ,fn_defn_life_ins_term
+    ,fn_boy_eoy
+    ,fn_boy_eoy_term
+    ,fn_general_account
+    ,fn_general_account_term
+    ,fn_pp_memorandum
+    ,fn_pp_memorandum_term
+    ,fn_pp_accredited_investor
+    ,fn_pp_accredited_investor_term
+    ,fn_pp_loads
+    ,fn_pp_loads_term
+    ,fn_proposal_underwriting
+    ,fn_proposal_underwriting_term
+    ,fn_guaranteed_premium
+    ,fn_guaranteed_premium_term
+    ,fn_omnibus_disclaimer
+    ,fn_omnibus_disclaimer_term
+    ,fn_initial_dbo
+    ,fn_initial_dbo_term
+    ,defn_guar_gen_acct_rate
+    ,defn_guar_gen_acct_rate_term
+    ,defn_av
+    ,defn_av_term
+    ,defn_csv
+    ,defn_csv_term
+    ,defn_mec
+    ,defn_mec_term
+    ,defn_outlay
+    ,defn_outlay_term
+    ,defn_spec_amt
+    ,defn_spec_amt_term
+    ,poe_0
+    ,poe_1
+    ,poe_2
+    ,poe_3
     };
 } // namespace superior
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]