/*
 * 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_mcu9t5v0__nand2_2) {
    area : 25.401600 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "5.1876e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "5.18796e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "9.1638e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "8.1882e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "9.1638e-05" ;
    }

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.06199, 0.06173, 0.06132, 0.06114, 0.06106, 0.06112, 0.06112, \
                  0.06114, 0.06116, 0.06114");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.03932, -0.0392, -0.03922, -0.03916, -0.03911, -0.03921, -0.03926, \
                  -0.03933, -0.0393, -0.03926");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05864, 0.05593, 0.054, 0.05361, 0.05357, 0.05358, 0.05365, 0.05364, \
                  0.05361, 0.05366");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.05396, -0.05385, -0.05353, -0.05344, -0.05341, -0.05334, -0.05343, \
                  -0.0534, -0.05353, -0.05343");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 0.7907 ;
      max_transition : 4.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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.002058, 0.003504, 0.005158, 0.006011, 0.006417, 0.006622, 0.006723, 0.006763, 0.006845, 0.006867",\
                 "0.0007271, 0.001978, 0.004047, 0.005342, 0.005987, 0.006311, 0.006526, 0.006633, 0.006773, 0.00681",\
                 "0.01022, 0.009099, 0.007877, 0.007557, 0.00723, 0.007129, 0.007033, 0.006972, 0.006894, 0.006982",\
                 "0.0438, 0.03896, 0.02979, 0.02265, 0.01785, 0.01461, 0.01251, 0.01109, 0.0101, 0.009367",\
                 "0.1057, 0.09703, 0.07771, 0.05985, 0.04613, 0.03626, 0.02906, 0.02396, 0.02031, 0.01755",\
                 "0.1974, 0.1859, 0.1572, 0.1259, 0.09976, 0.07956, 0.06407, 0.0523, 0.04326, 0.03645",\
                 "0.3209, 0.3072, 0.2699, 0.225, 0.184, 0.1501, 0.123, 0.1018, 0.0849, 0.07127",\
                 "0.4783, 0.4625, 0.4186, 0.3612, 0.3039, 0.2541, 0.2125, 0.1785, 0.1508, 0.128",\
                 "0.6718, 0.654, 0.6046, 0.536, 0.4628, 0.3952, 0.3368, 0.2874, 0.2458, 0.2114",\
                 "0.9032, 0.8844, 0.8294, 0.7508, 0.6629, 0.577, 0.5, 0.4333, 0.3754, 0.3266");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.135, 0.1385, 0.1435, 0.146, 0.1468, 0.15, 0.1516, 0.1532, 0.1571, 0.1608",\
                 "0.1338, 0.1361, 0.1411, 0.1441, 0.1463, 0.1501, 0.1513, 0.1535, 0.1586, 0.159",\
                 "0.1475, 0.1462, 0.1447, 0.1455, 0.1474, 0.1494, 0.1513, 0.1553, 0.1575, 0.1582",\
                 "0.1888, 0.1828, 0.1724, 0.1632, 0.1585, 0.1572, 0.157, 0.1586, 0.1604, 0.1644",\
                 "0.2603, 0.2508, 0.2292, 0.21, 0.1934, 0.1823, 0.1765, 0.1733, 0.1712, 0.1708",\
                 "0.3645, 0.3526, 0.3218, 0.288, 0.26, 0.2355, 0.2189, 0.2072, 0.1978, 0.1935",\
                 "0.504, 0.4898, 0.4516, 0.4034, 0.3616, 0.3244, 0.2927, 0.268, 0.2507, 0.2374",\
                 "0.6809, 0.665, 0.6203, 0.5605, 0.5003, 0.4479, 0.4025, 0.3627, 0.3314, 0.3062",\
                 "0.8981, 0.8808, 0.8311, 0.7592, 0.683, 0.6132, 0.5523, 0.497, 0.4498, 0.412",\
                 "1.158, 1.139, 1.084, 1.004, 0.9139, 0.8246, 0.7449, 0.6748, 0.6114, 0.5521");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.002104, 0.003569, 0.005321, 0.006047, 0.006427, 0.006602, 0.006718, 0.006758, 0.006787, 0.006812",\
                 "-0.0009478, 0.000799, 0.003567, 0.005097, 0.005874, 0.006256, 0.006485, 0.006632, 0.006684, 0.006782",\
                 "0.003874, 0.003949, 0.004747, 0.005454, 0.006107, 0.006438, 0.006575, 0.006665, 0.006722, 0.006775",\
                 "0.03474, 0.03096, 0.02413, 0.01902, 0.01547, 0.01306, 0.0114, 0.01039, 0.009562, 0.008991",\
                 "0.09645, 0.08886, 0.07169, 0.05563, 0.04353, 0.03467, 0.02817, 0.02346, 0.01995, 0.01733",\
                 "0.1904, 0.1794, 0.1523, 0.1226, 0.09801, 0.07869, 0.06395, 0.05263, 0.04396, 0.0372",\
                 "0.318, 0.3045, 0.2689, 0.225, 0.1849, 0.1521, 0.1255, 0.1045, 0.08766, 0.07422",\
                 "0.4811, 0.4656, 0.4225, 0.3659, 0.3091, 0.2597, 0.2187, 0.1846, 0.1568, 0.134",\
                 "0.6818, 0.6645, 0.6153, 0.5471, 0.4743, 0.4066, 0.3482, 0.2985, 0.2568, 0.2221",\
                 "0.9221, 0.9034, 0.8492, 0.7705, 0.6824, 0.596, 0.5183, 0.4507, 0.393, 0.343");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.1953, 0.1963, 0.1978, 0.1986, 0.1996, 0.2007, 0.2031, 0.2061, 0.2101, 0.213",\
                 "0.1936, 0.1944, 0.1957, 0.1975, 0.1986, 0.2002, 0.2013, 0.205, 0.2076, 0.2137",\
                 "0.2066, 0.2048, 0.2019, 0.2006, 0.2005, 0.2009, 0.2031, 0.2061, 0.2094, 0.2134",\
                 "0.2475, 0.2424, 0.2318, 0.2217, 0.2151, 0.2114, 0.2107, 0.2108, 0.2126, 0.2155",\
                 "0.3215, 0.3135, 0.2931, 0.2714, 0.2536, 0.2402, 0.2327, 0.2288, 0.2263, 0.2267",\
                 "0.4293, 0.4197, 0.3913, 0.3564, 0.325, 0.2982, 0.2787, 0.2666, 0.2573, 0.2515",\
                 "0.5746, 0.5629, 0.5293, 0.4819, 0.435, 0.3926, 0.359, 0.3325, 0.3138, 0.2976",\
                 "0.759, 0.7462, 0.7073, 0.6507, 0.5868, 0.5286, 0.4771, 0.4336, 0.3987, 0.3728",\
                 "0.9854, 0.9715, 0.929, 0.8635, 0.7854, 0.7085, 0.6395, 0.5784, 0.5273, 0.4837",\
                 "1.257, 1.241, 1.195, 1.123, 1.034, 0.9384, 0.8504, 0.771, 0.6979, 0.6374");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.03665, 0.0497, 0.0944, 0.1789, 0.3102, 0.4938, 0.7357, 1.04, 1.413, 1.856",\
                 "0.04156, 0.05466, 0.09956, 0.184, 0.3153, 0.4991, 0.741, 1.046, 1.418, 1.862",\
                 "0.04872, 0.06742, 0.1199, 0.2042, 0.335, 0.5191, 0.7605, 1.065, 1.437, 1.88",\
                 "0.04943, 0.07468, 0.1429, 0.244, 0.3759, 0.5586, 0.7996, 1.104, 1.475, 1.918",\
                 "0.04013, 0.07237, 0.1584, 0.2814, 0.437, 0.6239, 0.8632, 1.166, 1.537, 1.979",\
                 "0.01909, 0.05844, 0.1629, 0.3101, 0.4919, 0.7083, 0.9561, 1.257, 1.625, 2.066",\
                 "-0.0142, 0.0323, 0.1547, 0.3268, 0.5371, 0.7827, 1.065, 1.38, 1.747, 2.185",\
                 "-0.062, -0.0084, 0.1326, 0.3301, 0.57, 0.8467, 1.161, 1.515, 1.902, 2.339",\
                 "-0.1247, -0.0638, 0.0962, 0.3191, 0.5886, 0.8983, 1.245, 1.634, 2.063, 2.528",\
                 "-0.2036, -0.1352, 0.0434, 0.2915, 0.592, 0.9338, 1.318, 1.742, 2.208, 2.717");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.04321, 0.06161, 0.123, 0.2373, 0.4132, 0.6604, 0.9866, 1.396, 1.894, 2.493",\
                 "0.05074, 0.0686, 0.13, 0.2443, 0.4214, 0.6687, 0.9941, 1.403, 1.904, 2.499",\
                 "0.07771, 0.09856, 0.1598, 0.2731, 0.4499, 0.6962, 1.022, 1.431, 1.93, 2.528",\
                 "0.1177, 0.1447, 0.2195, 0.3351, 0.5086, 0.7539, 1.079, 1.488, 1.986, 2.584",\
                 "0.169, 0.2037, 0.2953, 0.4311, 0.6085, 0.8502, 1.172, 1.579, 2.076, 2.671",\
                 "0.2319, 0.275, 0.3864, 0.5433, 0.7459, 0.9923, 1.309, 1.712, 2.206, 2.799",\
                 "0.3073, 0.3585, 0.4909, 0.6745, 0.901, 1.176, 1.497, 1.895, 2.386, 2.973",\
                 "0.396, 0.4552, 0.61, 0.8211, 1.076, 1.378, 1.731, 2.134, 2.618, 3.201",\
                 "0.4987, 0.5666, 0.7428, 0.9825, 1.27, 1.6, 1.984, 2.421, 2.91, 3.487",\
                 "0.6168, 0.6922, 0.8912, 1.162, 1.482, 1.846, 2.259, 2.73, 3.255, 3.836");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.03715, 0.05894, 0.1335, 0.2764, 0.4988, 0.8099, 1.22, 1.735, 2.365, 3.117",\
                 "0.03952, 0.05888, 0.1338, 0.2761, 0.4994, 0.8099, 1.22, 1.736, 2.365, 3.122",\
                 "0.05902, 0.08046, 0.1433, 0.2765, 0.4982, 0.8117, 1.22, 1.735, 2.366, 3.122",\
                 "0.0909, 0.1166, 0.1896, 0.3078, 0.5016, 0.8104, 1.22, 1.735, 2.365, 3.118",\
                 "0.1331, 0.1657, 0.2507, 0.3833, 0.5643, 0.8262, 1.22, 1.736, 2.369, 3.119",\
                 "0.1827, 0.2236, 0.3273, 0.4743, 0.6721, 0.923, 1.26, 1.741, 2.367, 3.117",\
                 "0.2418, 0.2901, 0.4156, 0.585, 0.7966, 1.067, 1.395, 1.816, 2.384, 3.12",\
                 "0.3066, 0.3656, 0.5128, 0.7092, 0.9464, 1.229, 1.581, 1.991, 2.5, 3.163",\
                 "0.3812, 0.45, 0.6196, 0.8458, 1.112, 1.414, 1.783, 2.219, 2.717, 3.321",\
                 "0.4632, 0.5424, 0.736, 0.9942, 1.289, 1.625, 2.009, 2.467, 2.993, 3.585");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.04891, 0.07814, 0.1808, 0.3773, 0.6827, 1.112, 1.677, 2.391, 3.263, 4.293",\
                 "0.04916, 0.07822, 0.1814, 0.3768, 0.683, 1.114, 1.679, 2.392, 3.257, 4.3",\
                 "0.06836, 0.09424, 0.1827, 0.3774, 0.6832, 1.113, 1.678, 2.393, 3.262, 4.299",\
                 "0.1018, 0.1303, 0.2195, 0.3837, 0.6823, 1.113, 1.68, 2.388, 3.262, 4.293",\
                 "0.1452, 0.1803, 0.2779, 0.4428, 0.6981, 1.111, 1.675, 2.387, 3.262, 4.293",\
                 "0.1945, 0.2399, 0.3534, 0.5298, 0.7804, 1.141, 1.676, 2.386, 3.259, 4.291",\
                 "0.2496, 0.3058, 0.443, 0.6352, 0.9024, 1.247, 1.722, 2.39, 3.253, 4.293",\
                 "0.312, 0.3774, 0.5412, 0.761, 1.038, 1.404, 1.851, 2.455, 3.263, 4.286",\
                 "0.3814, 0.4572, 0.648, 0.9038, 1.197, 1.577, 2.049, 2.61, 3.351, 4.302",\
                 "0.4576, 0.5442, 0.7618, 1.046, 1.379, 1.77, 2.263, 2.838, 3.53, 4.416");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.04566, 0.05878, 0.1035, 0.1879, 0.3189, 0.5028, 0.7451, 1.049, 1.422, 1.865",\
                 "0.04869, 0.06195, 0.1071, 0.1916, 0.3229, 0.5067, 0.7489, 1.053, 1.425, 1.869",\
                 "0.05161, 0.06817, 0.1176, 0.2024, 0.3338, 0.5177, 0.7596, 1.064, 1.436, 1.88",\
                 "0.04718, 0.06934, 0.1297, 0.2235, 0.356, 0.5391, 0.7805, 1.085, 1.456, 1.899",\
                 "0.03027, 0.05867, 0.135, 0.2446, 0.3891, 0.5758, 0.8157, 1.119, 1.49, 1.933",\
                 "-0.00033, 0.03381, 0.1266, 0.2581, 0.4207, 0.6215, 0.8685, 1.17, 1.54, 1.981",\
                 "-0.04715, -0.0067, 0.1026, 0.2568, 0.4447, 0.6648, 0.9274, 1.24, 1.609, 2.048",\
                 "-0.1116, -0.0648, 0.0611, 0.2389, 0.4537, 0.7008, 0.9833, 1.313, 1.696, 2.136",\
                 "-0.1951, -0.1419, 0.0011, 0.2019, 0.445, 0.722, 1.033, 1.383, 1.783, 2.241",\
                 "-0.2989, -0.2395, -0.0791, 0.1455, 0.4169, 0.7251, 1.068, 1.446, 1.868, 2.344");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.06173, 0.07936, 0.1397, 0.2532, 0.4289, 0.676, 1.001, 1.41, 1.911, 2.504",\
                 "0.06887, 0.0865, 0.1469, 0.2604, 0.4367, 0.6842, 1.009, 1.419, 1.918, 2.515",\
                 "0.1009, 0.1192, 0.1778, 0.2902, 0.466, 0.712, 1.038, 1.447, 1.945, 2.543",\
                 "0.1514, 0.174, 0.2421, 0.3537, 0.5262, 0.7712, 1.094, 1.503, 2.002, 2.596",\
                 "0.2183, 0.246, 0.3264, 0.4546, 0.628, 0.8681, 1.189, 1.595, 2.09, 2.686",\
                 "0.3009, 0.3348, 0.4305, 0.576, 0.7708, 1.013, 1.327, 1.729, 2.224, 2.815",\
                 "0.4006, 0.4407, 0.5532, 0.7193, 0.9349, 1.202, 1.519, 1.915, 2.403, 2.99",\
                 "0.5185, 0.5643, 0.694, 0.8847, 1.123, 1.414, 1.759, 2.157, 2.639, 3.22",\
                 "0.6544, 0.7077, 0.8558, 1.071, 1.336, 1.65, 2.023, 2.452, 2.936, 3.509",\
                 "0.8115, 0.8708, 1.038, 1.277, 1.572, 1.915, 2.313, 2.773, 3.288, 3.864");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.0373, 0.05871, 0.1338, 0.2762, 0.4982, 0.8096, 1.22, 1.736, 2.366, 3.12",\
                 "0.03851, 0.05887, 0.1338, 0.2762, 0.4979, 0.8097, 1.22, 1.736, 2.369, 3.116",\
                 "0.05652, 0.07496, 0.1401, 0.2767, 0.4985, 0.8115, 1.22, 1.736, 2.366, 3.117",\
                 "0.0918, 0.1107, 0.1729, 0.2964, 0.5017, 0.8096, 1.22, 1.737, 2.365, 3.118",\
                 "0.1385, 0.1618, 0.2293, 0.3472, 0.5397, 0.8242, 1.22, 1.736, 2.368, 3.119",\
                 "0.1938, 0.2211, 0.3016, 0.4258, 0.6109, 0.8808, 1.25, 1.742, 2.367, 3.12",\
                 "0.2568, 0.2896, 0.3848, 0.5258, 0.7126, 0.975, 1.33, 1.79, 2.386, 3.121",\
                 "0.3256, 0.3652, 0.4774, 0.6386, 0.8422, 1.101, 1.447, 1.896, 2.455, 3.158",\
                 "0.3996, 0.4486, 0.5786, 0.7634, 0.9888, 1.261, 1.6, 2.039, 2.585, 3.25",\
                 "0.4814, 0.537, 0.6922, 0.8982, 1.15, 1.443, 1.79, 2.219, 2.754, 3.409");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.006451, 0.02558, 0.06212, 0.119, 0.1989, 0.304, 0.4364, 0.5981, 0.7907");
          values("0.0781, 0.1077, 0.2115, 0.4079, 0.7139, 1.142, 1.705, 2.416, 3.285, 4.315",\
                 "0.07788, 0.1077, 0.2113, 0.4077, 0.7138, 1.143, 1.705, 2.418, 3.283, 4.319",\
                 "0.09236, 0.1166, 0.2114, 0.4078, 0.7139, 1.142, 1.706, 2.417, 3.283, 4.321",\
                 "0.1253, 0.1535, 0.2417, 0.4118, 0.7136, 1.143, 1.706, 2.418, 3.286, 4.316",\
                 "0.17, 0.203, 0.3008, 0.4653, 0.7258, 1.141, 1.706, 2.417, 3.283, 4.318",\
                 "0.2216, 0.2627, 0.373, 0.5522, 0.802, 1.167, 1.706, 2.416, 3.283, 4.318",\
                 "0.2814, 0.3296, 0.46, 0.6512, 0.9196, 1.267, 1.746, 2.419, 3.283, 4.317",\
                 "0.3466, 0.4058, 0.5564, 0.7706, 1.049, 1.419, 1.872, 2.478, 3.291, 4.316",\
                 "0.4214, 0.4872, 0.663, 0.9036, 1.201, 1.584, 2.059, 2.628, 3.369, 4.332",\
                 "0.4976, 0.5766, 0.7792, 1.051, 1.374, 1.769, 2.264, 2.848, 3.546, 4.434");
        }
      }
    }
  }

