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

  59. public class Tirupati {

  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 = "Tirupati";
  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.             217350.70,
  648.             203908.42,
  649.             202631.56,
  650.             195957.39,
  651.             178857.66,
  652.             181354.46,
  653.             173715.67,
  654.             170408.51,
  655.             164761.17,
  656.             161664.07,
  657.             153221.95,
  658.             158639.07,
  659.             153953.13,
  660.             147363.66,
  661.             147849.35,
  662.             146306.70,
  663.             141575.60,
  664.             145385.54,
  665.             138676.46,
  666.             132353.55,
  667.             139524.66,
  668.             134678.63,
  669.             130463.98,
  670.             132475.98,
  671.             129736.41,
  672.             127476.10,
  673.             126858.11,
  674.             124509.24,
  675.             128708.93,
  676.             129180.76,
  677.             121723.68,
  678.             127444.00,
  679.             125587.84,
  680.             121428.61,
  681.             126008.04,
  682.             121807.22,
  683.             120927.24,
  684.             122671.09,
  685.             116365.97,
  686.             123266.68,
  687.             117850.15,
  688.             120931.84,
  689.             114630.67,
  690.             117707.97,
  691.             113914.77,
  692.             112200.87,
  693.             112116.41,
  694.             106786.98,
  695.             112282.69,
  696.             103468.39,
  697.             103340.68,
  698.             104757.67,
  699.             98672.47,
  700.             101660.82,
  701.             95101.32,
  702.             95095.03,
  703.             87713.36,
  704.             93758.68,
  705.             87435.23,
  706.             84060.79,
  707.             86320.39,
  708.             82404.21,
  709.             79206.79,
  710.             82316.21,
  711.             74774.21,
  712.             80412.86,
  713.             77714.97,
  714.             74658.45,
  715.             70150.47,
  716.             73347.22,
  717.             69628.08,
  718.             68466.86,
  719.             68399.16,
  720.             62964.04,
  721.             67228.59,
  722.             64704.07,
  723.             60425.11,
  724.             65059.71,
  725.             59765.37,
  726.             55537.06,
  727.             61562.94,
  728.             57380.49,
  729.             53576.06,
  730.             55412.08,
  731.             54688.64,
  732.             52320.77,
  733.             51366.25,
  734.             48670.33,
  735.             51926.23,
  736.             52366.11,
  737.             47289.16,
  738.             44664.05,
  739.             47935.22,
  740.             45646.84,
  741.             43400.55,
  742.             42219.96,
  743.             40003.57,
  744.             43261.40,
  745.             39664.93,
  746.             38844.20,
  747.             39100.13,
  748.             41009.48,
  749.             33402.37,
  750.             38042.93,
  751.             35893.32,
  752.             32408.89,
  753.             35438.42,
  754.             31956.91,
  755.             31219.63,
  756.             31814.69,
  757.             27013.55,
  758.             33016.89,
  759.             28263.58,
  760.             31572.88,
  761.             25237.64,
  762.             28559.32,
  763.             25173.91,
  764.             24499.07,
  765.             25149.98,
  766.             20455.36,
  767.             26467.80,
  768.             20449.64,
  769.             21140.20,
  770.             23148.11,
  771.             19828.51,
  772.             19178.53,
  773.             20998.57,
  774.             19038.54,
  775.             15755.90,
  776.             19141.40,
  777.             15873.64,
  778.             15263.85,
  779.             15987.66,
  780.             11413.17,
  781.             16119.29,
  782.             14208.34,
  783.             10979.71,
  784.             15693.15,
  785.             12479.55,
  786.             11912.41,
  787.             10047.78,
  788.             10809.69,
  789.             6297.07,
  790.             11024.85,
  791.             9164.88,
  792.             5988.28,
  793.             8090.42,
  794.             7561.47,
  795.             5570.12,
  796.             9008.02,
  797.             4550.47,
  798.             1409.32,
  799.             7489.76,
  800.             4362.91,
  801.             1471.35,
  802.             3611.01,
  803.             3141.64,
  804.             1340.36,
  805.             857.78,
  806.             0.00,
  807.             1599.33,
  808.             3385.49,
  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.             27279819.36,
  1117.         };

  1118.         double[] adblCouponAmount = new double[] {
  1119.             48423.05,
  1120.             52966.10,
  1121.             46299.25,
  1122.             47642.15,
  1123.             59644.75,
  1124.             51942.65,
  1125.             55385.04,
  1126.             55128.52,
  1127.             56706.11,
  1128.             54633.58,
  1129.             59834.34,
  1130.             52362.98,
  1131.             53934.34,
  1132.             57287.47,
  1133.             53489.40,
  1134.             53271.07,
  1135.             54823.53,
  1136.             49322.90,
  1137.             54385.66,
  1138.             57669.15,
  1139.             48748.99,
  1140.             52025.03,
  1141.             55281.23,
  1142.             51633.50,
  1143.             51437.88,
  1144.             52954.51,
  1145.             52760.00,
  1146.             54262.12,
  1147.             48997.31,
  1148.             48813.59,
  1149.             55336.67,
  1150.             48455.44,
  1151.             49938.12,
  1152.             53069.52,
  1153.             47920.92,
  1154.             51033.53,
  1155.             50847.67,
  1156.             49028.85,
  1157.             53732.48,
  1158.             45430.82,
  1159.             50110.31,
  1160.             45098.50,
  1161.             51350.66,
  1162.             46372.91,
  1163.             49391.43,
  1164.             49217.61,
  1165.             47464.26,
  1166.             52028.58,
  1167.             43998.28,
  1168.             50106.89,
  1169.             48383.17,
  1170.             45114.16,
  1171.             48065.64,
  1172.             43278.13,
  1173.             47759.95,
  1174.             46078.87,
  1175.             50532.30,
  1176.             42755.00,
  1177.             47192.83,
  1178.             48577.45,
  1179.             43903.33,
  1180.             46799.43,
  1181.             48179.29,
  1182.             43549.42,
  1183.             49422.53,
  1184.             41831.21,
  1185.             43210.40,
  1186.             44585.65,
  1187.             47440.43,
  1188.             42892.75,
  1189.             45738.96,
  1190.             45632.71,
  1191.             44059.59,
  1192.             48354.44,
  1193.             42403.42,
  1194.             43766.33,
  1195.             46582.17,
  1196.             40676.12,
  1197.             44935.00,
  1198.             47736.96,
  1199.             40427.54,
  1200.             43224.31,
  1201.             46015.56,
  1202.             43060.47,
  1203.             42978.64,
  1204.             44327.82,
  1205.             44247.98,
  1206.             45594.43,
  1207.             41250.48,
  1208.             39756.48,
  1209.             43936.20,
  1210.             45279.01,
  1211.             40970.35,
  1212.             42312.33,
  1213.             43653.09,
  1214.             43586.87,
  1215.             44926.39,
  1216.             40657.44,
  1217.             43395.39,
  1218.             43334.87,
  1219.             41879.61,
  1220.             39033.75,
  1221.             45937.44,
  1222.             40321.59,
  1223.             41655.81,
  1224.             44376.33,
  1225.             40169.79,
  1226.             42886.04,
  1227.             42837.28,
  1228.             41409.33,
  1229.             45498.59,
  1230.             38567.63,
  1231.             42649.50,
  1232.             38483.17,
  1233.             43931.04,
  1234.             39776.48,
  1235.             42476.10,
  1236.             42437.69,
  1237.             41032.56,
  1238.             45094.96,
  1239.             38234.20,
  1240.             43654.54,
  1241.             42259.13,
  1242.             39502.56,
  1243.             42191.55,
  1244.             42161.29,
  1245.             39413.83,
  1246.             40741.92,
  1247.             43428.06,
  1248.             39334.19,
  1249.             42017.69,
  1250.             41993.47,
  1251.             40616.30,
  1252.             44651.96,
  1253.             39223.31,
  1254.             40552.03,
  1255.             43233.12,
  1256.             37813.85,
  1257.             40491.67,
  1258.             40473.24,
  1259.             41804.17,
  1260.             40440.81,
  1261.             44467.33,
  1262.             39068.36,
  1263.             40399.27,
  1264.             43078.12,
  1265.             40376.89,
  1266.             40364.95,
  1267.             41698.91,
  1268.             37655.85,
  1269.             41676.66,
  1270.             44358.09,
  1271.             37635.22,
  1272.             40312.39,
  1273.             42993.01,
  1274.             40303.78,
  1275.             40298.45,
  1276.             41636.93,
  1277.             41634.89,
  1278.             42020.62,
  1279.             39904.89,
  1280.             37602.32,
  1281.             40583.36,
  1282.             40113.31,
  1283.             39649.05,
  1284.             39188.50,
  1285.             38733.63,
  1286.             38282.46,
  1287.             37836.84,
  1288.             37394.87,
  1289.             36958.33,
  1290.             36524.57,
  1291.             36096.99,
  1292.             35672.96,
  1293.             35254.16,
  1294.             34838.88,
  1295.             34428.71,
  1296.             34022.04,
  1297.             33620.40,
  1298.             33222.23,
  1299.             32828.28,
  1300.             32438.64,
  1301.             32054.15,
  1302.             31647.08,
  1303.             31255.39,
  1304.             30882.38,
  1305.             30513.48,
  1306.             30149.14,
  1307.             29741.80,
  1308.             29363.43,
  1309.             29011.15,
  1310.             28662.06,
  1311.             28316.67,
  1312.             27975.18,
  1313.             27638.04,
  1314.             27304.08,
  1315.             26974.43,
  1316.             26647.34,
  1317.             26325.28,
  1318.             26006.63,
  1319.             25689.81,
  1320.             25323.52,
  1321.             25016.08,
  1322.             24712.58,
  1323.             24413.35,
  1324.             24117.52,
  1325.             23825.50,
  1326.             23537.82,
  1327.             23255.05,
  1328.             22956.22,
  1329.             22618.50,
  1330.             22346.78,
  1331.             22082.84,
  1332.             21824.32,
  1333.             21572.97,
  1334.             21329.56,
  1335.             21078.01,
  1336.             20863.47,
  1337.             20477.29,
  1338.             19718.39,
  1339.             74683.29,
  1340.             10724.18,
  1341.             10584.36,
  1342.             10468.23,
  1343.             10353.26,
  1344.             10239.43,
  1345.             10126.73,
  1346.             10015.15,
  1347.             9904.69,
  1348.             9795.33,
  1349.             9687.06,
  1350.             9579.87,
  1351.             9473.76,
  1352.             9368.71,
  1353.             9264.70,
  1354.             9161.74,
  1355.             9059.82,
  1356.             8958.91,
  1357.             8859.03,
  1358.             8760.14,
  1359.             8662.25,
  1360.             8565.35,
  1361.             8469.43,
  1362.             8374.47,
  1363.             8280.48,
  1364.             8187.44,
  1365.             8095.34,
  1366.             8004.18,
  1367.             7913.95,
  1368.             7824.65,
  1369.             7736.26,
  1370.             7648.78,
  1371.             7562.21,
  1372.             7476.54,
  1373.             7391.79,
  1374.             7307.94,
  1375.             7225.03,
  1376.             7143.12,
  1377.             7062.44,
  1378.             6949.32,
  1379.             6853.40,
  1380.             6775.26,
  1381.             6698.10,
  1382.             6610.06,
  1383.             6518.18,
  1384.             6443.50,
  1385.             6369.65,
  1386.             6295.71,
  1387.             6217.89,
  1388.             6138.36,
  1389.             6067.97,
  1390.             5998.86,
  1391.             5881.78,
  1392.             5813.80,
  1393.             5746.55,
  1394.             5680.02,
  1395.             5614.25,
  1396.             5546.32,
  1397.             5475.65,
  1398.             5412.04,
  1399.             5349.17,
  1400.             5298.52,
  1401.             5196.81,
  1402.             5130.26,
  1403.             5070.48,
  1404.             5007.77,
  1405.             4998.87,
  1406.             4824.42,
  1407.             4715.89,
  1408.             4660.66,
  1409.             4597.86,
  1410.             4510.38,
  1411.             4457.04,
  1412.             4404.28,
  1413.             4352.09,
  1414.             6471.57,
  1415.             4199.45,
  1416.             4149.80,
  1417.             4101.14,
  1418.             4013.25,
  1419.             3965.36,
  1420.             3918.00,
  1421.             3871.14,
  1422.             3824.81,
  1423.             3779.00,
  1424.             3733.73,
  1425.             3689.01,
  1426.             3644.88,
  1427.             3601.46,
  1428.             3551.67,
  1429.             3463.74,
  1430.             3422.15,
  1431.             3369.01,
  1432.             3325.30,
  1433.             3285.04,
  1434.             3245.25,
  1435.             3205.95,
  1436.             3165.64,
  1437.             3122.60,
  1438.             3081.78,
  1439.             3028.14,
  1440.             2991.23,
  1441.             2954.77,
  1442.             2918.75,
  1443.             3777.65,
  1444.             2813.56,
  1445.             2773.27,
  1446.             2736.29,
  1447.             2703.12,
  1448.             2670.52,
  1449.             2629.66,
  1450.             2587.71,
  1451.             2556.63,
  1452.             2526.13,
  1453.             2496.33,
  1454.             2467.38,
  1455.             2432.74,
  1456.             2393.24,
  1457.             2367.95,
  1458.             17484.80,
  1459.             1793.34,
  1460.             932.22,
  1461.             921.26,
  1462.             910.42,
  1463.             899.70,
  1464.             889.10,
  1465.             878.62,
  1466.             868.26,
  1467.             858.03,
  1468.             845.49,
  1469.             835.59,
  1470.             823.05,
  1471.             804.22,
  1472.             794.68,
  1473.             785.26,
  1474.             775.95,
  1475.             766.76,
  1476.             756.71,
  1477.             745.46,
  1478.             736.83,
  1479.             721.07,
  1480.             691.07,
  1481.             682.80,
  1482.             674.61,
  1483.             666.51,
  1484.             658.50,
  1485.             650.58,
  1486.             642.73,
  1487.             634.98,
  1488.             627.30,
  1489.             619.71,
  1490.             612.20,
  1491.             604.78,
  1492.             597.43,
  1493.             590.17,
  1494.             582.98,
  1495.             575.88,
  1496.             568.85,
  1497.             561.91,
  1498.             555.05,
  1499.             548.27,
  1500.             541.59,
  1501.             535.01,
  1502.             527.73,
  1503.             516.64,
  1504.             507.00,
  1505.             499.11,
  1506.             492.96,
  1507.             486.88,
  1508.             480.88,
  1509.             474.97,
  1510.             469.17,
  1511.             459.36,
  1512.             450.18,
  1513.             442.62,
  1514.             434.25,
  1515.             427.13,
  1516.             421.77,
  1517.             416.47,
  1518.             411.24,
  1519.             406.06,
  1520.             400.95,
  1521.             395.91,
  1522.             390.92,
  1523.             386.01,
  1524.             381.17,
  1525.             376.40,
  1526.             371.75,
  1527.             364.12,
  1528.             354.06,
  1529.             349.64,
  1530.             344.87,
  1531.             335.47,
  1532.             331.09,
  1533.             320.42,
  1534.             316.39,
  1535.             312.42,
  1536.             308.52,
  1537.             303.66,
  1538.             291.88,
  1539.             282.34,
  1540.             265.91,
  1541.             259.07,
  1542.             250.51,
  1543.             245.99,
  1544.             242.56,
  1545.             239.56,
  1546.             234.71,
  1547.             220.03,
  1548.             215.50,
  1549.             212.72,
  1550.             209.99,
  1551.             207.30,
  1552.             204.68,
  1553.             202.17,
  1554.             192.19,
  1555.             189.81,
  1556.             178.72,
  1557.             176.42,
  1558.             174.17,
  1559.             171.98,
  1560.             169.85,
  1561.             167.81,
  1562.             165.92,
  1563.             164.35,
  1564.             142.62,
  1565.             122.53,
  1566.             118.83,
  1567.             112.93,
  1568.             100.59,
  1569.             99.33,
  1570.             92.37,
  1571.             195.65,
  1572.             80.50,
  1573.             77.24,
  1574.             76.36,
  1575.             71.93,
  1576.             71.13,
  1577.             67.30,
  1578.             64.92,
  1579.             64.27,
  1580.             62.16,
  1581.             49.11,
  1582.             46.33,
  1583.             45.85,
  1584.             45.42,
  1585.             52.84,
  1586.             30.13,
  1587.             25.82,
  1588.             4.88,
  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. }