/*
 * 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.000250448" ;
    }

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.1004, 0.1003, 0.09995, 0.09969, 0.0997, 0.09957, 0.09982, 0.09979, \
                  0.09992, 0.09984");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.06593, -0.06584, -0.06581, -0.06578, -0.06574, -0.06578, -0.06595, \
                  -0.06591, -0.06586, -0.06602");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.09777, 0.09422, 0.09114, 0.09003, 0.08984, 0.08951, 0.08992, \
                  0.08958, 0.08975, 0.08971");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.08988, -0.08968, -0.08959, -0.0893, -0.08926, -0.08922, -0.08948, \
                  -0.08944, -0.08967, -0.08955");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.9325 ;
      max_transition : 2.6 ;
      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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.7807, 0.7589, 0.726, 0.7058, 0.6943, 0.6867, 0.6827, 0.6785, 0.6764, 0.675",\
                 "0.7806, 0.7592, 0.7253, 0.7065, 0.6934, 0.6867, 0.6819, 0.6784, 0.6765, 0.6751",\
                 "0.8029, 0.7812, 0.7447, 0.7233, 0.7112, 0.7034, 0.6985, 0.6957, 0.6931, 0.6914",\
                 "0.9082, 0.8827, 0.8349, 0.8041, 0.7843, 0.7727, 0.7648, 0.7599, 0.7567, 0.7546",\
                 "1.109, 1.076, 1.013, 0.9634, 0.9305, 0.9094, 0.8958, 0.8871, 0.8808, 0.8761",\
                 "1.397, 1.36, 1.276, 1.205, 1.157, 1.123, 1.1, 1.085, 1.074, 1.066",\
                 "1.771, 1.728, 1.631, 1.536, 1.468, 1.418, 1.383, 1.359, 1.341, 1.329",\
                 "2.231, 2.186, 2.073, 1.955, 1.864, 1.799, 1.748, 1.714, 1.689, 1.671",\
                 "2.781, 2.732, 2.606, 2.466, 2.355, 2.268, 2.203, 2.155, 2.12, 2.093",\
                 "3.42, 3.369, 3.234, 3.074, 2.938, 2.831, 2.748, 2.685, 2.639, 2.603");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.516, 0.4941, 0.4608, 0.4427, 0.4338, 0.4294, 0.4285, 0.4328, 0.4391, 0.4428",\
                 "0.5162, 0.4935, 0.4619, 0.4429, 0.4337, 0.4288, 0.4279, 0.4289, 0.4386, 0.4423",\
                 "0.5359, 0.514, 0.4812, 0.4594, 0.448, 0.442, 0.4433, 0.441, 0.4523, 0.4582",\
                 "0.6279, 0.6035, 0.5636, 0.5331, 0.5145, 0.5036, 0.5, 0.4971, 0.5024, 0.5099",\
                 "0.795, 0.7646, 0.7153, 0.6754, 0.6434, 0.6257, 0.6133, 0.6088, 0.6151, 0.6161",\
                 "1.045, 1.009, 0.9445, 0.8892, 0.8512, 0.8188, 0.7942, 0.782, 0.7895, 0.7866",\
                 "1.372, 1.332, 1.251, 1.183, 1.128, 1.092, 1.057, 1.04, 1.028, 1.023",\
                 "1.779, 1.733, 1.642, 1.558, 1.481, 1.431, 1.398, 1.367, 1.344, 1.329",\
                 "2.268, 2.219, 2.11, 2.011, 1.929, 1.855, 1.801, 1.775, 1.746, 1.722",\
                 "2.841, 2.79, 2.669, 2.554, 2.45, 2.362, 2.302, 2.254, 2.227, 2.197");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.8942, 0.87, 0.8274, 0.801, 0.7845, 0.7736, 0.7672, 0.7624, 0.7597, 0.7577",\
                 "0.8948, 0.8714, 0.8286, 0.8011, 0.7853, 0.775, 0.7684, 0.7639, 0.7609, 0.7586",\
                 "0.9198, 0.8957, 0.8507, 0.8226, 0.8059, 0.7953, 0.7881, 0.7833, 0.7803, 0.7781",\
                 "1.026, 0.9993, 0.9466, 0.9087, 0.8851, 0.8704, 0.8611, 0.8544, 0.8505, 0.8472",\
                 "1.237, 1.205, 1.137, 1.082, 1.044, 1.019, 1.003, 0.9919, 0.9842, 0.979",\
                 "1.545, 1.508, 1.423, 1.346, 1.291, 1.252, 1.226, 1.207, 1.195, 1.186",\
                 "1.946, 1.904, 1.804, 1.705, 1.63, 1.573, 1.533, 1.504, 1.484, 1.47",\
                 "2.438, 2.391, 2.279, 2.158, 2.059, 1.984, 1.929, 1.888, 1.858, 1.836",\
                 "3.025, 2.976, 2.85, 2.706, 2.587, 2.491, 2.418, 2.362, 2.322, 2.291",\
                 "3.711, 3.66, 3.524, 3.361, 3.218, 3.101, 3.006, 2.935, 2.881, 2.839");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.5152, 0.493, 0.462, 0.4418, 0.4325, 0.425, 0.4241, 0.4284, 0.438, 0.4439",\
                 "0.5129, 0.4904, 0.4582, 0.439, 0.4302, 0.4244, 0.4219, 0.4289, 0.4353, 0.439",\
                 "0.5257, 0.5034, 0.4713, 0.4505, 0.439, 0.4349, 0.4334, 0.4361, 0.443, 0.4483",\
                 "0.604, 0.5806, 0.5428, 0.5145, 0.4988, 0.491, 0.4868, 0.4845, 0.4958, 0.4984",\
                 "0.771, 0.7424, 0.6913, 0.6573, 0.6278, 0.6092, 0.6028, 0.6005, 0.6058, 0.6056",\
                 "1.025, 0.9902, 0.9288, 0.8722, 0.8385, 0.8083, 0.7876, 0.7826, 0.7823, 0.7805",\
                 "1.359, 1.321, 1.243, 1.177, 1.121, 1.089, 1.06, 1.032, 1.03, 1.026",\
                 "1.776, 1.735, 1.644, 1.557, 1.492, 1.439, 1.408, 1.377, 1.361, 1.347",\
                 "2.277, 2.234, 2.132, 2.034, 1.947, 1.881, 1.832, 1.802, 1.777, 1.755",\
                 "2.867, 2.819, 2.708, 2.595, 2.488, 2.407, 2.341, 2.3, 2.274, 2.252");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.106, 0.1179, 0.1497, 0.1998, 0.2718, 0.371, 0.5016, 0.6664, 0.8677, 1.108",\
                 "0.1097, 0.1215, 0.1534, 0.2034, 0.2753, 0.3746, 0.5051, 0.6699, 0.8712, 1.111",\
                 "0.1261, 0.1379, 0.1696, 0.2195, 0.2913, 0.3905, 0.5211, 0.6857, 0.887, 1.127",\
                 "0.1599, 0.1719, 0.2036, 0.2532, 0.3245, 0.4234, 0.5537, 0.7183, 0.9195, 1.159",\
                 "0.2041, 0.2169, 0.25, 0.3002, 0.3714, 0.4696, 0.5994, 0.7634, 0.9643, 1.204",\
                 "0.2546, 0.2686, 0.3044, 0.3564, 0.4281, 0.5261, 0.655, 0.8186, 1.019, 1.259",\
                 "0.3106, 0.3262, 0.3651, 0.4194, 0.4931, 0.5922, 0.7207, 0.8839, 1.084, 1.323",\
                 "0.3733, 0.3895, 0.4317, 0.4891, 0.5649, 0.6658, 0.7967, 0.9597, 1.159, 1.397",\
                 "0.4413, 0.4595, 0.504, 0.5652, 0.6433, 0.7458, 0.8788, 1.045, 1.245, 1.483",\
                 "0.5158, 0.5351, 0.5829, 0.6476, 0.7284, 0.8328, 0.9677, 1.136, 1.34, 1.58");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.1159, 0.129, 0.1673, 0.2357, 0.3417, 0.491, 0.6878, 0.9359, 1.24, 1.601",\
                 "0.1181, 0.1313, 0.1695, 0.2379, 0.344, 0.4932, 0.69, 0.9383, 1.242, 1.604",\
                 "0.129, 0.1421, 0.1803, 0.2485, 0.3542, 0.5034, 0.7005, 0.949, 1.252, 1.612",\
                 "0.1495, 0.1628, 0.2008, 0.2684, 0.3734, 0.5221, 0.7187, 0.9669, 1.27, 1.632",\
                 "0.1712, 0.1848, 0.2233, 0.2901, 0.3942, 0.542, 0.7378, 0.986, 1.289, 1.65",\
                 "0.1904, 0.2051, 0.2446, 0.3116, 0.4148, 0.5616, 0.7563, 1.003, 1.306, 1.667",\
                 "0.2052, 0.2208, 0.2618, 0.3299, 0.4335, 0.5798, 0.7737, 1.02, 1.321, 1.682",\
                 "0.2146, 0.2312, 0.2748, 0.3434, 0.448, 0.5956, 0.7893, 1.034, 1.335, 1.694",\
                 "0.2176, 0.2357, 0.2815, 0.3515, 0.4572, 0.6057, 0.8015, 1.047, 1.347, 1.706",\
                 "0.2139, 0.2332, 0.2814, 0.3532, 0.4587, 0.6089, 0.8076, 1.055, 1.356, 1.714");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.0368, 0.0495, 0.0861, 0.1538, 0.2644, 0.425, 0.6405, 0.9124, 1.245, 1.641",\
                 "0.03676, 0.04966, 0.08642, 0.1536, 0.2645, 0.4252, 0.6406, 0.9124, 1.245, 1.641",\
                 "0.03694, 0.04966, 0.08642, 0.1541, 0.2642, 0.4252, 0.6404, 0.9125, 1.246, 1.641",\
                 "0.04034, 0.05302, 0.08852, 0.1553, 0.2642, 0.4257, 0.6414, 0.9124, 1.245, 1.641",\
                 "0.04818, 0.0612, 0.09608, 0.1595, 0.2663, 0.426, 0.6413, 0.9116, 1.244, 1.64",\
                 "0.05804, 0.07264, 0.1073, 0.1691, 0.2718, 0.4277, 0.6417, 0.914, 1.243, 1.643",\
                 "0.0685, 0.08466, 0.1216, 0.1818, 0.2834, 0.4346, 0.6436, 0.913, 1.245, 1.64",\
                 "0.0796, 0.0976, 0.1358, 0.1956, 0.2968, 0.4486, 0.6538, 0.9172, 1.245, 1.639",\
                 "0.0912, 0.1102, 0.1528, 0.213, 0.3106, 0.4634, 0.672, 0.9326, 1.253, 1.641",\
                 "0.1034, 0.1232, 0.1694, 0.2308, 0.3266, 0.4784, 0.6894, 0.9556, 1.274, 1.655");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.04158, 0.05844, 0.1149, 0.2286, 0.4122, 0.672, 1.013, 1.445, 1.972, 2.599",\
                 "0.04192, 0.05846, 0.1149, 0.2292, 0.4122, 0.6719, 1.013, 1.445, 1.972, 2.599",\
                 "0.0416, 0.05812, 0.1149, 0.2284, 0.4114, 0.6714, 1.014, 1.446, 1.972, 2.6",\
                 "0.04396, 0.06032, 0.1161, 0.2298, 0.4123, 0.6715, 1.014, 1.445, 1.973, 2.601",\
                 "0.0481, 0.06432, 0.1188, 0.2312, 0.412, 0.6718, 1.012, 1.446, 1.972, 2.6",\
                 "0.0543, 0.07118, 0.1242, 0.2341, 0.4141, 0.6715, 1.014, 1.442, 1.971, 2.597",\
                 "0.06122, 0.07894, 0.1313, 0.2404, 0.4202, 0.6746, 1.014, 1.444, 1.968, 2.596",\
                 "0.07, 0.088, 0.1398, 0.2472, 0.4288, 0.6834, 1.018, 1.444, 1.968, 2.594",\
                 "0.0786, 0.0976, 0.1502, 0.2548, 0.4372, 0.6964, 1.03, 1.451, 1.971, 2.593",\
                 "0.0876, 0.1078, 0.1614, 0.2632, 0.446, 0.7076, 1.047, 1.467, 1.98, 2.597");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.1164, 0.129, 0.1622, 0.2128, 0.2847, 0.3838, 0.5143, 0.6789, 0.8802, 1.12",\
                 "0.1202, 0.1327, 0.166, 0.2166, 0.2886, 0.3877, 0.5182, 0.6828, 0.884, 1.124",\
                 "0.1374, 0.1499, 0.1829, 0.2335, 0.3054, 0.4044, 0.5348, 0.6995, 0.9007, 1.141",\
                 "0.1741, 0.1866, 0.2195, 0.2696, 0.3411, 0.4399, 0.5701, 0.7346, 0.9357, 1.175",\
                 "0.2249, 0.2382, 0.2725, 0.3231, 0.3942, 0.4921, 0.6218, 0.7859, 0.9867, 1.226",\
                 "0.2857, 0.3004, 0.3368, 0.389, 0.4604, 0.5581, 0.687, 0.8504, 1.051, 1.29",\
                 "0.3559, 0.3719, 0.4111, 0.466, 0.5393, 0.6369, 0.7651, 0.9278, 1.128, 1.366",\
                 "0.4356, 0.453, 0.4955, 0.5534, 0.628, 0.7274, 0.8564, 1.019, 1.218, 1.456",\
                 "0.5256, 0.5441, 0.5901, 0.6512, 0.7283, 0.8296, 0.9601, 1.124, 1.323, 1.56",\
                 "0.626, 0.6457, 0.6951, 0.7599, 0.8399, 0.9424, 1.075, 1.241, 1.442, 1.68");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.1234, 0.1365, 0.1747, 0.2432, 0.3491, 0.4982, 0.695, 0.9438, 1.246, 1.608",\
                 "0.1242, 0.1374, 0.1755, 0.244, 0.3501, 0.4993, 0.6959, 0.944, 1.248, 1.61",\
                 "0.1286, 0.1416, 0.1799, 0.2482, 0.3539, 0.5033, 0.7004, 0.9481, 1.252, 1.613",\
                 "0.1396, 0.153, 0.1911, 0.259, 0.3642, 0.5132, 0.7097, 0.9582, 1.262, 1.623",\
                 "0.1523, 0.1663, 0.205, 0.2724, 0.3766, 0.5247, 0.7207, 0.9681, 1.272, 1.633",\
                 "0.1604, 0.1752, 0.2157, 0.2834, 0.3873, 0.5342, 0.7293, 0.9762, 1.279, 1.64",\
                 "0.1612, 0.1772, 0.2195, 0.2887, 0.3936, 0.5406, 0.7347, 0.9808, 1.282, 1.643",\
                 "0.1534, 0.1703, 0.2152, 0.2853, 0.3919, 0.5408, 0.7357, 0.981, 1.282, 1.641",\
                 "0.1359, 0.1542, 0.2014, 0.2735, 0.381, 0.5319, 0.7296, 0.9763, 1.276, 1.635",\
                 "0.1084, 0.1278, 0.1775, 0.2515, 0.3597, 0.5127, 0.7132, 0.9635, 1.265, 1.624");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.04044, 0.05386, 0.0902, 0.1564, 0.2652, 0.4258, 0.6421, 0.9123, 1.244, 1.64",\
                 "0.04044, 0.05394, 0.0901, 0.1563, 0.2652, 0.4258, 0.6408, 0.913, 1.246, 1.64",\
                 "0.0406, 0.0539, 0.09028, 0.156, 0.2653, 0.426, 0.641, 0.9123, 1.244, 1.64",\
                 "0.04314, 0.05616, 0.092, 0.1572, 0.2653, 0.4258, 0.6409, 0.9124, 1.244, 1.64",\
                 "0.05034, 0.06438, 0.0991, 0.1614, 0.267, 0.4258, 0.6413, 0.913, 1.244, 1.64",\
                 "0.06002, 0.0747, 0.1106, 0.1699, 0.2713, 0.4273, 0.6417, 0.9128, 1.244, 1.641",\
                 "0.07082, 0.08692, 0.125, 0.1824, 0.2814, 0.4328, 0.6424, 0.913, 1.245, 1.639",\
                 "0.0818, 0.0998, 0.1398, 0.1972, 0.2942, 0.444, 0.6498, 0.9154, 1.245, 1.639",\
                 "0.0936, 0.1134, 0.155, 0.2126, 0.309, 0.4588, 0.6642, 0.9254, 1.249, 1.64",\
                 "0.1064, 0.1274, 0.1732, 0.2324, 0.3246, 0.4742, 0.681, 0.9436, 1.263, 1.648");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.00743, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.04156, 0.05844, 0.115, 0.2284, 0.4114, 0.671, 1.014, 1.445, 1.969, 2.6",\
                 "0.04198, 0.05838, 0.1149, 0.2285, 0.4122, 0.6719, 1.013, 1.444, 1.972, 2.596",\
                 "0.04162, 0.05816, 0.1149, 0.2285, 0.4115, 0.672, 1.014, 1.443, 1.97, 2.602",\
                 "0.04354, 0.06022, 0.116, 0.2287, 0.4114, 0.6719, 1.014, 1.446, 1.972, 2.599",\
                 "0.04788, 0.065, 0.1191, 0.2305, 0.4121, 0.671, 1.013, 1.443, 1.972, 2.598",\
                 "0.054, 0.07226, 0.1252, 0.2353, 0.4147, 0.6713, 1.013, 1.442, 1.969, 2.6",\
                 "0.06068, 0.07892, 0.1325, 0.2428, 0.4217, 0.6756, 1.013, 1.444, 1.97, 2.594",\
                 "0.0686, 0.0876, 0.1414, 0.2508, 0.4326, 0.6866, 1.02, 1.444, 1.97, 2.593",\
                 "0.0768, 0.0962, 0.1518, 0.2592, 0.4428, 0.7022, 1.036, 1.454, 1.971, 2.594",\
                 "0.0844, 0.1056, 0.1626, 0.268, 0.4524, 0.7164, 1.057, 1.474, 1.984, 2.599");
        }
      }
    }
  }

