Dhule.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.  * Dhule generates the Full Suite of Replication Metrics for Bond Dhule.
  56.  *
  57.  * @author Lakshmi Krishnamurthy
  58.  */

  59. public class Dhule {

  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 = "Dhule";
  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.             475796.56,
  648.             446370.43,
  649.             443575.29,
  650.             428965.03,
  651.             391532.47,
  652.             396998.16,
  653.             380276.29,
  654.             373036.68,
  655.             360674.24,
  656.             353894.44,
  657.             335414.04,
  658.             347272.51,
  659.             337014.65,
  660.             322589.82,
  661.             323653.03,
  662.             320276.04,
  663.             309919.33,
  664.             318259.57,
  665.             303572.91,
  666.             289731.60,
  667.             305429.66,
  668.             294821.36,
  669.             285595.18,
  670.             289999.59,
  671.             284002.48,
  672.             279054.50,
  673.             277701.66,
  674.             272559.82,
  675.             281753.25,
  676.             282786.12,
  677.             266462.02,
  678.             278984.22,
  679.             274920.95,
  680.             265816.09,
  681.             275840.79,
  682.             266644.90,
  683.             264718.55,
  684.             268535.97,
  685.             254733.61,
  686.             269839.77,
  687.             257982.57,
  688.             264728.63,
  689.             250934.90,
  690.             257671.34,
  691.             249367.74,
  692.             245615.89,
  693.             245431.01,
  694.             233764.50,
  695.             245795.01,
  696.             226499.85,
  697.             226220.30,
  698.             229322.19,
  699.             216001.24,
  700.             222542.96,
  701.             208183.73,
  702.             208169.97,
  703.             192010.96,
  704.             205244.59,
  705.             191402.09,
  706.             184015.20,
  707.             188961.64,
  708.             180388.82,
  709.             173389.44,
  710.             180196.20,
  711.             163686.21,
  712.             176029.61,
  713.             170123.73,
  714.             163432.81,
  715.             153564.51,
  716.             160562.43,
  717.             152420.95,
  718.             149878.97,
  719.             149730.76,
  720.             137832.88,
  721.             147168.29,
  722.             141641.94,
  723.             132274.98,
  724.             142420.46,
  725.             130830.77,
  726.             121574.67,
  727.             134765.76,
  728.             125610.09,
  729.             117281.91,
  730.             121301.10,
  731.             119717.44,
  732.             114533.98,
  733.             112444.48,
  734.             106542.90,
  735.             113670.30,
  736.             114633.25,
  737.             103519.43,
  738.             97772.87,
  739.             104933.69,
  740.             99924.27,
  741.             95006.96,
  742.             92422.57,
  743.             87570.75,
  744.             94702.35,
  745.             86829.43,
  746.             85032.79,
  747.             85593.04,
  748.             89772.76,
  749.             73120.22,
  750.             83278.76,
  751.             78573.10,
  752.             70945.42,
  753.             77577.28,
  754.             69956.00,
  755.             68342.04,
  756.             69644.68,
  757.             59134.62,
  758.             72276.39,
  759.             61871.04,
  760.             69115.34,
  761.             55247.03,
  762.             62518.44,
  763.             55107.53,
  764.             53630.26,
  765.             55055.14,
  766.             44778.27,
  767.             57939.94,
  768.             44765.76,
  769.             46277.44,
  770.             50672.89,
  771.             43406.05,
  772.             41983.20,
  773.             45967.41,
  774.             41676.75,
  775.             34490.81,
  776.             41901.93,
  777.             34748.56,
  778.             33413.69,
  779.             34998.15,
  780.             24984.25,
  781.             35286.30,
  782.             31103.09,
  783.             24035.39,
  784.             34353.45,
  785.             27318.64,
  786.             26077.14,
  787.             21995.32,
  788.             23663.19,
  789.             13784.76,
  790.             24134.19,
  791.             20062.60,
  792.             13108.77,
  793.             17710.51,
  794.             16552.60,
  795.             12193.41,
  796.             19719.22,
  797.             9961.31,
  798.             3085.09,
  799.             16395.62,
  800.             9550.72,
  801.             3220.90,
  802.             7904.77,
  803.             6877.28,
  804.             2934.14,
  805.             1877.75,
  806.             0.00,
  807.             3501.05,
  808.             7411.09,
  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.             59717516.32,
  1117.         };

  1118.         double[] adblCouponAmount = new double[] {
  1119.             102472.91,
  1120.             112086.91,
  1121.             97978.52,
  1122.             100820.36,
  1123.             123198.38,
  1124.             107289.42,
  1125.             114399.79,
  1126.             113869.94,
  1127.             117128.52,
  1128.             112847.64,
  1129.             123590.00,
  1130.             108157.63,
  1131.             111403.34,
  1132.             118329.35,
  1133.             110484.29,
  1134.             110033.33,
  1135.             113239.98,
  1136.             101878.24,
  1137.             112335.54,
  1138.             119117.72,
  1139.             100692.80,
  1140.             107459.58,
  1141.             114185.38,
  1142.             106650.87,
  1143.             106246.80,
  1144.             109379.46,
  1145.             108977.68,
  1146.             112080.37,
  1147.             101205.72,
  1148.             100826.23,
  1149.             114299.88,
  1150.             100086.46,
  1151.             103149.00,
  1152.             109617.00,
  1153.             98982.38,
  1154.             105411.61,
  1155.             105027.70,
  1156.             101270.87,
  1157.             110986.38,
  1158.             93838.99,
  1159.             103504.66,
  1160.             93152.59,
  1161.             106066.65,
  1162.             95784.92,
  1163.             102019.79,
  1164.             101660.76,
  1165.             98039.15,
  1166.             107466.90,
  1167.             90880.04,
  1168.             103497.60,
  1169.             99937.19,
  1170.             93184.94,
  1171.             99281.31,
  1172.             89392.54,
  1173.             98649.90,
  1174.             95177.58,
  1175.             104376.28,
  1176.             88312.00,
  1177.             97478.49,
  1178.             100338.49,
  1179.             90683.91,
  1180.             96665.91,
  1181.             99516.06,
  1182.             89952.90,
  1183.             102084.01,
  1184.             86403.87,
  1185.             89252.63,
  1186.             92093.27,
  1187.             97989.93,
  1188.             88596.54,
  1189.             94475.47,
  1190.             94256.02,
  1191.             91006.67,
  1192.             99877.85,
  1193.             87585.80,
  1194.             90400.94,
  1195.             96217.16,
  1196.             84018.00,
  1197.             92814.87,
  1198.             98602.41,
  1199.             83504.55,
  1200.             89281.39,
  1201.             95046.79,
  1202.             88942.96,
  1203.             88773.94,
  1204.             91560.71,
  1205.             91395.80,
  1206.             94176.94,
  1207.             85204.35,
  1208.             82118.45,
  1209.             90751.81,
  1210.             93525.43,
  1211.             84625.73,
  1212.             87397.65,
  1213.             90167.04,
  1214.             90030.25,
  1215.             92797.09,
  1216.             83979.42,
  1217.             89634.75,
  1218.             89509.73,
  1219.             86503.84,
  1220.             80625.61,
  1221.             94885.45,
  1222.             83285.70,
  1223.             86041.59,
  1224.             91660.91,
  1225.             82972.15,
  1226.             88582.67,
  1227.             88481.95,
  1228.             85532.47,
  1229.             93978.97,
  1230.             79662.84,
  1231.             88094.08,
  1232.             79488.38,
  1233.             90741.15,
  1234.             82159.75,
  1235.             87735.93,
  1236.             87656.59,
  1237.             84754.23,
  1238.             93145.27,
  1239.             78974.12,
  1240.             90170.03,
  1241.             87287.76,
  1242.             81593.96,
  1243.             87148.17,
  1244.             87085.68,
  1245.             81410.70,
  1246.             84153.92,
  1247.             89702.24,
  1248.             81246.20,
  1249.             86789.05,
  1250.             86739.02,
  1251.             83894.44,
  1252.             92230.24,
  1253.             81017.16,
  1254.             83761.69,
  1255.             89299.58,
  1256.             78105.88,
  1257.             83637.00,
  1258.             83598.94,
  1259.             86348.02,
  1260.             83531.96,
  1261.             91848.88,
  1262.             80697.12,
  1263.             83446.15,
  1264.             88979.41,
  1265.             83399.93,
  1266.             83375.26,
  1267.             86130.60,
  1268.             77779.52,
  1269.             86084.65,
  1270.             91623.23,
  1271.             77736.91,
  1272.             83266.71,
  1273.             88803.63,
  1274.             83248.91,
  1275.             83237.90,
  1276.             86002.59,
  1277.             85998.37,
  1278.             86795.10,
  1279.             82424.83,
  1280.             77668.95,
  1281.             83826.40,
  1282.             82855.49,
  1283.             81896.39,
  1284.             80945.26,
  1285.             80005.71,
  1286.             79073.81,
  1287.             78153.36,
  1288.             77240.46,
  1289.             76338.77,
  1290.             75442.83,
  1291.             74559.63,
  1292.             73683.80,
  1293.             72818.74,
  1294.             71960.96,
  1295.             71113.75,
  1296.             70273.75,
  1297.             69444.16,
  1298.             68621.73,
  1299.             67808.00,
  1300.             67003.18,
  1301.             66209.00,
  1302.             65368.18,
  1303.             64559.14,
  1304.             63788.68,
  1305.             63026.70,
  1306.             62274.14,
  1307.             61432.75,
  1308.             60651.23,
  1309.             59923.57,
  1310.             59202.51,
  1311.             58489.10,
  1312.             57783.75,
  1313.             57087.37,
  1314.             56397.56,
  1315.             55716.66,
  1316.             55041.04,
  1317.             54375.82,
  1318.             53717.63,
  1319.             53063.22,
  1320.             52306.64,
  1321.             51671.63,
  1322.             51044.73,
  1323.             50426.66,
  1324.             49815.62,
  1325.             49212.43,
  1326.             48618.22,
  1327.             48034.14,
  1328.             47416.90,
  1329.             46719.33,
  1330.             46158.09,
  1331.             45612.91,
  1332.             45078.92,
  1333.             44559.76,
  1334.             44056.98,
  1335.             43537.39,
  1336.             43094.25,
  1337.             42296.58,
  1338.             40729.05,
  1339.             154138.78,
  1340.             22151.18,
  1341.             21862.38,
  1342.             21622.51,
  1343.             21385.03,
  1344.             21149.90,
  1345.             20917.12,
  1346.             20686.66,
  1347.             20458.50,
  1348.             20232.61,
  1349.             20008.97,
  1350.             19787.58,
  1351.             19568.39,
  1352.             19351.40,
  1353.             19136.58,
  1354.             18923.91,
  1355.             18713.38,
  1356.             18504.96,
  1357.             18298.64,
  1358.             18094.39,
  1359.             17892.19,
  1360.             17692.04,
  1361.             17493.91,
  1362.             17297.77,
  1363.             17103.63,
  1364.             16911.45,
  1365.             16721.22,
  1366.             16532.93,
  1367.             16346.56,
  1368.             16162.09,
  1369.             15979.52,
  1370.             15798.83,
  1371.             15620.02,
  1372.             15443.07,
  1373.             15268.00,
  1374.             15094.82,
  1375.             14923.57,
  1376.             14754.38,
  1377.             14587.73,
  1378.             14354.07,
  1379.             14155.94,
  1380.             13994.55,
  1381.             13835.16,
  1382.             13653.32,
  1383.             13463.54,
  1384.             13309.28,
  1385.             13156.75,
  1386.             13004.02,
  1387.             12843.27,
  1388.             12679.01,
  1389.             12533.61,
  1390.             12390.87,
  1391.             12149.03,
  1392.             12008.62,
  1393.             11869.70,
  1394.             11732.30,
  1395.             11596.44,
  1396.             11456.12,
  1397.             11310.15,
  1398.             11178.75,
  1399.             11048.90,
  1400.             10944.29,
  1401.             10734.20,
  1402.             10596.74,
  1403.             10473.25,
  1404.             10343.73,
  1405.             10325.35,
  1406.             9965.02,
  1407.             9740.85,
  1408.             9626.76,
  1409.             9497.04,
  1410.             9316.36,
  1411.             9206.18,
  1412.             9097.19,
  1413.             8989.41,
  1414.             13367.27,
  1415.             8674.12,
  1416.             8571.57,
  1417.             8471.05,
  1418.             8289.52,
  1419.             8190.60,
  1420.             8092.76,
  1421.             7995.99,
  1422.             7900.29,
  1423.             7805.67,
  1424.             7712.15,
  1425.             7619.77,
  1426.             7528.62,
  1427.             7438.94,
  1428.             7336.11,
  1429.             7154.49,
  1430.             7068.57,
  1431.             6958.80,
  1432.             6868.54,
  1433.             6785.37,
  1434.             6703.18,
  1435.             6622.00,
  1436.             6538.74,
  1437.             6449.85,
  1438.             6365.53,
  1439.             6254.73,
  1440.             6178.50,
  1441.             6103.19,
  1442.             6028.79,
  1443.             7802.87,
  1444.             5811.50,
  1445.             5728.30,
  1446.             5651.90,
  1447.             5583.39,
  1448.             5516.05,
  1449.             5431.66,
  1450.             5345.00,
  1451.             5280.80,
  1452.             5217.82,
  1453.             5156.25,
  1454.             5096.47,
  1455.             5024.91,
  1456.             4943.33,
  1457.             4891.09,
  1458.             36115.49,
  1459.             3704.22,
  1460.             1925.53,
  1461.             1902.90,
  1462.             1880.51,
  1463.             1858.36,
  1464.             1836.47,
  1465.             1814.82,
  1466.             1793.42,
  1467.             1772.29,
  1468.             1746.40,
  1469.             1725.94,
  1470.             1700.04,
  1471.             1661.14,
  1472.             1641.44,
  1473.             1621.98,
  1474.             1602.75,
  1475.             1583.77,
  1476.             1563.01,
  1477.             1539.77,
  1478.             1521.94,
  1479.             1489.40,
  1480.             1427.43,
  1481.             1410.34,
  1482.             1393.44,
  1483.             1376.71,
  1484.             1360.16,
  1485.             1343.79,
  1486.             1327.59,
  1487.             1311.57,
  1488.             1295.72,
  1489.             1280.04,
  1490.             1264.53,
  1491.             1249.19,
  1492.             1234.02,
  1493.             1219.01,
  1494.             1204.17,
  1495.             1189.49,
  1496.             1174.99,
  1497.             1160.65,
  1498.             1146.48,
  1499.             1132.48,
  1500.             1118.67,
  1501.             1105.08,
  1502.             1090.04,
  1503.             1067.14,
  1504.             1047.24,
  1505.             1030.92,
  1506.             1018.22,
  1507.             1005.67,
  1508.             993.28,
  1509.             981.07,
  1510.             969.10,
  1511.             948.83,
  1512.             929.86,
  1513.             914.24,
  1514.             896.96,
  1515.             882.24,
  1516.             871.18,
  1517.             860.24,
  1518.             849.42,
  1519.             838.74,
  1520.             828.18,
  1521.             817.76,
  1522.             807.47,
  1523.             797.32,
  1524.             787.31,
  1525.             777.48,
  1526.             767.87,
  1527.             752.10,
  1528.             731.31,
  1529.             722.20,
  1530.             712.35,
  1531.             692.93,
  1532.             683.89,
  1533.             661.85,
  1534.             653.51,
  1535.             645.31,
  1536.             637.26,
  1537.             627.23,
  1538.             602.88,
  1539.             583.17,
  1540.             549.25,
  1541.             535.13,
  1542.             517.43,
  1543.             508.10,
  1544.             501.01,
  1545.             494.81,
  1546.             484.81,
  1547.             454.48,
  1548.             445.13,
  1549.             439.39,
  1550.             433.74,
  1551.             428.19,
  1552.             422.77,
  1553.             417.59,
  1554.             396.97,
  1555.             392.06,
  1556.             369.15,
  1557.             364.41,
  1558.             359.76,
  1559.             355.23,
  1560.             350.83,
  1561.             346.62,
  1562.             342.71,
  1563.             339.47,
  1564.             294.60,
  1565.             253.10,
  1566.             245.44,
  1567.             233.26,
  1568.             207.78,
  1569.             205.16,
  1570.             190.79,
  1571.             404.12,
  1572.             166.27,
  1573.             159.54,
  1574.             157.73,
  1575.             148.58,
  1576.             146.92,
  1577.             139.00,
  1578.             134.10,
  1579.             132.75,
  1580.             128.40,
  1581.             101.44,
  1582.             95.71,
  1583.             94.71,
  1584.             93.83,
  1585.             109.15,
  1586.             62.23,
  1587.             53.33,
  1588.             9.96,
  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. }