/*
 * 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__or2_1) {
    area : 22.579200 ;

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "2.044746e-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.003682 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.003068, 0.003076, 0.003084, 0.003079, 0.003077, 0.003082, 0.00307, \
                  0.003076, 0.003071, 0.003068");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.001545, -0.001557, -0.001558, -0.001566, -0.001568, -0.001574, \
                  -0.001568, -0.001574, -0.001573, -0.001572");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.00408, 0.004084, 0.004081, 0.004081, 0.00408, 0.004103, 0.004086, \
                  0.004093, 0.004091, 0.004093");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.003569, -0.00374, -0.003855, -0.003918, -0.003948, -0.003972, \
                  -0.003969, -0.003996, -0.004001, -0.004007");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 0.3142 ;
      max_transition : 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.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.03591, 0.03587, 0.03589, 0.03616, 0.03635, 0.03652, 0.03662, 0.03668, 0.03673, 0.03677",\
                 "0.03561, 0.03556, 0.03561, 0.03587, 0.03609, 0.03623, 0.03634, 0.03641, 0.03646, 0.03649",\
                 "0.03514, 0.03509, 0.03515, 0.03537, 0.03559, 0.03577, 0.03588, 0.03593, 0.03598, 0.03602",\
                 "0.03499, 0.03492, 0.03497, 0.03515, 0.03539, 0.03557, 0.03569, 0.03578, 0.03583, 0.03588",\
                 "0.03545, 0.03535, 0.03528, 0.03541, 0.03561, 0.03579, 0.03591, 0.03601, 0.03607, 0.03611",\
                 "0.03658, 0.03638, 0.03615, 0.03612, 0.0362, 0.03639, 0.03652, 0.03661, 0.03668, 0.03672",\
                 "0.03816, 0.03784, 0.03746, 0.03728, 0.03727, 0.03743, 0.03751, 0.03761, 0.03766, 0.03771",\
                 "0.04016, 0.03977, 0.03915, 0.03885, 0.03878, 0.03886, 0.03894, 0.03903, 0.03908, 0.03912",\
                 "0.04264, 0.04212, 0.04134, 0.04093, 0.04076, 0.04071, 0.04079, 0.04085, 0.04093, 0.04098",\
                 "0.04561, 0.04499, 0.04415, 0.04346, 0.04318, 0.04317, 0.04313, 0.04317, 0.04322, 0.04326");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.01987, 0.02009, 0.02074, 0.02126, 0.02163, 0.02199, 0.02231, 0.02257, 0.02315, 0.02335",\
                 "0.01989, 0.02013, 0.02076, 0.02127, 0.02167, 0.02205, 0.02235, 0.02263, 0.02319, 0.02337",\
                 "0.01973, 0.01996, 0.02042, 0.02102, 0.02144, 0.02185, 0.02223, 0.02243, 0.02303, 0.02327",\
                 "0.01963, 0.01972, 0.02003, 0.02059, 0.02106, 0.02151, 0.02193, 0.02223, 0.02271, 0.02307",\
                 "0.01979, 0.01982, 0.02004, 0.02051, 0.02092, 0.02143, 0.02175, 0.02219, 0.02273, 0.02335",\
                 "0.02039, 0.02039, 0.0204, 0.02071, 0.02132, 0.02171, 0.02199, 0.02245, 0.02301, 0.02339",\
                 "0.02141, 0.02139, 0.02135, 0.02143, 0.02185, 0.02256, 0.02284, 0.02308, 0.02334, 0.02425",\
                 "0.02287, 0.02283, 0.02274, 0.02272, 0.023, 0.02335, 0.02411, 0.02445, 0.02465, 0.0249",\
                 "0.02493, 0.0248, 0.02459, 0.02455, 0.0246, 0.02478, 0.02546, 0.02625, 0.02665, 0.0267",\
                 "0.02745, 0.0273, 0.02702, 0.02687, 0.02684, 0.02698, 0.02708, 0.02795, 0.02897, 0.02932");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.03846, 0.03839, 0.03848, 0.0387, 0.03894, 0.03911, 0.03921, 0.03927, 0.03932, 0.03935",\
                 "0.03825, 0.03821, 0.03827, 0.03848, 0.03872, 0.03889, 0.03899, 0.03905, 0.03909, 0.03912",\
                 "0.03782, 0.03776, 0.03784, 0.03809, 0.03828, 0.03845, 0.03855, 0.03863, 0.03867, 0.0387",\
                 "0.03754, 0.03747, 0.03753, 0.03772, 0.03796, 0.03812, 0.03825, 0.03833, 0.03838, 0.03842",\
                 "0.03766, 0.03757, 0.03754, 0.03768, 0.03791, 0.03807, 0.0382, 0.03828, 0.03834, 0.03838",\
                 "0.03821, 0.03804, 0.03795, 0.038, 0.03815, 0.0383, 0.03843, 0.03852, 0.03858, 0.03863",\
                 "0.03923, 0.03904, 0.0388, 0.03878, 0.03885, 0.03899, 0.03913, 0.03922, 0.03929, 0.03934",\
                 "0.04093, 0.04065, 0.04026, 0.0402, 0.04018, 0.04028, 0.04039, 0.04048, 0.04055, 0.04062",\
                 "0.04326, 0.04288, 0.04239, 0.04209, 0.04214, 0.04222, 0.04226, 0.04235, 0.04243, 0.0425",\
                 "0.04628, 0.04579, 0.04509, 0.04478, 0.04467, 0.04472, 0.04471, 0.04479, 0.04487, 0.04493");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.02221, 0.02243, 0.02293, 0.02351, 0.02384, 0.02427, 0.02455, 0.02487, 0.02541, 0.02559",\
                 "0.02209, 0.02229, 0.02282, 0.02334, 0.02372, 0.02419, 0.02443, 0.02471, 0.02523, 0.02544",\
                 "0.0218, 0.02197, 0.02246, 0.02297, 0.02334, 0.02382, 0.02404, 0.02442, 0.02495, 0.02474",\
                 "0.02171, 0.02184, 0.02216, 0.02263, 0.02299, 0.02352, 0.02384, 0.0242, 0.02484, 0.02514",\
                 "0.0219, 0.0219, 0.02217, 0.02255, 0.02293, 0.02346, 0.02378, 0.02418, 0.0248, 0.02514",\
                 "0.02254, 0.02253, 0.02255, 0.02286, 0.02338, 0.02372, 0.02412, 0.0244, 0.02476, 0.025",\
                 "0.02365, 0.02363, 0.02358, 0.02361, 0.02402, 0.02465, 0.02505, 0.02519, 0.02555, 0.02594",\
                 "0.0252, 0.02513, 0.02506, 0.02501, 0.02534, 0.02572, 0.02643, 0.02669, 0.02676, 0.0277",\
                 "0.02736, 0.02721, 0.02706, 0.02698, 0.02709, 0.0272, 0.0278, 0.02877, 0.02899, 0.02893",\
                 "0.03005, 0.02988, 0.02959, 0.02954, 0.02948, 0.02984, 0.02988, 0.03059, 0.03145, 0.03166");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.4955, 0.5255, 0.6061, 0.7188, 0.86, 1.033, 1.247, 1.509, 1.827, 2.203",\
                 "0.5027, 0.5326, 0.6131, 0.726, 0.867, 1.041, 1.254, 1.517, 1.833, 2.21",\
                 "0.5419, 0.5719, 0.6522, 0.7653, 0.9062, 1.08, 1.294, 1.556, 1.873, 2.25",\
                 "0.6348, 0.6646, 0.7448, 0.8579, 0.9988, 1.172, 1.386, 1.648, 1.965, 2.342",\
                 "0.7858, 0.8158, 0.8963, 1.01, 1.151, 1.325, 1.539, 1.801, 2.118, 2.495",\
                 "0.9688, 1.002, 1.087, 1.205, 1.349, 1.525, 1.739, 2.001, 2.319, 2.695",\
                 "1.168, 1.203, 1.296, 1.42, 1.569, 1.748, 1.965, 2.228, 2.545, 2.921",\
                 "1.385, 1.423, 1.523, 1.655, 1.808, 1.99, 2.208, 2.474, 2.792, 3.169",\
                 "1.626, 1.666, 1.772, 1.912, 2.071, 2.256, 2.476, 2.742, 3.06, 3.438",\
                 "1.894, 1.936, 2.047, 2.196, 2.362, 2.551, 2.772, 3.038, 3.356, 3.734");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.2089, 0.2353, 0.323, 0.4845, 0.7334, 1.081, 1.539, 2.114, 2.815, 3.65",\
                 "0.2219, 0.2485, 0.3361, 0.4977, 0.7469, 1.094, 1.551, 2.125, 2.828, 3.665",\
                 "0.267, 0.2934, 0.3803, 0.542, 0.7912, 1.14, 1.597, 2.172, 2.873, 3.711",\
                 "0.3332, 0.36, 0.447, 0.6082, 0.8577, 1.206, 1.664, 2.237, 2.941, 3.778",\
                 "0.3872, 0.4154, 0.5036, 0.6649, 0.9139, 1.262, 1.72, 2.296, 2.997, 3.831",\
                 "0.4225, 0.4529, 0.5434, 0.7046, 0.9534, 1.302, 1.758, 2.333, 3.035, 3.871",\
                 "0.4371, 0.4703, 0.5644, 0.7254, 0.974, 1.322, 1.779, 2.354, 3.056, 3.891",\
                 "0.4291, 0.4654, 0.5641, 0.7262, 0.9741, 1.321, 1.778, 2.354, 3.055, 3.891",\
                 "0.3962, 0.4354, 0.5408, 0.7051, 0.952, 1.299, 1.756, 2.331, 3.033, 3.868",\
                 "0.3372, 0.3794, 0.4919, 0.6595, 0.907, 1.253, 1.709, 2.284, 2.986, 3.822");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.1541, 0.1797, 0.2513, 0.3665, 0.5361, 0.7726, 1.096, 1.518, 2.046, 2.679",\
                 "0.1538, 0.1797, 0.2513, 0.3664, 0.5362, 0.7723, 1.098, 1.518, 2.047, 2.679",\
                 "0.1541, 0.1797, 0.251, 0.3665, 0.5362, 0.7726, 1.096, 1.519, 2.045, 2.681",\
                 "0.154, 0.1797, 0.2523, 0.3662, 0.5356, 0.7722, 1.097, 1.519, 2.047, 2.68",\
                 "0.1586, 0.1836, 0.2548, 0.369, 0.5364, 0.7732, 1.096, 1.52, 2.044, 2.68",\
                 "0.18, 0.2062, 0.2744, 0.3846, 0.546, 0.7798, 1.101, 1.52, 2.045, 2.679",\
                 "0.2022, 0.2308, 0.3014, 0.4074, 0.5662, 0.7946, 1.111, 1.527, 2.05, 2.682",\
                 "0.2234, 0.254, 0.3294, 0.4318, 0.586, 0.81, 1.123, 1.537, 2.057, 2.686",\
                 "0.243, 0.2752, 0.357, 0.4606, 0.6078, 0.8254, 1.133, 1.543, 2.063, 2.69",\
                 "0.2616, 0.295, 0.383, 0.4892, 0.6314, 0.8426, 1.144, 1.55, 2.065, 2.696");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.1095, 0.1466, 0.2848, 0.5577, 0.9844, 1.58, 2.37, 3.362, 4.576, 6.005",\
                 "0.109, 0.1465, 0.2846, 0.5574, 0.9821, 1.579, 2.37, 3.362, 4.574, 6.014",\
                 "0.1096, 0.1468, 0.2849, 0.5565, 0.9828, 1.579, 2.371, 3.364, 4.574, 6.016",\
                 "0.1163, 0.1518, 0.2862, 0.5565, 0.9831, 1.581, 2.368, 3.362, 4.572, 6.018",\
                 "0.1283, 0.1618, 0.2912, 0.5588, 0.9824, 1.581, 2.368, 3.359, 4.574, 6.016",\
                 "0.1438, 0.175, 0.2976, 0.5606, 0.984, 1.58, 2.366, 3.356, 4.571, 6.014",\
                 "0.16, 0.1918, 0.3076, 0.5636, 0.9868, 1.581, 2.365, 3.353, 4.563, 6.011",\
                 "0.1784, 0.2104, 0.3192, 0.5676, 0.9888, 1.584, 2.367, 3.353, 4.565, 6.005",\
                 "0.1982, 0.2322, 0.3358, 0.5728, 0.9888, 1.584, 2.367, 3.354, 4.56, 6.006",\
                 "0.2158, 0.2538, 0.3578, 0.5832, 0.9916, 1.585, 2.371, 3.355, 4.561, 5.998");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.5351, 0.5648, 0.6453, 0.7583, 0.8993, 1.073, 1.287, 1.549, 1.866, 2.243",\
                 "0.5463, 0.5763, 0.6566, 0.7697, 0.9107, 1.084, 1.298, 1.56, 1.877, 2.254",\
                 "0.5878, 0.6175, 0.6979, 0.8111, 0.9519, 1.126, 1.339, 1.601, 1.919, 2.295",\
                 "0.6635, 0.6933, 0.7736, 0.8866, 1.028, 1.201, 1.415, 1.677, 1.994, 2.371",\
                 "0.7769, 0.8071, 0.888, 1.002, 1.143, 1.317, 1.531, 1.793, 2.11, 2.487",\
                 "0.9131, 0.945, 1.03, 1.149, 1.294, 1.469, 1.683, 1.946, 2.263, 2.64",\
                 "1.071, 1.105, 1.195, 1.319, 1.469, 1.648, 1.865, 2.128, 2.446, 2.823",\
                 "1.255, 1.29, 1.385, 1.514, 1.669, 1.852, 2.072, 2.337, 2.655, 3.033",\
                 "1.468, 1.504, 1.603, 1.738, 1.898, 2.085, 2.307, 2.573, 2.892, 3.27",\
                 "1.709, 1.747, 1.851, 1.991, 2.156, 2.347, 2.572, 2.84, 3.159, 3.537");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.2257, 0.2525, 0.3402, 0.5023, 0.7513, 1.099, 1.556, 2.13, 2.831, 3.668",\
                 "0.2381, 0.2649, 0.3526, 0.5147, 0.7638, 1.112, 1.568, 2.142, 2.843, 3.68",\
                 "0.2831, 0.3097, 0.3971, 0.559, 0.8081, 1.156, 1.613, 2.187, 2.888, 3.725",\
                 "0.356, 0.383, 0.47, 0.6315, 0.8807, 1.229, 1.686, 2.261, 2.962, 3.797",\
                 "0.4199, 0.448, 0.5364, 0.6978, 0.9471, 1.295, 1.752, 2.327, 3.028, 3.865",\
                 "0.4667, 0.497, 0.5871, 0.7481, 0.9973, 1.345, 1.803, 2.377, 3.079, 3.915",\
                 "0.4937, 0.526, 0.6193, 0.7804, 1.029, 1.377, 1.834, 2.409, 3.111, 3.947",\
                 "0.4995, 0.5342, 0.6321, 0.7935, 1.042, 1.389, 1.846, 2.422, 3.123, 3.959",\
                 "0.4821, 0.5197, 0.6229, 0.7864, 1.034, 1.381, 1.838, 2.413, 3.115, 3.95",\
                 "0.4398, 0.4806, 0.59, 0.7565, 1.004, 1.351, 1.807, 2.382, 3.084, 3.919");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.1542, 0.1795, 0.2508, 0.3664, 0.536, 0.7725, 1.097, 1.519, 2.046, 2.681",\
                 "0.1538, 0.1796, 0.2516, 0.3662, 0.5359, 0.7724, 1.097, 1.518, 2.044, 2.681",\
                 "0.1542, 0.1799, 0.2509, 0.3663, 0.5361, 0.7728, 1.096, 1.52, 2.045, 2.681",\
                 "0.154, 0.18, 0.252, 0.3666, 0.536, 0.7724, 1.096, 1.52, 2.045, 2.681",\
                 "0.159, 0.1844, 0.2552, 0.369, 0.5366, 0.7728, 1.096, 1.52, 2.047, 2.68",\
                 "0.172, 0.1986, 0.2716, 0.3834, 0.5468, 0.7802, 1.101, 1.522, 2.047, 2.681",\
                 "0.1854, 0.2138, 0.2886, 0.4038, 0.566, 0.7954, 1.11, 1.527, 2.049, 2.678",\
                 "0.1992, 0.2284, 0.3068, 0.4232, 0.585, 0.8116, 1.122, 1.535, 2.053, 2.683",\
                 "0.214, 0.2442, 0.3254, 0.4426, 0.6046, 0.8278, 1.134, 1.544, 2.061, 2.687",\
                 "0.2292, 0.2604, 0.345, 0.4634, 0.6246, 0.8458, 1.15, 1.551, 2.066, 2.691");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003161, 0.01075, 0.02524, 0.04781, 0.07948, 0.1212, 0.1737, 0.2378, 0.3142");
          values("0.1112, 0.1486, 0.2862, 0.5573, 0.9844, 1.58, 2.368, 3.356, 4.567, 6.01",\
                 "0.1106, 0.1485, 0.2861, 0.5584, 0.9845, 1.581, 2.368, 3.357, 4.567, 6.01",\
                 "0.1113, 0.1484, 0.2859, 0.5575, 0.9844, 1.581, 2.368, 3.358, 4.567, 6.006",\
                 "0.1156, 0.1516, 0.2866, 0.5573, 0.9842, 1.58, 2.367, 3.359, 4.568, 6.004",\
                 "0.1273, 0.1613, 0.291, 0.559, 0.9826, 1.582, 2.368, 3.356, 4.565, 6.01",\
                 "0.141, 0.1734, 0.2968, 0.5614, 0.9852, 1.579, 2.366, 3.356, 4.567, 6.007",\
                 "0.1566, 0.1886, 0.3046, 0.5634, 0.9862, 1.581, 2.364, 3.354, 4.561, 6.008",\
                 "0.1724, 0.2056, 0.3156, 0.5668, 0.9878, 1.582, 2.366, 3.354, 4.566, 6.006",\
                 "0.1894, 0.2234, 0.3302, 0.5718, 0.9896, 1.585, 2.367, 3.355, 4.561, 6.004",\
                 "0.2078, 0.2432, 0.348, 0.5794, 0.9914, 1.587, 2.368, 3.355, 4.562, 5.998");
        }
      }
    }
  }

