/*
 * Copyright 2022 GlobalFoundries PDK Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

  cell(gf180mcu_fd_sc_mcu7t5v0__and2_4) {
    area : 37.318400 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "0.0002064" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "0.00020685" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "0.000286715" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "0.00025752" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "0.000286715" ;
    }

    pg_pin(VDD) {
      voltage_name : VDD ;
      pg_type : primary_power ;
    }

    pg_pin(VSS) {
      voltage_name : VSS ;
      pg_type : primary_ground ;
    }

    pin(A1) {
      capacitance : 0.008941 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.0813, 0.0811, 0.08081, 0.08073, 0.08052, 0.08065, 0.08069, 0.08066, \
                 0.08072, 0.08061");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.05318, -0.05309, -0.05314, -0.05314, -0.05307, -0.05307, -0.05322, \
                 -0.05324, -0.05325, -0.05333");
        }
      }
    }

    pin(A2) {
      capacitance : 0.009251 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.08064, 0.07638, 0.07349, 0.07247, 0.07217, 0.07232, 0.07232, \
                 0.07225, 0.0723, 0.07223");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.07238, -0.07228, -0.07228, -0.07219, -0.07202, -0.07201, -0.07217, \
                 -0.07211, -0.0722, -0.07214");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.9532 ;
      max_transition : 4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.6198, 0.606, 0.5867, 0.5775, 0.5719, 0.5686, 0.5661, 0.565, 0.5641, 0.5638",\
                 "0.6178, 0.6041, 0.5851, 0.5756, 0.5701, 0.5666, 0.5646, 0.5633, 0.5622, 0.5621",\
                 "0.6267, 0.6126, 0.5921, 0.5818, 0.5762, 0.5732, 0.5719, 0.5699, 0.569, 0.5684",\
                 "0.6885, 0.6712, 0.6427, 0.6266, 0.6176, 0.6119, 0.6087, 0.6068, 0.6056, 0.6047",\
                 "0.8132, 0.79, 0.7494, 0.7202, 0.7038, 0.6942, 0.6878, 0.684, 0.6811, 0.6793",\
                 "0.9962, 0.9677, 0.9124, 0.8699, 0.8436, 0.8258, 0.8145, 0.8075, 0.8033, 0.7998",\
                 "1.236, 1.204, 1.134, 1.077, 1.036, 1.01, 0.9927, 0.9816, 0.973, 0.9676",\
                 "1.533, 1.497, 1.415, 1.34, 1.286, 1.25, 1.224, 1.206, 1.194, 1.186",\
                 "1.889, 1.85, 1.757, 1.664, 1.595, 1.546, 1.511, 1.487, 1.47, 1.458",\
                 "2.307, 2.264, 2.16, 2.051, 1.967, 1.905, 1.859, 1.827, 1.804, 1.786");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.4054, 0.3909, 0.3716, 0.36, 0.3563, 0.356, 0.3574, 0.3607, 0.3659, 0.3694",\
                 "0.4035, 0.3885, 0.3698, 0.3588, 0.355, 0.354, 0.3554, 0.3587, 0.3624, 0.3709",\
                 "0.4113, 0.3969, 0.3767, 0.365, 0.3601, 0.358, 0.3609, 0.3647, 0.3694, 0.3739",\
                 "0.4662, 0.449, 0.4233, 0.4055, 0.3956, 0.393, 0.3944, 0.3962, 0.3999, 0.4039",\
                 "0.5683, 0.5479, 0.5136, 0.4901, 0.4715, 0.4635, 0.4599, 0.4607, 0.4619, 0.4674",\
                 "0.7257, 0.7009, 0.6568, 0.6225, 0.5993, 0.583, 0.5729, 0.5707, 0.5689, 0.5734",\
                 "0.9364, 0.9062, 0.8528, 0.8065, 0.7708, 0.753, 0.7374, 0.7272, 0.7189, 0.7199",\
                 "1.201, 1.166, 1.102, 1.042, 0.9995, 0.9665, 0.9514, 0.9392, 0.9284, 0.9199",\
                 "1.521, 1.483, 1.406, 1.337, 1.283, 1.237, 1.209, 1.199, 1.187, 1.174",\
                 "1.896, 1.855, 1.765, 1.687, 1.619, 1.564, 1.525, 1.506, 1.495, 1.478");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "A1" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.7055, 0.6896, 0.6648, 0.6504, 0.6425, 0.6374, 0.6343, 0.6322, 0.6309, 0.6301",\
                 "0.704, 0.6878, 0.6623, 0.6493, 0.6408, 0.6357, 0.6329, 0.6306, 0.6294, 0.6286",\
                 "0.7146, 0.698, 0.6721, 0.6575, 0.6495, 0.6445, 0.6414, 0.6394, 0.6382, 0.6374",\
                 "0.7768, 0.7577, 0.7257, 0.7053, 0.694, 0.6872, 0.6831, 0.6803, 0.6789, 0.6774",\
                 "0.9075, 0.8838, 0.8394, 0.808, 0.7886, 0.7762, 0.7688, 0.764, 0.7609, 0.7586",\
                 "1.102, 1.073, 1.015, 0.9698, 0.9395, 0.9197, 0.907, 0.8979, 0.8926, 0.8891",\
                 "1.357, 1.325, 1.254, 1.192, 1.149, 1.119, 1.099, 1.086, 1.077, 1.071",\
                 "1.675, 1.638, 1.555, 1.477, 1.418, 1.378, 1.349, 1.33, 1.315, 1.306",\
                 "2.055, 2.016, 1.921, 1.826, 1.753, 1.698, 1.659, 1.632, 1.613, 1.598",\
                 "2.501, 2.46, 2.356, 2.243, 2.154, 2.085, 2.034, 1.998, 1.972, 1.953");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.4051, 0.3913, 0.3712, 0.3606, 0.3573, 0.3565, 0.3569, 0.3632, 0.3649, 0.3699",\
                 "0.403, 0.3874, 0.3682, 0.3579, 0.3541, 0.353, 0.3554, 0.3577, 0.3629, 0.3674",\
                 "0.4061, 0.391, 0.3709, 0.3599, 0.3555, 0.3545, 0.3559, 0.3587, 0.3634, 0.3684",\
                 "0.4497, 0.4343, 0.4095, 0.3945, 0.3863, 0.383, 0.3844, 0.3892, 0.3919, 0.3954",\
                 "0.5496, 0.5295, 0.497, 0.4766, 0.4607, 0.4535, 0.4519, 0.4527, 0.4564, 0.4589",\
                 "0.7084, 0.6842, 0.6429, 0.6077, 0.5895, 0.5745, 0.5664, 0.5642, 0.5649, 0.5679",\
                 "0.9226, 0.8935, 0.8426, 0.7967, 0.7659, 0.7495, 0.7369, 0.7272, 0.7224, 0.7224",\
                 "1.194, 1.163, 1.099, 1.045, 1.002, 0.9725, 0.9579, 0.9457, 0.9369, 0.9329",\
                 "1.523, 1.487, 1.413, 1.348, 1.292, 1.252, 1.229, 1.217, 1.207, 1.196",\
                 "1.91, 1.872, 1.788, 1.712, 1.648, 1.592, 1.557, 1.535, 1.529, 1.515");
        }
      }

      timing() {
        related_pin : "A1" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.1593, 0.1778, 0.2276, 0.305, 0.4144, 0.5643, 0.761, 1.009, 1.311, 1.672",\
                 "0.1654, 0.1837, 0.2336, 0.311, 0.4204, 0.5703, 0.767, 1.015, 1.317, 1.678",\
                 "0.1916, 0.2098, 0.2595, 0.3367, 0.4462, 0.596, 0.7926, 1.04, 1.343, 1.704",\
                 "0.2446, 0.2631, 0.3128, 0.3898, 0.499, 0.6486, 0.8451, 1.093, 1.395, 1.756",\
                 "0.3123, 0.3319, 0.3837, 0.4623, 0.5717, 0.7207, 0.9166, 1.164, 1.466, 1.827",\
                 "0.3901, 0.4119, 0.4671, 0.548, 0.6587, 0.8076, 1.003, 1.25, 1.552, 1.912",\
                 "0.4765, 0.5005, 0.5593, 0.645, 0.7589, 0.9092, 1.104, 1.351, 1.652, 2.012",\
                 "0.5722, 0.5979, 0.6622, 0.7514, 0.8694, 1.023, 1.221, 1.467, 1.767, 2.127",\
                 "0.6767, 0.7044, 0.7733, 0.8676, 0.9898, 1.147, 1.348, 1.598, 1.899, 2.258",\
                 "0.7904, 0.8198, 0.8938, 0.9938, 1.12, 1.281, 1.487, 1.741, 2.047, 2.407");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.1803, 0.2008, 0.2608, 0.3656, 0.5259, 0.7508, 1.047, 1.42, 1.877, 2.421",\
                 "0.1839, 0.2043, 0.2645, 0.3694, 0.5296, 0.7545, 1.051, 1.424, 1.88, 2.424",\
                 "0.2011, 0.2215, 0.2815, 0.3861, 0.5461, 0.771, 1.067, 1.441, 1.896, 2.439",\
                 "0.2337, 0.2543, 0.314, 0.4178, 0.577, 0.8012, 1.097, 1.471, 1.926, 2.468",\
                 "0.2664, 0.2878, 0.3479, 0.4513, 0.6095, 0.8329, 1.129, 1.5, 1.956, 2.499",\
                 "0.2961, 0.3184, 0.38, 0.4835, 0.6406, 0.8632, 1.157, 1.53, 1.985, 2.528",\
                 "0.3183, 0.3423, 0.4063, 0.5115, 0.6691, 0.8904, 1.184, 1.555, 2.009, 2.552",\
                 "0.3329, 0.3586, 0.4254, 0.5315, 0.6917, 0.9147, 1.208, 1.577, 2.031, 2.572",\
                 "0.3379, 0.3654, 0.4359, 0.5442, 0.7061, 0.9312, 1.226, 1.597, 2.049, 2.59",\
                 "0.3322, 0.3616, 0.4358, 0.5475, 0.7099, 0.9374, 1.237, 1.61, 2.063, 2.603");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.05624, 0.0756, 0.1329, 0.2363, 0.4034, 0.6475, 0.9747, 1.386, 1.889, 2.493",\
                 "0.05622, 0.07586, 0.1335, 0.2364, 0.4036, 0.6476, 0.9751, 1.385, 1.889, 2.494",\
                 "0.05636, 0.07614, 0.1336, 0.2366, 0.4031, 0.6475, 0.9749, 1.388, 1.892, 2.494",\
                 "0.06132, 0.0806, 0.1366, 0.2386, 0.404, 0.6476, 0.9747, 1.386, 1.891, 2.494",\
                 "0.07262, 0.09212, 0.1466, 0.2456, 0.4073, 0.6491, 0.975, 1.385, 1.89, 2.494",\
                 "0.08734, 0.1078, 0.1626, 0.2578, 0.4144, 0.6512, 0.9748, 1.386, 1.891, 2.493",\
                 "0.1044, 0.1256, 0.182, 0.2768, 0.43, 0.6592, 0.9774, 1.388, 1.891, 2.49",\
                 "0.1212, 0.1456, 0.2044, 0.298, 0.45, 0.6784, 0.9888, 1.391, 1.89, 2.491",\
                 "0.1384, 0.1656, 0.2284, 0.3206, 0.4724, 0.701, 1.012, 1.407, 1.898, 2.491",\
                 "0.1558, 0.186, 0.2524, 0.3474, 0.497, 0.7256, 1.04, 1.44, 1.923, 2.505");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.06542, 0.09114, 0.1797, 0.3535, 0.6347, 1.034, 1.561, 2.224, 3.036, 4.003",\
                 "0.06544, 0.0912, 0.1798, 0.3536, 0.6353, 1.034, 1.561, 2.225, 3.033, 3.996",\
                 "0.0651, 0.09082, 0.1799, 0.3546, 0.634, 1.034, 1.56, 2.224, 3.031, 3.997",\
                 "0.06894, 0.09384, 0.1815, 0.3542, 0.6352, 1.033, 1.558, 2.223, 3.031, 3.996",\
                 "0.0749, 0.09986, 0.1858, 0.3581, 0.6365, 1.035, 1.56, 2.221, 3.032, 3.995",\
                 "0.08354, 0.1094, 0.1932, 0.3616, 0.6384, 1.035, 1.561, 2.222, 3.034, 4",\
                 "0.0948, 0.1212, 0.2034, 0.3702, 0.6448, 1.038, 1.562, 2.222, 3.033, 3.997",\
                 "0.1074, 0.1342, 0.2152, 0.3818, 0.656, 1.048, 1.566, 2.225, 3.036, 3.993",\
                 "0.1204, 0.1498, 0.2292, 0.3938, 0.6702, 1.062, 1.579, 2.231, 3.033, 3.994",\
                 "0.1356, 0.1662, 0.2464, 0.407, 0.6842, 1.082, 1.601, 2.248, 3.043, 3.997");
        }
      }

      timing() {
        related_pin : "A2" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.1754, 0.1948, 0.2462, 0.3246, 0.4343, 0.5843, 0.7807, 1.029, 1.331, 1.692",\
                 "0.1814, 0.2009, 0.2524, 0.3308, 0.4405, 0.5903, 0.7869, 1.035, 1.337, 1.698",\
                 "0.2085, 0.2279, 0.2792, 0.3576, 0.4673, 0.6171, 0.8136, 1.061, 1.364, 1.725",\
                 "0.2653, 0.2847, 0.3359, 0.4138, 0.5233, 0.6729, 0.8693, 1.117, 1.419, 1.78",\
                 "0.3421, 0.3625, 0.4157, 0.4951, 0.6043, 0.7533, 0.9492, 1.196, 1.499, 1.859",\
                 "0.4336, 0.456, 0.5126, 0.594, 0.7043, 0.8529, 1.048, 1.295, 1.597, 1.957",\
                 "0.5389, 0.5631, 0.6241, 0.7093, 0.8217, 0.9712, 1.166, 1.412, 1.713, 2.073",\
                 "0.6584, 0.6848, 0.7503, 0.8395, 0.9562, 1.108, 1.303, 1.549, 1.85, 2.208",\
                 "0.7929, 0.8207, 0.8911, 0.9855, 1.106, 1.261, 1.46, 1.707, 2.007, 2.366",\
                 "0.942, 0.9723, 1.048, 1.148, 1.272, 1.431, 1.633, 1.885, 2.187, 2.545");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.1916, 0.2122, 0.2722, 0.3771, 0.5372, 0.7621, 1.058, 1.432, 1.887, 2.431",\
                 "0.1942, 0.2144, 0.2746, 0.3795, 0.5396, 0.7646, 1.061, 1.434, 1.89, 2.434",\
                 "0.2018, 0.2222, 0.2821, 0.3867, 0.5467, 0.7717, 1.067, 1.441, 1.897, 2.441",\
                 "0.2185, 0.2394, 0.2992, 0.4035, 0.5631, 0.7876, 1.083, 1.457, 1.912, 2.457",\
                 "0.2375, 0.2591, 0.3199, 0.4238, 0.5824, 0.8062, 1.102, 1.474, 1.93, 2.474",\
                 "0.2505, 0.2732, 0.336, 0.4406, 0.5987, 0.8212, 1.116, 1.488, 1.942, 2.485",\
                 "0.2526, 0.2766, 0.3424, 0.4495, 0.609, 0.8314, 1.125, 1.496, 1.95, 2.493",\
                 "0.2425, 0.2686, 0.3369, 0.4465, 0.6088, 0.8337, 1.127, 1.498, 1.951, 2.492",\
                 "0.2176, 0.2453, 0.3176, 0.4295, 0.5945, 0.8225, 1.121, 1.492, 1.945, 2.485",\
                 "0.1777, 0.2073, 0.2832, 0.3983, 0.5655, 0.7972, 1.099, 1.476, 1.93, 2.47");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.0615, 0.08196, 0.1384, 0.2397, 0.4046, 0.6493, 0.9753, 1.386, 1.889, 2.495",\
                 "0.06172, 0.08172, 0.1381, 0.2398, 0.4051, 0.6485, 0.974, 1.386, 1.892, 2.493",\
                 "0.06184, 0.08206, 0.1382, 0.2398, 0.4048, 0.648, 0.9752, 1.385, 1.889, 2.495",\
                 "0.06512, 0.08502, 0.1404, 0.2413, 0.4055, 0.6481, 0.9752, 1.386, 1.892, 2.495",\
                 "0.07608, 0.09646, 0.1509, 0.2473, 0.4088, 0.6486, 0.9754, 1.386, 1.892, 2.493",\
                 "0.0906, 0.1118, 0.166, 0.259, 0.4144, 0.6512, 0.9752, 1.387, 1.889, 2.491",\
                 "0.1062, 0.13, 0.1854, 0.2762, 0.4268, 0.6576, 0.9768, 1.387, 1.891, 2.489",\
                 "0.1228, 0.1486, 0.2076, 0.297, 0.4462, 0.6718, 0.9852, 1.389, 1.89, 2.49",\
                 "0.1408, 0.1698, 0.2304, 0.3198, 0.4676, 0.693, 1.004, 1.401, 1.895, 2.49",\
                 "0.1596, 0.19, 0.2576, 0.347, 0.4914, 0.7164, 1.028, 1.424, 1.91, 2.497");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.007572, 0.03064, 0.0747, 0.1433, 0.2396, 0.3664, 0.526, 0.7209, 0.9532");
          values("0.06542, 0.09112, 0.1798, 0.3535, 0.6349, 1.033, 1.56, 2.221, 3.033, 3.999",\
                 "0.06562, 0.09136, 0.1798, 0.3534, 0.6353, 1.034, 1.561, 2.221, 3.036, 4.002",\
                 "0.06504, 0.09068, 0.1797, 0.3547, 0.6349, 1.034, 1.56, 2.221, 3.035, 4.001",\
                 "0.06828, 0.09354, 0.1814, 0.3549, 0.6346, 1.034, 1.56, 2.221, 3.03, 4.001",\
                 "0.07442, 0.09986, 0.1857, 0.3571, 0.6354, 1.034, 1.561, 2.222, 3.032, 4.001",\
                 "0.0829, 0.1096, 0.1943, 0.3632, 0.6386, 1.034, 1.559, 2.223, 3.031, 3.996",\
                 "0.0938, 0.1212, 0.2048, 0.374, 0.6472, 1.038, 1.561, 2.223, 3.029, 3.999",\
                 "0.105, 0.1334, 0.218, 0.3864, 0.6616, 1.053, 1.566, 2.223, 3.033, 3.992",\
                 "0.1176, 0.1476, 0.232, 0.3996, 0.6786, 1.073, 1.585, 2.232, 3.032, 3.999",\
                 "0.1314, 0.1616, 0.247, 0.4136, 0.6948, 1.095, 1.612, 2.259, 3.047, 3.998");
        }
      }
    }
  }

