Rohtak.java

  1. package org.drip.sample.securitysuite;

  2. import org.drip.analytics.cashflow.CompositePeriod;
  3. import org.drip.analytics.date.*;
  4. import org.drip.numerical.common.FormatUtil;
  5. import org.drip.numerical.linearalgebra.Matrix;
  6. import org.drip.product.creator.BondBuilder;
  7. import org.drip.product.credit.BondComponent;
  8. import org.drip.service.env.EnvManager;
  9. import org.drip.service.scenario.*;

  10. /*
  11.  * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  12.  */

  13. /*!
  14.  * Copyright (C) 2018 Lakshmi Krishnamurthy
  15.  * Copyright (C) 2017 Lakshmi Krishnamurthy
  16.  *
  17.  *  This file is part of DRIP, a free-software/open-source library for buy/side financial/trading model
  18.  *      libraries targeting analysts and developers
  19.  *      https://lakshmidrip.github.io/DRIP/
  20.  *  
  21.  *  DRIP is composed of four main libraries:
  22.  *  
  23.  *  - DRIP Fixed Income - https://lakshmidrip.github.io/DRIP-Fixed-Income/
  24.  *  - DRIP Asset Allocation - https://lakshmidrip.github.io/DRIP-Asset-Allocation/
  25.  *  - DRIP Numerical Optimizer - https://lakshmidrip.github.io/DRIP-Numerical-Optimizer/
  26.  *  - DRIP Statistical Learning - https://lakshmidrip.github.io/DRIP-Statistical-Learning/
  27.  *
  28.  *  - DRIP Fixed Income: Library for Instrument/Trading Conventions, Treasury Futures/Options,
  29.  *      Funding/Forward/Overnight Curves, Multi-Curve Construction/Valuation, Collateral Valuation and XVA
  30.  *      Metric Generation, Calibration and Hedge Attributions, Statistical Curve Construction, Bond RV
  31.  *      Metrics, Stochastic Evolution and Option Pricing, Interest Rate Dynamics and Option Pricing, LMM
  32.  *      Extensions/Calibrations/Greeks, Algorithmic Differentiation, and Asset Backed Models and Analytics.
  33.  *
  34.  *  - DRIP Asset Allocation: Library for model libraries for MPT framework, Black Litterman Strategy
  35.  *      Incorporator, Holdings Constraint, and Transaction Costs.
  36.  *
  37.  *  - DRIP Numerical Optimizer: Library for Numerical Optimization and Spline Functionality.
  38.  *
  39.  *  - DRIP Statistical Learning: Library for Statistical Evaluation and Machine Learning.
  40.  *
  41.  *  Licensed under the Apache License, Version 2.0 (the "License");
  42.  *      you may not use this file except in compliance with the License.
  43.  *  
  44.  *  You may obtain a copy of the License at
  45.  *      http://www.apache.org/licenses/LICENSE-2.0
  46.  *  
  47.  *  Unless required by applicable law or agreed to in writing, software
  48.  *      distributed under the License is distributed on an "AS IS" BASIS,
  49.  *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  50.  *  
  51.  *  See the License for the specific language governing permissions and
  52.  *      limitations under the License.
  53.  */

  54. /**
  55.  * Rohtak generates the Full Suite of Replication Metrics for Bond Rohtak.
  56.  *
  57.  * @author Lakshmi Krishnamurthy
  58.  */

  59. public class Rohtak {

  60.     public static final void main (
  61.         final String[] astArgs)
  62.         throws Exception
  63.     {
  64.         EnvManager.InitEnv ("");

  65.         JulianDate dtSpot = DateUtil.CreateFromYMD (
  66.             2017,
  67.             DateUtil.OCTOBER,
  68.             5
  69.         );

  70.         String[] astrDepositTenor = new String[] {
  71.             "2D"
  72.         };

  73.         double[] adblDepositQuote = new double[] {
  74.             0.0130411 // 2D
  75.         };

  76.         double[] adblFuturesQuote = new double[] {
  77.             0.01345,    // 98.655
  78.             0.01470,    // 98.530
  79.             0.01575,    // 98.425
  80.             0.01660,    // 98.340
  81.             0.01745,    // 98.255
  82.             0.01845     // 98.155
  83.         };

  84.         String[] astrFixFloatTenor = new String[] {
  85.             "02Y",
  86.             "03Y",
  87.             "04Y",
  88.             "05Y",
  89.             "06Y",
  90.             "07Y",
  91.             "08Y",
  92.             "09Y",
  93.             "10Y",
  94.             "11Y",
  95.             "12Y",
  96.             "15Y",
  97.             "20Y",
  98.             "25Y",
  99.             "30Y",
  100.             "40Y",
  101.             "50Y"
  102.         };

  103.         String[] astrGovvieTenor = new String[] {
  104.             "1Y",
  105.             "2Y",
  106.             "3Y",
  107.             "5Y",
  108.             "7Y",
  109.             "10Y",
  110.             "20Y",
  111.             "30Y"
  112.         };

  113.         double[] adblFixFloatQuote = new double[] {
  114.             0.016410, //  2Y
  115.             0.017863, //  3Y
  116.             0.019030, //  4Y
  117.             0.020035, //  5Y
  118.             0.020902, //  6Y
  119.             0.021660, //  7Y
  120.             0.022307, //  8Y
  121.             0.022879, //  9Y
  122.             0.023363, // 10Y
  123.             0.023820, // 11Y
  124.             0.024172, // 12Y
  125.             0.024934, // 15Y
  126.             0.025581, // 20Y
  127.             0.025906, // 25Y
  128.             0.025973, // 30Y
  129.             0.025838, // 40Y
  130.             0.025560  // 50Y
  131.         };

  132.         double[] adblGovvieYield = new double[] {
  133.             0.01219, //  1Y
  134.             0.01391, //  2Y
  135.             0.01590, //  3Y
  136.             0.01937, //  5Y
  137.             0.02200, //  7Y
  138.             0.02378, // 10Y
  139.             0.02677, // 20Y
  140.             0.02927  // 30Y
  141.         };

  142.         String[] astrCreditTenor = new String[] {
  143.             "06M",
  144.             "01Y",
  145.             "02Y",
  146.             "03Y",
  147.             "04Y",
  148.             "05Y",
  149.             "07Y",
  150.             "10Y"
  151.         };

  152.         double[] adblCreditQuote = new double[] {
  153.              60.,   //  6M
  154.              68.,   //  1Y
  155.              88.,   //  2Y
  156.             102.,   //  3Y
  157.             121.,   //  4Y
  158.             138.,   //  5Y
  159.             168.,   //  7Y
  160.             188.    // 10Y
  161.         };

  162.         double dblFX = 1.;
  163.         int iSettleLag = 3;
  164.         int iCouponFreq = 12;
  165.         String strName = "Rohtak";
  166.         double dblCleanPrice = 0.95;
  167.         double dblIssuePrice = 1.;
  168.         String strCurrency = "USD";
  169.         double dblSpreadBump = 20.;
  170.         double dblCouponRate = 0.03;
  171.         String strTreasuryCode = "UST";
  172.         String strCouponDayCount = "30/360";
  173.         double dblSpreadDurationMultiplier = 5.;

  174.         org.drip.analytics.date.JulianDate[] adtPeriodEnd = new org.drip.analytics.date.JulianDate[] {
  175.             DateUtil.CreateFromYMD (2017, DateUtil.OCTOBER  , 25),
  176.             DateUtil.CreateFromYMD (2017, DateUtil.NOVEMBER , 25),
  177.             DateUtil.CreateFromYMD (2017, DateUtil.DECEMBER , 25),
  178.             DateUtil.CreateFromYMD (2018, DateUtil.JANUARY  , 25),
  179.             DateUtil.CreateFromYMD (2018, DateUtil.FEBRUARY , 25),
  180.             DateUtil.CreateFromYMD (2018, DateUtil.MARCH    , 25),
  181.             DateUtil.CreateFromYMD (2018, DateUtil.APRIL    , 25),
  182.             DateUtil.CreateFromYMD (2018, DateUtil.MAY      , 25),
  183.             DateUtil.CreateFromYMD (2018, DateUtil.JUNE     , 25),
  184.             DateUtil.CreateFromYMD (2018, DateUtil.JULY     , 25),
  185.             DateUtil.CreateFromYMD (2018, DateUtil.AUGUST   , 25),
  186.             DateUtil.CreateFromYMD (2018, DateUtil.SEPTEMBER, 25),
  187.             DateUtil.CreateFromYMD (2018, DateUtil.OCTOBER  , 25),
  188.             DateUtil.CreateFromYMD (2018, DateUtil.NOVEMBER , 25),
  189.             DateUtil.CreateFromYMD (2018, DateUtil.DECEMBER , 25),
  190.             DateUtil.CreateFromYMD (2019, DateUtil.JANUARY  , 25),
  191.             DateUtil.CreateFromYMD (2019, DateUtil.FEBRUARY , 25),
  192.             DateUtil.CreateFromYMD (2019, DateUtil.MARCH    , 25),
  193.             DateUtil.CreateFromYMD (2019, DateUtil.APRIL    , 25),
  194.             DateUtil.CreateFromYMD (2019, DateUtil.MAY      , 25),
  195.             DateUtil.CreateFromYMD (2019, DateUtil.JUNE     , 25),
  196.             DateUtil.CreateFromYMD (2019, DateUtil.JULY     , 25),
  197.             DateUtil.CreateFromYMD (2019, DateUtil.AUGUST   , 25),
  198.             DateUtil.CreateFromYMD (2019, DateUtil.SEPTEMBER, 25),
  199.             DateUtil.CreateFromYMD (2019, DateUtil.OCTOBER  , 25),
  200.             DateUtil.CreateFromYMD (2019, DateUtil.NOVEMBER , 25),
  201.             DateUtil.CreateFromYMD (2019, DateUtil.DECEMBER , 25),
  202.             DateUtil.CreateFromYMD (2020, DateUtil.JANUARY  , 25),
  203.             DateUtil.CreateFromYMD (2020, DateUtil.FEBRUARY , 25),
  204.             DateUtil.CreateFromYMD (2020, DateUtil.MARCH    , 25),
  205.             DateUtil.CreateFromYMD (2020, DateUtil.APRIL    , 25),
  206.             DateUtil.CreateFromYMD (2020, DateUtil.MAY      , 25),
  207.             DateUtil.CreateFromYMD (2020, DateUtil.JUNE     , 25),
  208.             DateUtil.CreateFromYMD (2020, DateUtil.JULY     , 25),
  209.             DateUtil.CreateFromYMD (2020, DateUtil.AUGUST   , 25),
  210.             DateUtil.CreateFromYMD (2020, DateUtil.SEPTEMBER, 25),
  211.             DateUtil.CreateFromYMD (2020, DateUtil.OCTOBER  , 25),
  212.             DateUtil.CreateFromYMD (2020, DateUtil.NOVEMBER , 25),
  213.             DateUtil.CreateFromYMD (2020, DateUtil.DECEMBER , 25),
  214.             DateUtil.CreateFromYMD (2021, DateUtil.JANUARY  , 25),
  215.             DateUtil.CreateFromYMD (2021, DateUtil.FEBRUARY , 25),
  216.             DateUtil.CreateFromYMD (2021, DateUtil.MARCH    , 25),
  217.             DateUtil.CreateFromYMD (2021, DateUtil.APRIL    , 25),
  218.             DateUtil.CreateFromYMD (2021, DateUtil.MAY      , 25),
  219.             DateUtil.CreateFromYMD (2021, DateUtil.JUNE     , 25),
  220.             DateUtil.CreateFromYMD (2021, DateUtil.JULY     , 25),
  221.             DateUtil.CreateFromYMD (2021, DateUtil.AUGUST   , 25),
  222.             DateUtil.CreateFromYMD (2021, DateUtil.SEPTEMBER, 25),
  223.             DateUtil.CreateFromYMD (2021, DateUtil.OCTOBER  , 25),
  224.             DateUtil.CreateFromYMD (2021, DateUtil.NOVEMBER , 25),
  225.             DateUtil.CreateFromYMD (2021, DateUtil.DECEMBER , 25),
  226.             DateUtil.CreateFromYMD (2022, DateUtil.JANUARY  , 25),
  227.             DateUtil.CreateFromYMD (2022, DateUtil.FEBRUARY , 25),
  228.             DateUtil.CreateFromYMD (2022, DateUtil.MARCH    , 25),
  229.             DateUtil.CreateFromYMD (2022, DateUtil.APRIL    , 25),
  230.             DateUtil.CreateFromYMD (2022, DateUtil.MAY      , 25),
  231.             DateUtil.CreateFromYMD (2022, DateUtil.JUNE     , 25),
  232.             DateUtil.CreateFromYMD (2022, DateUtil.JULY     , 25),
  233.             DateUtil.CreateFromYMD (2022, DateUtil.AUGUST   , 25),
  234.             DateUtil.CreateFromYMD (2022, DateUtil.SEPTEMBER, 25),
  235.             DateUtil.CreateFromYMD (2022, DateUtil.OCTOBER  , 25),
  236.             DateUtil.CreateFromYMD (2022, DateUtil.NOVEMBER , 25),
  237.             DateUtil.CreateFromYMD (2022, DateUtil.DECEMBER , 25),
  238.             DateUtil.CreateFromYMD (2023, DateUtil.JANUARY  , 25),
  239.             DateUtil.CreateFromYMD (2023, DateUtil.FEBRUARY , 25),
  240.             DateUtil.CreateFromYMD (2023, DateUtil.MARCH    , 25),
  241.             DateUtil.CreateFromYMD (2023, DateUtil.APRIL    , 25),
  242.             DateUtil.CreateFromYMD (2023, DateUtil.MAY      , 25),
  243.             DateUtil.CreateFromYMD (2023, DateUtil.JUNE     , 25),
  244.             DateUtil.CreateFromYMD (2023, DateUtil.JULY     , 25),
  245.             DateUtil.CreateFromYMD (2023, DateUtil.AUGUST   , 25),
  246.             DateUtil.CreateFromYMD (2023, DateUtil.SEPTEMBER, 25),
  247.             DateUtil.CreateFromYMD (2023, DateUtil.OCTOBER  , 25),
  248.             DateUtil.CreateFromYMD (2023, DateUtil.NOVEMBER , 25),
  249.             DateUtil.CreateFromYMD (2023, DateUtil.DECEMBER , 25),
  250.             DateUtil.CreateFromYMD (2024, DateUtil.JANUARY  , 25),
  251.             DateUtil.CreateFromYMD (2024, DateUtil.FEBRUARY , 25),
  252.             DateUtil.CreateFromYMD (2024, DateUtil.MARCH    , 25),
  253.             DateUtil.CreateFromYMD (2024, DateUtil.APRIL    , 25),
  254.             DateUtil.CreateFromYMD (2024, DateUtil.MAY      , 25),
  255.             DateUtil.CreateFromYMD (2024, DateUtil.JUNE     , 25),
  256.             DateUtil.CreateFromYMD (2024, DateUtil.JULY     , 25),
  257.             DateUtil.CreateFromYMD (2024, DateUtil.AUGUST   , 25),
  258.             DateUtil.CreateFromYMD (2024, DateUtil.SEPTEMBER, 25),
  259.             DateUtil.CreateFromYMD (2024, DateUtil.OCTOBER  , 25),
  260.             DateUtil.CreateFromYMD (2024, DateUtil.NOVEMBER , 25),
  261.             DateUtil.CreateFromYMD (2024, DateUtil.DECEMBER , 25),
  262.             DateUtil.CreateFromYMD (2025, DateUtil.JANUARY  , 25),
  263.             DateUtil.CreateFromYMD (2025, DateUtil.FEBRUARY , 25),
  264.             DateUtil.CreateFromYMD (2025, DateUtil.MARCH    , 25),
  265.             DateUtil.CreateFromYMD (2025, DateUtil.APRIL    , 25),
  266.             DateUtil.CreateFromYMD (2025, DateUtil.MAY      , 25),
  267.             DateUtil.CreateFromYMD (2025, DateUtil.JUNE     , 25),
  268.             DateUtil.CreateFromYMD (2025, DateUtil.JULY     , 25),
  269.             DateUtil.CreateFromYMD (2025, DateUtil.AUGUST   , 25),
  270.             DateUtil.CreateFromYMD (2025, DateUtil.SEPTEMBER, 25),
  271.             DateUtil.CreateFromYMD (2025, DateUtil.OCTOBER  , 25),
  272.             DateUtil.CreateFromYMD (2025, DateUtil.NOVEMBER , 25),
  273.             DateUtil.CreateFromYMD (2025, DateUtil.DECEMBER , 25),
  274.             DateUtil.CreateFromYMD (2026, DateUtil.JANUARY  , 25),
  275.             DateUtil.CreateFromYMD (2026, DateUtil.FEBRUARY , 25),
  276.             DateUtil.CreateFromYMD (2026, DateUtil.MARCH    , 25),
  277.             DateUtil.CreateFromYMD (2026, DateUtil.APRIL    , 25),
  278.             DateUtil.CreateFromYMD (2026, DateUtil.MAY      , 25),
  279.             DateUtil.CreateFromYMD (2026, DateUtil.JUNE     , 25),
  280.             DateUtil.CreateFromYMD (2026, DateUtil.JULY     , 25),
  281.             DateUtil.CreateFromYMD (2026, DateUtil.AUGUST   , 25),
  282.             DateUtil.CreateFromYMD (2026, DateUtil.SEPTEMBER, 25),
  283.             DateUtil.CreateFromYMD (2026, DateUtil.OCTOBER  , 25),
  284.             DateUtil.CreateFromYMD (2026, DateUtil.NOVEMBER , 25),
  285.             DateUtil.CreateFromYMD (2026, DateUtil.DECEMBER , 25),
  286.             DateUtil.CreateFromYMD (2027, DateUtil.JANUARY  , 25),
  287.             DateUtil.CreateFromYMD (2027, DateUtil.FEBRUARY , 25),
  288.             DateUtil.CreateFromYMD (2027, DateUtil.MARCH    , 25),
  289.             DateUtil.CreateFromYMD (2027, DateUtil.APRIL    , 25),
  290.             DateUtil.CreateFromYMD (2027, DateUtil.MAY      , 25),
  291.             DateUtil.CreateFromYMD (2027, DateUtil.JUNE     , 25),
  292.             DateUtil.CreateFromYMD (2027, DateUtil.JULY     , 25),
  293.             DateUtil.CreateFromYMD (2027, DateUtil.AUGUST   , 25),
  294.             DateUtil.CreateFromYMD (2027, DateUtil.SEPTEMBER, 25),
  295.             DateUtil.CreateFromYMD (2027, DateUtil.OCTOBER  , 25),
  296.             DateUtil.CreateFromYMD (2027, DateUtil.NOVEMBER , 25),
  297.             DateUtil.CreateFromYMD (2027, DateUtil.DECEMBER , 25),
  298.             DateUtil.CreateFromYMD (2028, DateUtil.JANUARY  , 25),
  299.             DateUtil.CreateFromYMD (2028, DateUtil.FEBRUARY , 25),
  300.             DateUtil.CreateFromYMD (2028, DateUtil.MARCH    , 25),
  301.             DateUtil.CreateFromYMD (2028, DateUtil.APRIL    , 25),
  302.             DateUtil.CreateFromYMD (2028, DateUtil.MAY      , 25),
  303.             DateUtil.CreateFromYMD (2028, DateUtil.JUNE     , 25),
  304.             DateUtil.CreateFromYMD (2028, DateUtil.JULY     , 25),
  305.             DateUtil.CreateFromYMD (2028, DateUtil.AUGUST   , 25),
  306.             DateUtil.CreateFromYMD (2028, DateUtil.SEPTEMBER, 25),
  307.             DateUtil.CreateFromYMD (2028, DateUtil.OCTOBER  , 25),
  308.             DateUtil.CreateFromYMD (2028, DateUtil.NOVEMBER , 25),
  309.             DateUtil.CreateFromYMD (2028, DateUtil.DECEMBER , 25),
  310.             DateUtil.CreateFromYMD (2029, DateUtil.JANUARY  , 25),
  311.             DateUtil.CreateFromYMD (2029, DateUtil.FEBRUARY , 25),
  312.             DateUtil.CreateFromYMD (2029, DateUtil.MARCH    , 25),
  313.             DateUtil.CreateFromYMD (2029, DateUtil.APRIL    , 25),
  314.             DateUtil.CreateFromYMD (2029, DateUtil.MAY      , 25),
  315.             DateUtil.CreateFromYMD (2029, DateUtil.JUNE     , 25),
  316.             DateUtil.CreateFromYMD (2029, DateUtil.JULY     , 25),
  317.             DateUtil.CreateFromYMD (2029, DateUtil.AUGUST   , 25),
  318.             DateUtil.CreateFromYMD (2029, DateUtil.SEPTEMBER, 25),
  319.             DateUtil.CreateFromYMD (2029, DateUtil.OCTOBER  , 25),
  320.             DateUtil.CreateFromYMD (2029, DateUtil.NOVEMBER , 25),
  321.             DateUtil.CreateFromYMD (2029, DateUtil.DECEMBER , 25),
  322.             DateUtil.CreateFromYMD (2030, DateUtil.JANUARY  , 25),
  323.             DateUtil.CreateFromYMD (2030, DateUtil.FEBRUARY , 25),
  324.             DateUtil.CreateFromYMD (2030, DateUtil.MARCH    , 25),
  325.             DateUtil.CreateFromYMD (2030, DateUtil.APRIL    , 25),
  326.             DateUtil.CreateFromYMD (2030, DateUtil.MAY      , 25),
  327.             DateUtil.CreateFromYMD (2030, DateUtil.JUNE     , 25),
  328.             DateUtil.CreateFromYMD (2030, DateUtil.JULY     , 25),
  329.             DateUtil.CreateFromYMD (2030, DateUtil.AUGUST   , 25),
  330.             DateUtil.CreateFromYMD (2030, DateUtil.SEPTEMBER, 25),
  331.             DateUtil.CreateFromYMD (2030, DateUtil.OCTOBER  , 25),
  332.             DateUtil.CreateFromYMD (2030, DateUtil.NOVEMBER , 25),
  333.             DateUtil.CreateFromYMD (2030, DateUtil.DECEMBER , 25),
  334.             DateUtil.CreateFromYMD (2031, DateUtil.JANUARY  , 25),
  335.             DateUtil.CreateFromYMD (2031, DateUtil.FEBRUARY , 25),
  336.             DateUtil.CreateFromYMD (2031, DateUtil.MARCH    , 25),
  337.             DateUtil.CreateFromYMD (2031, DateUtil.APRIL    , 25),
  338.             DateUtil.CreateFromYMD (2031, DateUtil.MAY      , 25),
  339.             DateUtil.CreateFromYMD (2031, DateUtil.JUNE     , 25),
  340.             DateUtil.CreateFromYMD (2031, DateUtil.JULY     , 25),
  341.             DateUtil.CreateFromYMD (2031, DateUtil.AUGUST   , 25),
  342.             DateUtil.CreateFromYMD (2031, DateUtil.SEPTEMBER, 25),
  343.             DateUtil.CreateFromYMD (2031, DateUtil.OCTOBER  , 25),
  344.             DateUtil.CreateFromYMD (2031, DateUtil.NOVEMBER , 25),
  345.             DateUtil.CreateFromYMD (2031, DateUtil.DECEMBER , 25),
  346.             DateUtil.CreateFromYMD (2032, DateUtil.JANUARY  , 25),
  347.             DateUtil.CreateFromYMD (2032, DateUtil.FEBRUARY , 25),
  348.             DateUtil.CreateFromYMD (2032, DateUtil.MARCH    , 25),
  349.             DateUtil.CreateFromYMD (2032, DateUtil.APRIL    , 25),
  350.             DateUtil.CreateFromYMD (2032, DateUtil.MAY      , 25),
  351.             DateUtil.CreateFromYMD (2032, DateUtil.JUNE     , 25),
  352.             DateUtil.CreateFromYMD (2032, DateUtil.JULY     , 25),
  353.             DateUtil.CreateFromYMD (2032, DateUtil.AUGUST   , 25),
  354.             DateUtil.CreateFromYMD (2032, DateUtil.SEPTEMBER, 25),
  355.             DateUtil.CreateFromYMD (2032, DateUtil.OCTOBER  , 25),
  356.             DateUtil.CreateFromYMD (2032, DateUtil.NOVEMBER , 25),
  357.             DateUtil.CreateFromYMD (2032, DateUtil.DECEMBER , 25),
  358.             DateUtil.CreateFromYMD (2033, DateUtil.JANUARY  , 25),
  359.             DateUtil.CreateFromYMD (2033, DateUtil.FEBRUARY , 25),
  360.             DateUtil.CreateFromYMD (2033, DateUtil.MARCH    , 25),
  361.             DateUtil.CreateFromYMD (2033, DateUtil.APRIL    , 25),
  362.             DateUtil.CreateFromYMD (2033, DateUtil.MAY      , 25),
  363.             DateUtil.CreateFromYMD (2033, DateUtil.JUNE     , 25),
  364.             DateUtil.CreateFromYMD (2033, DateUtil.JULY     , 25),
  365.             DateUtil.CreateFromYMD (2033, DateUtil.AUGUST   , 25),
  366.             DateUtil.CreateFromYMD (2033, DateUtil.SEPTEMBER, 25),
  367.             DateUtil.CreateFromYMD (2033, DateUtil.OCTOBER  , 25),
  368.             DateUtil.CreateFromYMD (2033, DateUtil.NOVEMBER , 25),
  369.             DateUtil.CreateFromYMD (2033, DateUtil.DECEMBER , 25),
  370.             DateUtil.CreateFromYMD (2034, DateUtil.JANUARY  , 25),
  371.             DateUtil.CreateFromYMD (2034, DateUtil.FEBRUARY , 25),
  372.             DateUtil.CreateFromYMD (2034, DateUtil.MARCH    , 25),
  373.             DateUtil.CreateFromYMD (2034, DateUtil.APRIL    , 25),
  374.             DateUtil.CreateFromYMD (2034, DateUtil.MAY      , 25),
  375.             DateUtil.CreateFromYMD (2034, DateUtil.JUNE     , 25),
  376.             DateUtil.CreateFromYMD (2034, DateUtil.JULY     , 25),
  377.             DateUtil.CreateFromYMD (2034, DateUtil.AUGUST   , 25),
  378.             DateUtil.CreateFromYMD (2034, DateUtil.SEPTEMBER, 25),
  379.             DateUtil.CreateFromYMD (2034, DateUtil.OCTOBER  , 25),
  380.             DateUtil.CreateFromYMD (2034, DateUtil.NOVEMBER , 25),
  381.             DateUtil.CreateFromYMD (2034, DateUtil.DECEMBER , 25),
  382.             DateUtil.CreateFromYMD (2035, DateUtil.JANUARY  , 25),
  383.             DateUtil.CreateFromYMD (2035, DateUtil.FEBRUARY , 25),
  384.             DateUtil.CreateFromYMD (2035, DateUtil.MARCH    , 25),
  385.             DateUtil.CreateFromYMD (2035, DateUtil.APRIL    , 25),
  386.             DateUtil.CreateFromYMD (2035, DateUtil.MAY      , 25),
  387.             DateUtil.CreateFromYMD (2035, DateUtil.JUNE     , 25),
  388.             DateUtil.CreateFromYMD (2035, DateUtil.JULY     , 25),
  389.             DateUtil.CreateFromYMD (2035, DateUtil.AUGUST   , 25),
  390.             DateUtil.CreateFromYMD (2035, DateUtil.SEPTEMBER, 25),
  391.             DateUtil.CreateFromYMD (2035, DateUtil.OCTOBER  , 25),
  392.             DateUtil.CreateFromYMD (2035, DateUtil.NOVEMBER , 25),
  393.             DateUtil.CreateFromYMD (2035, DateUtil.DECEMBER , 25),
  394.             DateUtil.CreateFromYMD (2036, DateUtil.JANUARY  , 25),
  395.             DateUtil.CreateFromYMD (2036, DateUtil.FEBRUARY , 25),
  396.             DateUtil.CreateFromYMD (2036, DateUtil.MARCH    , 25),
  397.             DateUtil.CreateFromYMD (2036, DateUtil.APRIL    , 25),
  398.             DateUtil.CreateFromYMD (2036, DateUtil.MAY      , 25),
  399.             DateUtil.CreateFromYMD (2036, DateUtil.JUNE     , 25),
  400.             DateUtil.CreateFromYMD (2036, DateUtil.JULY     , 25),
  401.             DateUtil.CreateFromYMD (2036, DateUtil.AUGUST   , 25),
  402.             DateUtil.CreateFromYMD (2036, DateUtil.SEPTEMBER, 25),
  403.             DateUtil.CreateFromYMD (2036, DateUtil.OCTOBER  , 25),
  404.             DateUtil.CreateFromYMD (2036, DateUtil.NOVEMBER , 25),
  405.             DateUtil.CreateFromYMD (2036, DateUtil.DECEMBER , 25),
  406.             DateUtil.CreateFromYMD (2037, DateUtil.JANUARY  , 25),
  407.             DateUtil.CreateFromYMD (2037, DateUtil.FEBRUARY , 25),
  408.             DateUtil.CreateFromYMD (2037, DateUtil.MARCH    , 25),
  409.             DateUtil.CreateFromYMD (2037, DateUtil.APRIL    , 25),
  410.             DateUtil.CreateFromYMD (2037, DateUtil.MAY      , 25),
  411.             DateUtil.CreateFromYMD (2037, DateUtil.JUNE     , 25),
  412.             DateUtil.CreateFromYMD (2037, DateUtil.JULY     , 25),
  413.             DateUtil.CreateFromYMD (2037, DateUtil.AUGUST   , 25),
  414.             DateUtil.CreateFromYMD (2037, DateUtil.SEPTEMBER, 25),
  415.             DateUtil.CreateFromYMD (2037, DateUtil.OCTOBER  , 25),
  416.             DateUtil.CreateFromYMD (2037, DateUtil.NOVEMBER , 25),
  417.             DateUtil.CreateFromYMD (2037, DateUtil.DECEMBER , 25),
  418.             DateUtil.CreateFromYMD (2038, DateUtil.JANUARY  , 25),
  419.             DateUtil.CreateFromYMD (2038, DateUtil.FEBRUARY , 25),
  420.             DateUtil.CreateFromYMD (2038, DateUtil.MARCH    , 25),
  421.             DateUtil.CreateFromYMD (2038, DateUtil.APRIL    , 25),
  422.             DateUtil.CreateFromYMD (2038, DateUtil.MAY      , 25),
  423.             DateUtil.CreateFromYMD (2038, DateUtil.JUNE     , 25),
  424.             DateUtil.CreateFromYMD (2038, DateUtil.JULY     , 25),
  425.             DateUtil.CreateFromYMD (2038, DateUtil.AUGUST   , 25),
  426.             DateUtil.CreateFromYMD (2038, DateUtil.SEPTEMBER, 25),
  427.             DateUtil.CreateFromYMD (2038, DateUtil.OCTOBER  , 25),
  428.             DateUtil.CreateFromYMD (2038, DateUtil.NOVEMBER , 25),
  429.             DateUtil.CreateFromYMD (2038, DateUtil.DECEMBER , 25),
  430.             DateUtil.CreateFromYMD (2039, DateUtil.JANUARY  , 25),
  431.             DateUtil.CreateFromYMD (2039, DateUtil.FEBRUARY , 25),
  432.             DateUtil.CreateFromYMD (2039, DateUtil.MARCH    , 25),
  433.             DateUtil.CreateFromYMD (2039, DateUtil.APRIL    , 25),
  434.             DateUtil.CreateFromYMD (2039, DateUtil.MAY      , 25),
  435.             DateUtil.CreateFromYMD (2039, DateUtil.JUNE     , 25),
  436.             DateUtil.CreateFromYMD (2039, DateUtil.JULY     , 25),
  437.             DateUtil.CreateFromYMD (2039, DateUtil.AUGUST   , 25),
  438.             DateUtil.CreateFromYMD (2039, DateUtil.SEPTEMBER, 25),
  439.             DateUtil.CreateFromYMD (2039, DateUtil.OCTOBER  , 25),
  440.             DateUtil.CreateFromYMD (2039, DateUtil.NOVEMBER , 25),
  441.             DateUtil.CreateFromYMD (2039, DateUtil.DECEMBER , 25),
  442.             DateUtil.CreateFromYMD (2040, DateUtil.JANUARY  , 25),
  443.             DateUtil.CreateFromYMD (2040, DateUtil.FEBRUARY , 25),
  444.             DateUtil.CreateFromYMD (2040, DateUtil.MARCH    , 25),
  445.             DateUtil.CreateFromYMD (2040, DateUtil.APRIL    , 25),
  446.             DateUtil.CreateFromYMD (2040, DateUtil.MAY      , 25),
  447.             DateUtil.CreateFromYMD (2040, DateUtil.JUNE     , 25),
  448.             DateUtil.CreateFromYMD (2040, DateUtil.JULY     , 25),
  449.             DateUtil.CreateFromYMD (2040, DateUtil.AUGUST   , 25),
  450.             DateUtil.CreateFromYMD (2040, DateUtil.SEPTEMBER, 25),
  451.             DateUtil.CreateFromYMD (2040, DateUtil.OCTOBER  , 25),
  452.             DateUtil.CreateFromYMD (2040, DateUtil.NOVEMBER , 25),
  453.             DateUtil.CreateFromYMD (2040, DateUtil.DECEMBER , 25),
  454.             DateUtil.CreateFromYMD (2041, DateUtil.JANUARY  , 25),
  455.             DateUtil.CreateFromYMD (2041, DateUtil.FEBRUARY , 25),
  456.             DateUtil.CreateFromYMD (2041, DateUtil.MARCH    , 25),
  457.             DateUtil.CreateFromYMD (2041, DateUtil.APRIL    , 25),
  458.             DateUtil.CreateFromYMD (2041, DateUtil.MAY      , 25),
  459.             DateUtil.CreateFromYMD (2041, DateUtil.JUNE     , 25),
  460.             DateUtil.CreateFromYMD (2041, DateUtil.JULY     , 25),
  461.             DateUtil.CreateFromYMD (2041, DateUtil.AUGUST   , 25),
  462.             DateUtil.CreateFromYMD (2041, DateUtil.SEPTEMBER, 25),
  463.             DateUtil.CreateFromYMD (2041, DateUtil.OCTOBER  , 25),
  464.             DateUtil.CreateFromYMD (2041, DateUtil.NOVEMBER , 25),
  465.             DateUtil.CreateFromYMD (2041, DateUtil.DECEMBER , 25),
  466.             DateUtil.CreateFromYMD (2042, DateUtil.JANUARY  , 25),
  467.             DateUtil.CreateFromYMD (2042, DateUtil.FEBRUARY , 25),
  468.             DateUtil.CreateFromYMD (2042, DateUtil.MARCH    , 25),
  469.             DateUtil.CreateFromYMD (2042, DateUtil.APRIL    , 25),
  470.             DateUtil.CreateFromYMD (2042, DateUtil.MAY      , 25),
  471.             DateUtil.CreateFromYMD (2042, DateUtil.JUNE     , 25),
  472.             DateUtil.CreateFromYMD (2042, DateUtil.JULY     , 25),
  473.             DateUtil.CreateFromYMD (2042, DateUtil.AUGUST   , 25),
  474.             DateUtil.CreateFromYMD (2042, DateUtil.SEPTEMBER, 25),
  475.             DateUtil.CreateFromYMD (2042, DateUtil.OCTOBER  , 25),
  476.             DateUtil.CreateFromYMD (2042, DateUtil.NOVEMBER , 25),
  477.             DateUtil.CreateFromYMD (2042, DateUtil.DECEMBER , 25),
  478.             DateUtil.CreateFromYMD (2043, DateUtil.JANUARY  , 25),
  479.             DateUtil.CreateFromYMD (2043, DateUtil.FEBRUARY , 25),
  480.             DateUtil.CreateFromYMD (2043, DateUtil.MARCH    , 25),
  481.             DateUtil.CreateFromYMD (2043, DateUtil.APRIL    , 25),
  482.             DateUtil.CreateFromYMD (2043, DateUtil.MAY      , 25),
  483.             DateUtil.CreateFromYMD (2043, DateUtil.JUNE     , 25),
  484.             DateUtil.CreateFromYMD (2043, DateUtil.JULY     , 25),
  485.             DateUtil.CreateFromYMD (2043, DateUtil.AUGUST   , 25),
  486.             DateUtil.CreateFromYMD (2043, DateUtil.SEPTEMBER, 25),
  487.             DateUtil.CreateFromYMD (2043, DateUtil.OCTOBER  , 25),
  488.             DateUtil.CreateFromYMD (2043, DateUtil.NOVEMBER , 25),
  489.             DateUtil.CreateFromYMD (2043, DateUtil.DECEMBER , 25),
  490.             DateUtil.CreateFromYMD (2044, DateUtil.JANUARY  , 25),
  491.             DateUtil.CreateFromYMD (2044, DateUtil.FEBRUARY , 25),
  492.             DateUtil.CreateFromYMD (2044, DateUtil.MARCH    , 25),
  493.             DateUtil.CreateFromYMD (2044, DateUtil.APRIL    , 25),
  494.             DateUtil.CreateFromYMD (2044, DateUtil.MAY      , 25),
  495.             DateUtil.CreateFromYMD (2044, DateUtil.JUNE     , 25),
  496.             DateUtil.CreateFromYMD (2044, DateUtil.JULY     , 25),
  497.             DateUtil.CreateFromYMD (2044, DateUtil.AUGUST   , 25),
  498.             DateUtil.CreateFromYMD (2044, DateUtil.SEPTEMBER, 25),
  499.             DateUtil.CreateFromYMD (2044, DateUtil.OCTOBER  , 25),
  500.             DateUtil.CreateFromYMD (2044, DateUtil.NOVEMBER , 25),
  501.             DateUtil.CreateFromYMD (2044, DateUtil.DECEMBER , 25),
  502.             DateUtil.CreateFromYMD (2045, DateUtil.JANUARY  , 25),
  503.             DateUtil.CreateFromYMD (2045, DateUtil.FEBRUARY , 25),
  504.             DateUtil.CreateFromYMD (2045, DateUtil.MARCH    , 25),
  505.             DateUtil.CreateFromYMD (2045, DateUtil.APRIL    , 25),
  506.             DateUtil.CreateFromYMD (2045, DateUtil.MAY      , 25),
  507.             DateUtil.CreateFromYMD (2045, DateUtil.JUNE     , 25),
  508.             DateUtil.CreateFromYMD (2045, DateUtil.JULY     , 25),
  509.             DateUtil.CreateFromYMD (2045, DateUtil.AUGUST   , 25),
  510.             DateUtil.CreateFromYMD (2045, DateUtil.SEPTEMBER, 25),
  511.             DateUtil.CreateFromYMD (2045, DateUtil.OCTOBER  , 25),
  512.             DateUtil.CreateFromYMD (2045, DateUtil.NOVEMBER , 25),
  513.             DateUtil.CreateFromYMD (2045, DateUtil.DECEMBER , 25),
  514.             DateUtil.CreateFromYMD (2046, DateUtil.JANUARY  , 25),
  515.             DateUtil.CreateFromYMD (2046, DateUtil.FEBRUARY , 25),
  516.             DateUtil.CreateFromYMD (2046, DateUtil.MARCH    , 25),
  517.             DateUtil.CreateFromYMD (2046, DateUtil.APRIL    , 25),
  518.             DateUtil.CreateFromYMD (2046, DateUtil.MAY      , 25),
  519.             DateUtil.CreateFromYMD (2046, DateUtil.JUNE     , 25),
  520.             DateUtil.CreateFromYMD (2046, DateUtil.JULY     , 25),
  521.             DateUtil.CreateFromYMD (2046, DateUtil.AUGUST   , 25),
  522.             DateUtil.CreateFromYMD (2046, DateUtil.SEPTEMBER, 25),
  523.             DateUtil.CreateFromYMD (2046, DateUtil.OCTOBER  , 25),
  524.             DateUtil.CreateFromYMD (2046, DateUtil.NOVEMBER , 25),
  525.             DateUtil.CreateFromYMD (2046, DateUtil.DECEMBER , 25),
  526.             DateUtil.CreateFromYMD (2047, DateUtil.JANUARY  , 25),
  527.             DateUtil.CreateFromYMD (2047, DateUtil.FEBRUARY , 25),
  528.             DateUtil.CreateFromYMD (2047, DateUtil.MARCH    , 25),
  529.             DateUtil.CreateFromYMD (2047, DateUtil.APRIL    , 25),
  530.             DateUtil.CreateFromYMD (2047, DateUtil.MAY      , 25),
  531.             DateUtil.CreateFromYMD (2047, DateUtil.JUNE     , 25),
  532.             DateUtil.CreateFromYMD (2047, DateUtil.JULY     , 25),
  533.             DateUtil.CreateFromYMD (2047, DateUtil.AUGUST   , 25),
  534.             DateUtil.CreateFromYMD (2047, DateUtil.SEPTEMBER, 25),
  535.             DateUtil.CreateFromYMD (2047, DateUtil.OCTOBER  , 25),
  536.             DateUtil.CreateFromYMD (2047, DateUtil.NOVEMBER , 25),
  537.             DateUtil.CreateFromYMD (2047, DateUtil.DECEMBER , 25),
  538.             DateUtil.CreateFromYMD (2048, DateUtil.JANUARY  , 25),
  539.             DateUtil.CreateFromYMD (2048, DateUtil.FEBRUARY , 25),
  540.             DateUtil.CreateFromYMD (2048, DateUtil.MARCH    , 25),
  541.             DateUtil.CreateFromYMD (2048, DateUtil.APRIL    , 25),
  542.             DateUtil.CreateFromYMD (2048, DateUtil.MAY      , 25),
  543.             DateUtil.CreateFromYMD (2048, DateUtil.JUNE     , 25),
  544.             DateUtil.CreateFromYMD (2048, DateUtil.JULY     , 25),
  545.             DateUtil.CreateFromYMD (2048, DateUtil.AUGUST   , 25),
  546.             DateUtil.CreateFromYMD (2048, DateUtil.SEPTEMBER, 25),
  547.             DateUtil.CreateFromYMD (2048, DateUtil.OCTOBER  , 25),
  548.             DateUtil.CreateFromYMD (2048, DateUtil.NOVEMBER , 25),
  549.             DateUtil.CreateFromYMD (2048, DateUtil.DECEMBER , 25),
  550.             DateUtil.CreateFromYMD (2049, DateUtil.JANUARY  , 25),
  551.             DateUtil.CreateFromYMD (2049, DateUtil.FEBRUARY , 25),
  552.             DateUtil.CreateFromYMD (2049, DateUtil.MARCH    , 25),
  553.             DateUtil.CreateFromYMD (2049, DateUtil.APRIL    , 25),
  554.             DateUtil.CreateFromYMD (2049, DateUtil.MAY      , 25),
  555.             DateUtil.CreateFromYMD (2049, DateUtil.JUNE     , 25),
  556.             DateUtil.CreateFromYMD (2049, DateUtil.JULY     , 25),
  557.             DateUtil.CreateFromYMD (2049, DateUtil.AUGUST   , 25),
  558.             DateUtil.CreateFromYMD (2049, DateUtil.SEPTEMBER, 25),
  559.             DateUtil.CreateFromYMD (2049, DateUtil.OCTOBER  , 25),
  560.             DateUtil.CreateFromYMD (2049, DateUtil.NOVEMBER , 25),
  561.             DateUtil.CreateFromYMD (2049, DateUtil.DECEMBER , 25),
  562.             DateUtil.CreateFromYMD (2050, DateUtil.JANUARY  , 25),
  563.             DateUtil.CreateFromYMD (2050, DateUtil.FEBRUARY , 25),
  564.             DateUtil.CreateFromYMD (2050, DateUtil.MARCH    , 25),
  565.             DateUtil.CreateFromYMD (2050, DateUtil.APRIL    , 25),
  566.             DateUtil.CreateFromYMD (2050, DateUtil.MAY      , 25),
  567.             DateUtil.CreateFromYMD (2050, DateUtil.JUNE     , 25),
  568.             DateUtil.CreateFromYMD (2050, DateUtil.JULY     , 25),
  569.             DateUtil.CreateFromYMD (2050, DateUtil.AUGUST   , 25),
  570.             DateUtil.CreateFromYMD (2050, DateUtil.SEPTEMBER, 25),
  571.             DateUtil.CreateFromYMD (2050, DateUtil.OCTOBER  , 25),
  572.             DateUtil.CreateFromYMD (2050, DateUtil.NOVEMBER , 25),
  573.             DateUtil.CreateFromYMD (2050, DateUtil.DECEMBER , 25),
  574.             DateUtil.CreateFromYMD (2051, DateUtil.JANUARY  , 25),
  575.             DateUtil.CreateFromYMD (2051, DateUtil.FEBRUARY , 25),
  576.             DateUtil.CreateFromYMD (2051, DateUtil.MARCH    , 25),
  577.             DateUtil.CreateFromYMD (2051, DateUtil.APRIL    , 25),
  578.             DateUtil.CreateFromYMD (2051, DateUtil.MAY      , 25),
  579.             DateUtil.CreateFromYMD (2051, DateUtil.JUNE     , 25),
  580.             DateUtil.CreateFromYMD (2051, DateUtil.JULY     , 25),
  581.             DateUtil.CreateFromYMD (2051, DateUtil.AUGUST   , 25),
  582.             DateUtil.CreateFromYMD (2051, DateUtil.SEPTEMBER, 25),
  583.             DateUtil.CreateFromYMD (2051, DateUtil.OCTOBER  , 25),
  584.             DateUtil.CreateFromYMD (2051, DateUtil.NOVEMBER , 25),
  585.             DateUtil.CreateFromYMD (2051, DateUtil.DECEMBER , 25),
  586.             DateUtil.CreateFromYMD (2052, DateUtil.JANUARY  , 25),
  587.             DateUtil.CreateFromYMD (2052, DateUtil.FEBRUARY , 25),
  588.             DateUtil.CreateFromYMD (2052, DateUtil.MARCH    , 25),
  589.             DateUtil.CreateFromYMD (2052, DateUtil.APRIL    , 25),
  590.             DateUtil.CreateFromYMD (2052, DateUtil.MAY      , 25),
  591.             DateUtil.CreateFromYMD (2052, DateUtil.JUNE     , 25),
  592.             DateUtil.CreateFromYMD (2052, DateUtil.JULY     , 25),
  593.             DateUtil.CreateFromYMD (2052, DateUtil.AUGUST   , 25),
  594.             DateUtil.CreateFromYMD (2052, DateUtil.SEPTEMBER, 25),
  595.             DateUtil.CreateFromYMD (2052, DateUtil.OCTOBER  , 25),
  596.             DateUtil.CreateFromYMD (2052, DateUtil.NOVEMBER , 25),
  597.             DateUtil.CreateFromYMD (2052, DateUtil.DECEMBER , 25),
  598.             DateUtil.CreateFromYMD (2053, DateUtil.JANUARY  , 25),
  599.             DateUtil.CreateFromYMD (2053, DateUtil.FEBRUARY , 25),
  600.             DateUtil.CreateFromYMD (2053, DateUtil.MARCH    , 25),
  601.             DateUtil.CreateFromYMD (2053, DateUtil.APRIL    , 25),
  602.             DateUtil.CreateFromYMD (2053, DateUtil.MAY      , 25),
  603.             DateUtil.CreateFromYMD (2053, DateUtil.JUNE     , 25),
  604.             DateUtil.CreateFromYMD (2053, DateUtil.JULY     , 25),
  605.             DateUtil.CreateFromYMD (2053, DateUtil.AUGUST   , 25),
  606.             DateUtil.CreateFromYMD (2053, DateUtil.SEPTEMBER, 25),
  607.             DateUtil.CreateFromYMD (2053, DateUtil.OCTOBER  , 25),
  608.             DateUtil.CreateFromYMD (2053, DateUtil.NOVEMBER , 25),
  609.             DateUtil.CreateFromYMD (2053, DateUtil.DECEMBER , 25),
  610.             DateUtil.CreateFromYMD (2054, DateUtil.JANUARY  , 25),
  611.             DateUtil.CreateFromYMD (2054, DateUtil.FEBRUARY , 25),
  612.             DateUtil.CreateFromYMD (2054, DateUtil.MARCH    , 25),
  613.             DateUtil.CreateFromYMD (2054, DateUtil.APRIL    , 25),
  614.             DateUtil.CreateFromYMD (2054, DateUtil.MAY      , 25),
  615.             DateUtil.CreateFromYMD (2054, DateUtil.JUNE     , 25),
  616.             DateUtil.CreateFromYMD (2054, DateUtil.JULY     , 25),
  617.             DateUtil.CreateFromYMD (2054, DateUtil.AUGUST   , 25),
  618.             DateUtil.CreateFromYMD (2054, DateUtil.SEPTEMBER, 25),
  619.             DateUtil.CreateFromYMD (2054, DateUtil.OCTOBER  , 25),
  620.             DateUtil.CreateFromYMD (2054, DateUtil.NOVEMBER , 25),
  621.             DateUtil.CreateFromYMD (2054, DateUtil.DECEMBER , 25),
  622.             DateUtil.CreateFromYMD (2055, DateUtil.JANUARY  , 25),
  623.             DateUtil.CreateFromYMD (2055, DateUtil.FEBRUARY , 25),
  624.             DateUtil.CreateFromYMD (2055, DateUtil.MARCH    , 25),
  625.             DateUtil.CreateFromYMD (2055, DateUtil.APRIL    , 25),
  626.             DateUtil.CreateFromYMD (2055, DateUtil.MAY      , 25),
  627.             DateUtil.CreateFromYMD (2055, DateUtil.JUNE     , 25),
  628.             DateUtil.CreateFromYMD (2055, DateUtil.JULY     , 25),
  629.             DateUtil.CreateFromYMD (2055, DateUtil.AUGUST   , 25),
  630.             DateUtil.CreateFromYMD (2055, DateUtil.SEPTEMBER, 25),
  631.             DateUtil.CreateFromYMD (2055, DateUtil.OCTOBER  , 25),
  632.             DateUtil.CreateFromYMD (2055, DateUtil.NOVEMBER , 25),
  633.             DateUtil.CreateFromYMD (2055, DateUtil.DECEMBER , 25),
  634.             DateUtil.CreateFromYMD (2056, DateUtil.JANUARY  , 25),
  635.             DateUtil.CreateFromYMD (2056, DateUtil.FEBRUARY , 25),
  636.             DateUtil.CreateFromYMD (2056, DateUtil.MARCH    , 25),
  637.             DateUtil.CreateFromYMD (2056, DateUtil.APRIL    , 25),
  638.             DateUtil.CreateFromYMD (2056, DateUtil.MAY      , 25),
  639.             DateUtil.CreateFromYMD (2056, DateUtil.JUNE     , 25),
  640.             DateUtil.CreateFromYMD (2056, DateUtil.JULY     , 25),
  641.             DateUtil.CreateFromYMD (2056, DateUtil.AUGUST   , 25),
  642.             DateUtil.CreateFromYMD (2056, DateUtil.SEPTEMBER, 25),
  643.             DateUtil.CreateFromYMD (2056, DateUtil.OCTOBER  , 25),
  644.             DateUtil.CreateFromYMD (2056, DateUtil.NOVEMBER , 25),
  645.         };

  646.         double[] adblPrincipalPayDown = new double[] {
  647.             130411.55,
  648.             122346.11,
  649.             121579.99,
  650.             117575.45,
  651.             107315.52,
  652.             108813.62,
  653.             104230.30,
  654.             102245.99,
  655.             98857.56,
  656.             96999.28,
  657.             91933.96,
  658.             95184.27,
  659.             92372.68,
  660.             88418.96,
  661.             88710.38,
  662.             87784.78,
  663.             84946.10,
  664.             87232.08,
  665.             83206.60,
  666.             79412.82,
  667.             83715.52,
  668.             80807.88,
  669.             78279.06,
  670.             79486.27,
  671.             77842.52,
  672.             76486.32,
  673.             76115.52,
  674.             74706.19,
  675.             77226.03,
  676.             77509.13,
  677.             73034.84,
  678.             76467.06,
  679.             75353.36,
  680.             72857.79,
  681.             75605.48,
  682.             73084.96,
  683.             72556.97,
  684.             73603.29,
  685.             69820.19,
  686.             73960.65,
  687.             70710.70,
  688.             72559.73,
  689.             68778.99,
  690.             70625.39,
  691.             68349.45,
  692.             67321.10,
  693.             67270.43,
  694.             64072.74,
  695.             67370.20,
  696.             62081.57,
  697.             62004.95,
  698.             62855.15,
  699.             59203.99,
  700.             60997.02,
  701.             57061.28,
  702.             57057.51,
  703.             52628.47,
  704.             56255.69,
  705.             52461.59,
  706.             50436.91,
  707.             51792.68,
  708.             49442.95,
  709.             47524.48,
  710.             49390.16,
  711.             44864.91,
  712.             48248.13,
  713.             46629.38,
  714.             44795.46,
  715.             42090.65,
  716.             44008.71,
  717.             41777.21,
  718.             41080.47,
  719.             41039.85,
  720.             37778.75,
  721.             40337.50,
  722.             38822.78,
  723.             36255.38,
  724.             39036.16,
  725.             35859.53,
  726.             33322.52,
  727.             36938.08,
  728.             34428.59,
  729.             32145.91,
  730.             33247.54,
  731.             32813.47,
  732.             31392.73,
  733.             30820.02,
  734.             29202.45,
  735.             31156.00,
  736.             31419.94,
  737.             28373.74,
  738.             26798.66,
  739.             28761.38,
  740.             27388.34,
  741.             26040.55,
  742.             25332.19,
  743.             24002.35,
  744.             25957.06,
  745.             23799.16,
  746.             23306.72,
  747.             23460.28,
  748.             24605.90,
  749.             20041.59,
  750.             22825.96,
  751.             21536.18,
  752.             19445.50,
  753.             21263.23,
  754.             19174.31,
  755.             18731.94,
  756.             19088.98,
  757.             16208.27,
  758.             19810.31,
  759.             16958.29,
  760.             18943.89,
  761.             15142.71,
  762.             17135.74,
  763.             15104.48,
  764.             14699.57,
  765.             15090.12,
  766.             12273.32,
  767.             15880.82,
  768.             12269.89,
  769.             12684.23,
  770.             13888.98,
  771.             11897.21,
  772.             11507.22,
  773.             12599.25,
  774.             11423.22,
  775.             9453.62,
  776.             11484.94,
  777.             9524.27,
  778.             9158.39,
  779.             9592.68,
  780.             6847.96,
  781.             9671.66,
  782.             8525.08,
  783.             6587.88,
  784.             9415.97,
  785.             7487.79,
  786.             7147.51,
  787.             6028.72,
  788.             6485.87,
  789.             3778.28,
  790.             6614.97,
  791.             5498.98,
  792.             3593.00,
  793.             4854.29,
  794.             4536.92,
  795.             3342.10,
  796.             5404.86,
  797.             2730.30,
  798.             845.60,
  799.             4493.89,
  800.             2617.77,
  801.             882.82,
  802.             2166.63,
  803.             1885.00,
  804.             804.22,
  805.             514.67,
  806.             0.00,
  807.             959.61,
  808.             2031.31,
  809.             0.00,
  810.             0.00,
  811.             0.00,
  812.             0.00,
  813.             0.00,
  814.             0.00,
  815.             0.00,
  816.             0.00,
  817.             0.00,
  818.             0.00,
  819.             0.00,
  820.             0.00,
  821.             0.00,
  822.             0.00,
  823.             0.00,
  824.             0.00,
  825.             0.00,
  826.             0.00,
  827.             0.00,
  828.             0.00,
  829.             0.00,
  830.             0.00,
  831.             0.00,
  832.             0.00,
  833.             0.00,
  834.             0.00,
  835.             0.00,
  836.             0.00,
  837.             0.00,
  838.             0.00,
  839.             0.00,
  840.             0.00,
  841.             0.00,
  842.             0.00,
  843.             0.00,
  844.             0.00,
  845.             0.00,
  846.             0.00,
  847.             0.00,
  848.             0.00,
  849.             0.00,
  850.             0.00,
  851.             0.00,
  852.             0.00,
  853.             0.00,
  854.             0.00,
  855.             0.00,
  856.             0.00,
  857.             0.00,
  858.             0.00,
  859.             0.00,
  860.             0.00,
  861.             0.00,
  862.             0.00,
  863.             0.00,
  864.             0.00,
  865.             0.00,
  866.             0.00,
  867.             0.00,
  868.             0.00,
  869.             0.00,
  870.             0.00,
  871.             0.00,
  872.             0.00,
  873.             0.00,
  874.             0.00,
  875.             0.00,
  876.             0.00,
  877.             0.00,
  878.             0.00,
  879.             0.00,
  880.             0.00,
  881.             0.00,
  882.             0.00,
  883.             0.00,
  884.             0.00,
  885.             0.00,
  886.             0.00,
  887.             0.00,
  888.             0.00,
  889.             0.00,
  890.             0.00,
  891.             0.00,
  892.             0.00,
  893.             0.00,
  894.             0.00,
  895.             0.00,
  896.             0.00,
  897.             0.00,
  898.             0.00,
  899.             0.00,
  900.             0.00,
  901.             0.00,
  902.             0.00,
  903.             0.00,
  904.             0.00,
  905.             0.00,
  906.             0.00,
  907.             0.00,
  908.             0.00,
  909.             0.00,
  910.             0.00,
  911.             0.00,
  912.             0.00,
  913.             0.00,
  914.             0.00,
  915.             0.00,
  916.             0.00,
  917.             0.00,
  918.             0.00,
  919.             0.00,
  920.             0.00,
  921.             0.00,
  922.             0.00,
  923.             0.00,
  924.             0.00,
  925.             0.00,
  926.             0.00,
  927.             0.00,
  928.             0.00,
  929.             0.00,
  930.             0.00,
  931.             0.00,
  932.             0.00,
  933.             0.00,
  934.             0.00,
  935.             0.00,
  936.             0.00,
  937.             0.00,
  938.             0.00,
  939.             0.00,
  940.             0.00,
  941.             0.00,
  942.             0.00,
  943.             0.00,
  944.             0.00,
  945.             0.00,
  946.             0.00,
  947.             0.00,
  948.             0.00,
  949.             0.00,
  950.             0.00,
  951.             0.00,
  952.             0.00,
  953.             0.00,
  954.             0.00,
  955.             0.00,
  956.             0.00,
  957.             0.00,
  958.             0.00,
  959.             0.00,
  960.             0.00,
  961.             0.00,
  962.             0.00,
  963.             0.00,
  964.             0.00,
  965.             0.00,
  966.             0.00,
  967.             0.00,
  968.             0.00,
  969.             0.00,
  970.             0.00,
  971.             0.00,
  972.             0.00,
  973.             0.00,
  974.             0.00,
  975.             0.00,
  976.             0.00,
  977.             0.00,
  978.             0.00,
  979.             0.00,
  980.             0.00,
  981.             0.00,
  982.             0.00,
  983.             0.00,
  984.             0.00,
  985.             0.00,
  986.             0.00,
  987.             0.00,
  988.             0.00,
  989.             0.00,
  990.             0.00,
  991.             0.00,
  992.             0.00,
  993.             0.00,
  994.             0.00,
  995.             0.00,
  996.             0.00,
  997.             0.00,
  998.             0.00,
  999.             0.00,
  1000.             0.00,
  1001.             0.00,
  1002.             0.00,
  1003.             0.00,
  1004.             0.00,
  1005.             0.00,
  1006.             0.00,
  1007.             0.00,
  1008.             0.00,
  1009.             0.00,
  1010.             0.00,
  1011.             0.00,
  1012.             0.00,
  1013.             0.00,
  1014.             0.00,
  1015.             0.00,
  1016.             0.00,
  1017.             0.00,
  1018.             0.00,
  1019.             0.00,
  1020.             0.00,
  1021.             0.00,
  1022.             0.00,
  1023.             0.00,
  1024.             0.00,
  1025.             0.00,
  1026.             0.00,
  1027.             0.00,
  1028.             0.00,
  1029.             0.00,
  1030.             0.00,
  1031.             0.00,
  1032.             0.00,
  1033.             0.00,
  1034.             0.00,
  1035.             0.00,
  1036.             0.00,
  1037.             0.00,
  1038.             0.00,
  1039.             0.00,
  1040.             0.00,
  1041.             0.00,
  1042.             0.00,
  1043.             0.00,
  1044.             0.00,
  1045.             0.00,
  1046.             0.00,
  1047.             0.00,
  1048.             0.00,
  1049.             0.00,
  1050.             0.00,
  1051.             0.00,
  1052.             0.00,
  1053.             0.00,
  1054.             0.00,
  1055.             0.00,
  1056.             0.00,
  1057.             0.00,
  1058.             0.00,
  1059.             0.00,
  1060.             0.00,
  1061.             0.00,
  1062.             0.00,
  1063.             0.00,
  1064.             0.00,
  1065.             0.00,
  1066.             0.00,
  1067.             0.00,
  1068.             0.00,
  1069.             0.00,
  1070.             0.00,
  1071.             0.00,
  1072.             0.00,
  1073.             0.00,
  1074.             0.00,
  1075.             0.00,
  1076.             0.00,
  1077.             0.00,
  1078.             0.00,
  1079.             0.00,
  1080.             0.00,
  1081.             0.00,
  1082.             0.00,
  1083.             0.00,
  1084.             0.00,
  1085.             0.00,
  1086.             0.00,
  1087.             0.00,
  1088.             0.00,
  1089.             0.00,
  1090.             0.00,
  1091.             0.00,
  1092.             0.00,
  1093.             0.00,
  1094.             0.00,
  1095.             0.00,
  1096.             0.00,
  1097.             0.00,
  1098.             0.00,
  1099.             0.00,
  1100.             0.00,
  1101.             0.00,
  1102.             0.00,
  1103.             0.00,
  1104.             0.00,
  1105.             0.00,
  1106.             0.00,
  1107.             0.00,
  1108.             0.00,
  1109.             0.00,
  1110.             0.00,
  1111.             0.00,
  1112.             0.00,
  1113.             0.00,
  1114.             0.00,
  1115.             0.00,
  1116.             16368032.97,
  1117.         };

  1118.         double[] adblCouponAmount = new double[] {
  1119.             30408.13,
  1120.             33261.02,
  1121.             29074.45,
  1122.             29917.75,
  1123.             38614.58,
  1124.             33628.17,
  1125.             35856.81,
  1126.             35690.73,
  1127.             36712.08,
  1128.             35370.31,
  1129.             38737.33,
  1130.             33900.30,
  1131.             34917.61,
  1132.             37088.46,
  1133.             34629.55,
  1134.             34488.21,
  1135.             35493.28,
  1136.             31932.12,
  1137.             35209.80,
  1138.             37335.57,
  1139.             31560.57,
  1140.             33681.51,
  1141.             35789.60,
  1142.             33428.03,
  1143.             33301.38,
  1144.             34283.26,
  1145.             34157.33,
  1146.             35129.82,
  1147.             31721.33,
  1148.             31602.39,
  1149.             35825.49,
  1150.             31370.52,
  1151.             32330.42,
  1152.             34357.72,
  1153.             31024.46,
  1154.             33039.60,
  1155.             32919.27,
  1156.             31741.75,
  1157.             34786.92,
  1158.             29412.35,
  1159.             32441.90,
  1160.             29197.21,
  1161.             33244.92,
  1162.             30022.27,
  1163.             31976.49,
  1164.             31863.96,
  1165.             30728.82,
  1166.             33683.80,
  1167.             28484.91,
  1168.             32439.69,
  1169.             31323.73,
  1170.             29207.35,
  1171.             31118.16,
  1172.             28018.68,
  1173.             30920.25,
  1174.             29831.91,
  1175.             32715.10,
  1176.             27680.00,
  1177.             30553.09,
  1178.             31449.51,
  1179.             28423.44,
  1180.             30298.40,
  1181.             31191.74,
  1182.             28194.31,
  1183.             31996.62,
  1184.             27081.93,
  1185.             27974.83,
  1186.             28865.18,
  1187.             30713.39,
  1188.             27769.18,
  1189.             29611.84,
  1190.             29543.06,
  1191.             28524.60,
  1192.             31305.13,
  1193.             27452.38,
  1194.             28334.75,
  1195.             30157.75,
  1196.             26334.11,
  1197.             29091.35,
  1198.             30905.37,
  1199.             26173.18,
  1200.             27983.84,
  1201.             29790.91,
  1202.             27877.76,
  1203.             27824.79,
  1204.             28698.26,
  1205.             28646.57,
  1206.             29518.27,
  1207.             26705.96,
  1208.             25738.73,
  1209.             28444.72,
  1210.             29314.07,
  1211.             26524.60,
  1212.             27393.41,
  1213.             28261.43,
  1214.             28218.56,
  1215.             29085.78,
  1216.             26322.02,
  1217.             28094.60,
  1218.             28055.41,
  1219.             27113.26,
  1220.             25270.82,
  1221.             29740.34,
  1222.             26104.59,
  1223.             26968.37,
  1224.             28729.66,
  1225.             26006.31,
  1226.             27764.84,
  1227.             27733.27,
  1228.             26808.80,
  1229.             29456.22,
  1230.             24969.06,
  1231.             27611.70,
  1232.             24914.38,
  1233.             28441.38,
  1234.             25751.68,
  1235.             27499.44,
  1236.             27474.57,
  1237.             26564.87,
  1238.             29194.91,
  1239.             24753.19,
  1240.             28262.37,
  1241.             27358.97,
  1242.             25574.34,
  1243.             27315.22,
  1244.             27295.63,
  1245.             25516.90,
  1246.             26376.72,
  1247.             28115.75,
  1248.             25465.34,
  1249.             27202.66,
  1250.             27186.98,
  1251.             26295.38,
  1252.             28908.11,
  1253.             25393.55,
  1254.             26253.78,
  1255.             27989.54,
  1256.             24481.05,
  1257.             26214.70,
  1258.             26202.77,
  1259.             27064.42,
  1260.             26181.77,
  1261.             28788.58,
  1262.             25293.24,
  1263.             26154.88,
  1264.             27889.19,
  1265.             26140.39,
  1266.             26132.66,
  1267.             26996.27,
  1268.             24378.76,
  1269.             26981.87,
  1270.             28717.85,
  1271.             24365.41,
  1272.             26098.63,
  1273.             27834.09,
  1274.             26093.06,
  1275.             26089.60,
  1276.             26956.15,
  1277.             26954.83,
  1278.             27204.55,
  1279.             25834.88,
  1280.             24344.10,
  1281.             26274.06,
  1282.             25969.74,
  1283.             25669.24,
  1284.             25371.01,
  1285.             25076.52,
  1286.             24784.44,
  1287.             24495.93,
  1288.             24209.80,
  1289.             23927.18,
  1290.             23646.36,
  1291.             23369.54,
  1292.             23095.02,
  1293.             22823.88,
  1294.             22555.02,
  1295.             22289.48,
  1296.             22026.20,
  1297.             21766.17,
  1298.             21508.40,
  1299.             21253.35,
  1300.             21001.09,
  1301.             20752.16,
  1302.             20488.62,
  1303.             20235.04,
  1304.             19993.55,
  1305.             19754.72,
  1306.             19518.85,
  1307.             19255.13,
  1308.             19010.17,
  1309.             18782.10,
  1310.             18556.09,
  1311.             18332.49,
  1312.             18111.40,
  1313.             17893.13,
  1314.             17676.92,
  1315.             17463.51,
  1316.             17251.74,
  1317.             17043.24,
  1318.             16836.94,
  1319.             16631.83,
  1320.             16394.69,
  1321.             16195.65,
  1322.             15999.16,
  1323.             15805.44,
  1324.             15613.92,
  1325.             15424.86,
  1326.             15238.61,
  1327.             15055.54,
  1328.             14862.08,
  1329.             14643.44,
  1330.             14467.52,
  1331.             14296.65,
  1332.             14129.28,
  1333.             13966.55,
  1334.             13808.96,
  1335.             13646.11,
  1336.             13507.21,
  1337.             13257.20,
  1338.             12765.88,
  1339.             48404.49,
  1340.             6942.94,
  1341.             6852.42,
  1342.             6777.23,
  1343.             6702.80,
  1344.             6629.10,
  1345.             6556.14,
  1346.             6483.91,
  1347.             6412.39,
  1348.             6341.59,
  1349.             6271.50,
  1350.             6202.10,
  1351.             6133.40,
  1352.             6065.39,
  1353.             5998.06,
  1354.             5931.40,
  1355.             5865.41,
  1356.             5800.09,
  1357.             5735.42,
  1358.             5671.40,
  1359.             5608.03,
  1360.             5545.29,
  1361.             5483.19,
  1362.             5421.71,
  1363.             5360.86,
  1364.             5300.63,
  1365.             5241.00,
  1366.             5181.98,
  1367.             5123.57,
  1368.             5065.75,
  1369.             5008.53,
  1370.             4951.89,
  1371.             4895.85,
  1372.             4840.39,
  1373.             4785.51,
  1374.             4731.23,
  1375.             4677.56,
  1376.             4624.53,
  1377.             4572.29,
  1378.             4499.06,
  1379.             4436.96,
  1380.             4386.37,
  1381.             4336.41,
  1382.             4279.42,
  1383.             4219.93,
  1384.             4171.58,
  1385.             4123.77,
  1386.             4075.90,
  1387.             4025.52,
  1388.             3974.03,
  1389.             3928.46,
  1390.             3883.72,
  1391.             3807.92,
  1392.             3763.91,
  1393.             3720.37,
  1394.             3677.30,
  1395.             3634.72,
  1396.             3590.74,
  1397.             3544.99,
  1398.             3503.80,
  1399.             3463.10,
  1400.             3430.31,
  1401.             3364.47,
  1402.             3321.38,
  1403.             3282.68,
  1404.             3242.08,
  1405.             3236.32,
  1406.             3123.38,
  1407.             3053.11,
  1408.             3017.36,
  1409.             2976.70,
  1410.             2920.07,
  1411.             2885.53,
  1412.             2851.37,
  1413.             2817.59,
  1414.             4189.76,
  1415.             2718.77,
  1416.             2686.62,
  1417.             2655.12,
  1418.             2598.22,
  1419.             2567.22,
  1420.             2536.55,
  1421.             2506.22,
  1422.             2476.22,
  1423.             2446.56,
  1424.             2417.25,
  1425.             2388.30,
  1426.             2359.73,
  1427.             2331.62,
  1428.             2299.39,
  1429.             2242.46,
  1430.             2215.53,
  1431.             2181.13,
  1432.             2152.83,
  1433.             2126.77,
  1434.             2101.00,
  1435.             2075.56,
  1436.             2049.46,
  1437.             2021.60,
  1438.             1995.18,
  1439.             1960.45,
  1440.             1936.55,
  1441.             1912.95,
  1442.             1889.63,
  1443.             2445.69,
  1444.             1821.52,
  1445.             1795.44,
  1446.             1771.50,
  1447.             1750.02,
  1448.             1728.92,
  1449.             1702.47,
  1450.             1675.31,
  1451.             1655.18,
  1452.             1635.44,
  1453.             1616.14,
  1454.             1597.41,
  1455.             1574.98,
  1456.             1549.41,
  1457.             1533.03,
  1458.             1319.83,
  1459.             1161.03,
  1460.             603.53,
  1461.             596.43,
  1462.             589.42,
  1463.             582.47,
  1464.             575.61,
  1465.             568.83,
  1466.             562.12,
  1467.             555.50,
  1468.             547.38,
  1469.             540.97,
  1470.             532.85,
  1471.             520.66,
  1472.             514.48,
  1473.             508.38,
  1474.             502.36,
  1475.             496.41,
  1476.             489.90,
  1477.             482.62,
  1478.             477.03,
  1479.             466.83,
  1480.             447.41,
  1481.             442.05,
  1482.             436.75,
  1483.             431.51,
  1484.             426.32,
  1485.             421.19,
  1486.             416.11,
  1487.             411.09,
  1488.             406.12,
  1489.             401.21,
  1490.             396.35,
  1491.             391.54,
  1492.             386.78,
  1493.             382.08,
  1494.             377.43,
  1495.             372.83,
  1496.             368.28,
  1497.             363.79,
  1498.             359.34,
  1499.             354.96,
  1500.             350.63,
  1501.             346.37,
  1502.             341.66,
  1503.             334.48,
  1504.             328.24,
  1505.             323.13,
  1506.             319.14,
  1507.             315.21,
  1508.             311.33,
  1509.             307.50,
  1510.             303.75,
  1511.             297.39,
  1512.             291.45,
  1513.             286.55,
  1514.             281.14,
  1515.             276.53,
  1516.             273.06,
  1517.             269.63,
  1518.             266.24,
  1519.             262.89,
  1520.             259.58,
  1521.             256.31,
  1522.             253.09,
  1523.             249.91,
  1524.             246.77,
  1525.             243.69,
  1526.             240.68,
  1527.             235.73,
  1528.             229.22,
  1529.             226.36,
  1530.             223.28,
  1531.             217.19,
  1532.             214.35,
  1533.             207.45,
  1534.             204.83,
  1535.             202.26,
  1536.             199.74,
  1537.             196.60,
  1538.             188.96,
  1539.             182.79,
  1540.             172.15,
  1541.             167.73,
  1542.             162.18,
  1543.             159.26,
  1544.             157.03,
  1545.             155.09,
  1546.             151.96,
  1547.             142.45,
  1548.             139.52,
  1549.             137.72,
  1550.             135.95,
  1551.             134.21,
  1552.             132.51,
  1553.             130.89,
  1554.             124.42,
  1555.             122.88,
  1556.             115.70,
  1557.             114.22,
  1558.             112.76,
  1559.             111.34,
  1560.             109.96,
  1561.             108.64,
  1562.             107.42,
  1563.             106.40,
  1564.             92.34,
  1565.             79.33,
  1566.             76.93,
  1567.             73.11,
  1568.             65.12,
  1569.             64.31,
  1570.             59.80,
  1571.             126.66,
  1572.             52.11,
  1573.             50.01,
  1574.             49.44,
  1575.             46.57,
  1576.             46.05,
  1577.             43.57,
  1578.             42.03,
  1579.             41.61,
  1580.             40.24,
  1581.             31.79,
  1582.             30.00,
  1583.             29.69,
  1584.             29.41,
  1585.             34.21,
  1586.             19.51,
  1587.             16.71,
  1588.             3.21,
  1589.         };

  1590.         double dblIssueAmount = Matrix.Sum (adblPrincipalPayDown);

  1591.         JulianDate dtEffective = DateUtil.CreateFromYMD (
  1592.             2017,
  1593.             DateUtil.SEPTEMBER,
  1594.             25
  1595.         );

  1596.         BondComponent bond = BondBuilder.CreateBondFromCF (
  1597.             strName,
  1598.             dtEffective,
  1599.             strCurrency,
  1600.             strName,
  1601.             strCouponDayCount,
  1602.             dblIssueAmount,
  1603.             dblCouponRate,
  1604.             iCouponFreq,
  1605.             adtPeriodEnd,
  1606.             adblCouponAmount,
  1607.             adblPrincipalPayDown,
  1608.             true
  1609.         );

  1610.         BondReplicator abr = BondReplicator.CorporateSenior (
  1611.             dblCleanPrice,
  1612.             dblIssuePrice,
  1613.             dblIssueAmount,
  1614.             dtSpot,
  1615.             astrDepositTenor,
  1616.             adblDepositQuote,
  1617.             adblFuturesQuote,
  1618.             astrFixFloatTenor,
  1619.             adblFixFloatQuote,
  1620.             dblSpreadBump,
  1621.             dblSpreadDurationMultiplier,
  1622.             strTreasuryCode,
  1623.             astrGovvieTenor,
  1624.             adblGovvieYield,
  1625.             astrCreditTenor,
  1626.             adblCreditQuote,
  1627.             dblFX,
  1628.             Double.NaN,
  1629.             iSettleLag,
  1630.             bond
  1631.         );

  1632.         BondReplicationRun abrr = abr.generateRun();

  1633.         System.out.println (abrr.display());

  1634.         double dblBalance = 1.;

  1635.         for (CompositePeriod p : bond.couponPeriods()) {
  1636.             int iEndDate = p.endDate();

  1637.             int iStartDate = p.startDate();

  1638.             double dblPrincipalPayDown = bond.notional (iStartDate) - bond.notional (iEndDate);

  1639.             double dblInterest = dblCouponRate * p.couponDCF() * bond.notional (iStartDate) * bond.couponFactor (iEndDate);

  1640.             dblBalance -= dblPrincipalPayDown;

  1641.             System.out.println (
  1642.                 "\t" + new JulianDate (iEndDate) + " => " +
  1643.                 FormatUtil.FormatDouble (dblPrincipalPayDown, 8, 2, dblIssueAmount) + " | " +
  1644.                 FormatUtil.FormatDouble (dblInterest, 6, 2, dblIssueAmount) + " | " +
  1645.                 FormatUtil.FormatDouble (dblPrincipalPayDown + dblInterest, 8, 2, dblIssueAmount) + " | " +
  1646.                 FormatUtil.FormatDouble (dblBalance, 8, 2, dblIssueAmount) + " ||"
  1647.             );
  1648.         }
  1649.     }
  1650. }