/*
 * 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__nand2_4) {
    area : 35.123200 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.08692, 0.08667, 0.08618, 0.08602, 0.08584, 0.08591, 0.08591, \
                  0.08589, 0.08584, 0.08578");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.05323, -0.05315, -0.05309, -0.05294, -0.05307, -0.05324, -0.05327, \
                  -0.05332, -0.05344, -0.05356");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.08892, 0.08241, 0.07901, 0.07779, 0.07716, 0.07702, 0.0767, \
                  0.07657, 0.07647, 0.07631");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.07672, -0.07668, -0.07632, -0.07617, -0.07609, -0.07619, -0.0762, \
                  -0.07617, -0.07623, -0.07622");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 1.287 ;
      max_transition : 7.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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.01124, 0.01261, 0.01419, 0.01493, 0.01518, 0.01539, 0.01556, 0.01561, 0.01566, 0.01571",\
                 "0.009518, 0.01078, 0.01299, 0.01428, 0.01478, 0.01512, 0.01533, 0.01548, 0.01556, 0.0156",\
                 "0.03109, 0.02825, 0.02366, 0.02059, 0.01886, 0.01772, 0.0171, 0.01668, 0.0165, 0.01631",\
                 "0.1027, 0.0919, 0.07149, 0.0544, 0.04254, 0.03472, 0.02943, 0.02598, 0.02348, 0.02176",\
                 "0.2321, 0.2141, 0.1737, 0.1342, 0.1038, 0.0817, 0.06573, 0.05418, 0.04577, 0.03966",\
                 "0.4229, 0.3992, 0.34, 0.274, 0.2177, 0.1739, 0.1402, 0.1144, 0.09497, 0.0799",\
                 "0.6794, 0.6513, 0.5762, 0.4832, 0.3961, 0.3239, 0.2659, 0.2199, 0.1834, 0.1544",\
                 "1.005, 0.9739, 0.8859, 0.768, 0.6488, 0.5429, 0.4548, 0.3824, 0.3227, 0.2741",\
                 "1.406, 1.371, 1.272, 1.133, 0.9823, 0.8407, 0.717, 0.612, 0.5246, 0.4505",\
                 "1.885, 1.847, 1.739, 1.581, 1.401, 1.223, 1.061, 0.9194, 0.7978, 0.6938");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.2173, 0.2212, 0.2263, 0.2281, 0.2305, 0.2322, 0.2345, 0.237, 0.2431, 0.2484",\
                 "0.2162, 0.219, 0.2243, 0.228, 0.2302, 0.2326, 0.2359, 0.241, 0.242, 0.2527",\
                 "0.2459, 0.2421, 0.2367, 0.235, 0.2349, 0.2347, 0.2381, 0.2417, 0.2449, 0.2509",\
                 "0.3318, 0.3191, 0.2964, 0.2765, 0.264, 0.2574, 0.2529, 0.2532, 0.2546, 0.2614",\
                 "0.4792, 0.4606, 0.4161, 0.3744, 0.34, 0.3146, 0.2986, 0.2881, 0.2816, 0.2823",\
                 "0.6928, 0.6695, 0.6084, 0.5376, 0.4792, 0.4295, 0.3907, 0.3641, 0.3417, 0.3353",\
                 "0.9778, 0.9508, 0.8758, 0.7789, 0.6882, 0.612, 0.5473, 0.4937, 0.4544, 0.4336",\
                 "1.339, 1.309, 1.223, 1.105, 0.981, 0.8712, 0.7763, 0.6957, 0.6272, 0.5881",\
                 "1.783, 1.75, 1.655, 1.517, 1.362, 1.217, 1.089, 0.9763, 0.8795, 0.8195",\
                 "2.312, 2.276, 2.173, 2.019, 1.839, 1.655, 1.486, 1.342, 1.213, 1.147");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.01118, 0.01271, 0.01431, 0.01498, 0.01521, 0.01539, 0.01548, 0.01552, 0.01554, 0.01561",\
                 "0.006536, 0.008731, 0.01199, 0.01371, 0.01453, 0.01492, 0.0152, 0.0153, 0.01545, 0.01552",\
                 "0.02141, 0.02039, 0.0188, 0.0177, 0.01702, 0.01668, 0.01643, 0.01622, 0.01611, 0.01602",\
                 "0.09091, 0.08199, 0.06472, 0.05056, 0.04016, 0.03337, 0.02865, 0.0254, 0.02315, 0.0215",\
                 "0.2241, 0.2074, 0.1694, 0.1324, 0.1037, 0.08251, 0.06697, 0.05556, 0.04713, 0.04082",\
                 "0.4244, 0.4013, 0.3436, 0.2788, 0.2235, 0.1801, 0.1465, 0.1206, 0.1005, 0.08489",\
                 "0.6946, 0.6669, 0.5923, 0.4994, 0.4124, 0.3394, 0.2809, 0.234, 0.1964, 0.1663",\
                 "1.04, 1.008, 0.9193, 0.8006, 0.6798, 0.5726, 0.4826, 0.4083, 0.3472, 0.2967",\
                 "1.463, 1.428, 1.328, 1.187, 1.033, 0.8892, 0.7625, 0.6548, 0.5641, 0.4878",\
                 "1.97, 1.933, 1.823, 1.661, 1.477, 1.296, 1.129, 0.9829, 0.8569, 0.7494");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.3, 0.3009, 0.3018, 0.303, 0.3047, 0.3067, 0.3108, 0.3158, 0.3205, 0.3293",\
                 "0.2975, 0.2982, 0.2993, 0.3007, 0.3025, 0.3049, 0.3086, 0.313, 0.3187, 0.3279",\
                 "0.3273, 0.3231, 0.3153, 0.3102, 0.3086, 0.3092, 0.3119, 0.3148, 0.3201, 0.3295",\
                 "0.4161, 0.4045, 0.3801, 0.3573, 0.3417, 0.3326, 0.3281, 0.3284, 0.3295, 0.3366",\
                 "0.5728, 0.5556, 0.5119, 0.4642, 0.4261, 0.3963, 0.3774, 0.367, 0.3604, 0.3629",\
                 "0.8004, 0.7794, 0.7204, 0.646, 0.5775, 0.522, 0.4786, 0.448, 0.4267, 0.4183",\
                 "1.105, 1.081, 1.01, 0.9109, 0.8093, 0.7221, 0.6488, 0.5912, 0.5465, 0.5224",\
                 "1.491, 1.465, 1.385, 1.267, 1.133, 1.007, 0.9005, 0.8092, 0.7369, 0.6905",\
                 "1.966, 1.937, 1.849, 1.715, 1.556, 1.391, 1.244, 1.115, 1.008, 0.9394",\
                 "2.533, 2.502, 2.407, 2.259, 2.076, 1.878, 1.689, 1.519, 1.373, 1.292");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.06124, 0.08516, 0.1676, 0.3241, 0.5667, 0.9078, 1.356, 1.92, 2.611, 3.433",\
                 "0.06837, 0.09226, 0.1748, 0.331, 0.5742, 0.9147, 1.364, 1.929, 2.619, 3.439",\
                 "0.08269, 0.115, 0.2066, 0.3615, 0.6037, 0.9438, 1.391, 1.956, 2.645, 3.468",\
                 "0.08441, 0.1283, 0.2478, 0.4253, 0.6657, 1.003, 1.45, 2.013, 2.701, 3.523",\
                 "0.06954, 0.125, 0.2749, 0.491, 0.7654, 1.104, 1.546, 2.106, 2.791, 3.611",\
                 "0.0368, 0.1029, 0.2829, 0.5414, 0.8611, 1.243, 1.691, 2.245, 2.927, 3.741",\
                 "-0.0153, 0.0618, 0.2702, 0.57, 0.9403, 1.372, 1.871, 2.439, 3.114, 3.923",\
                 "-0.09, -0.0015, 0.2349, 0.577, 0.9971, 1.485, 2.038, 2.663, 3.359, 4.163",\
                 "-0.1877, -0.0874, 0.1776, 0.5583, 1.029, 1.574, 2.187, 2.869, 3.628, 4.462",\
                 "-0.3091, -0.1984, 0.0976, 0.5164, 1.035, 1.634, 2.312, 3.058, 3.879, 4.779");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.06271, 0.09089, 0.1858, 0.3648, 0.6415, 1.031, 1.543, 2.186, 2.972, 3.913",\
                 "0.07543, 0.103, 0.198, 0.3771, 0.6551, 1.044, 1.556, 2.201, 2.987, 3.924",\
                 "0.1206, 0.1539, 0.2496, 0.4264, 0.7022, 1.09, 1.601, 2.247, 3.033, 3.971",\
                 "0.1835, 0.2282, 0.349, 0.5316, 0.8029, 1.188, 1.697, 2.339, 3.122, 4.06",\
                 "0.2616, 0.3194, 0.4717, 0.6899, 0.9712, 1.349, 1.851, 2.489, 3.27, 4.209",\
                 "0.356, 0.427, 0.6137, 0.8739, 1.197, 1.588, 2.084, 2.715, 3.491, 4.418",\
                 "0.4677, 0.5524, 0.7741, 1.08, 1.451, 1.889, 2.4, 3.022, 3.79, 4.709",\
                 "0.5996, 0.697, 0.9541, 1.308, 1.732, 2.221, 2.783, 3.423, 4.181, 5.095",\
                 "0.7519, 0.8628, 1.154, 1.556, 2.036, 2.583, 3.199, 3.895, 4.672, 5.574",\
                 "0.9265, 1.05, 1.376, 1.826, 2.363, 2.972, 3.649, 4.401, 5.238, 6.16");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.0713, 0.113, 0.2565, 0.5313, 0.958, 1.56, 2.348, 3.342, 4.562, 5.999",\
                 "0.07204, 0.1123, 0.2564, 0.5312, 0.958, 1.558, 2.35, 3.343, 4.553, 6.008",\
                 "0.1077, 0.1463, 0.268, 0.5308, 0.9589, 1.561, 2.346, 3.343, 4.556, 6.007",\
                 "0.1717, 0.2178, 0.3484, 0.5736, 0.9615, 1.56, 2.35, 3.346, 4.561, 6.011",\
                 "0.2575, 0.316, 0.4705, 0.705, 1.051, 1.576, 2.35, 3.345, 4.553, 6.003",\
                 "0.3602, 0.434, 0.621, 0.884, 1.241, 1.72, 2.403, 3.344, 4.559, 6.001",\
                 "0.4838, 0.575, 0.7978, 1.105, 1.481, 1.974, 2.603, 3.451, 4.575, 6.002",\
                 "0.6264, 0.7324, 1.001, 1.351, 1.773, 2.283, 2.924, 3.714, 4.74, 6.048",\
                 "0.7868, 0.9126, 1.22, 1.626, 2.103, 2.646, 3.307, 4.107, 5.072, 6.285",\
                 "0.9678, 1.113, 1.465, 1.927, 2.457, 3.061, 3.749, 4.563, 5.539, 6.688");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.08153, 0.13, 0.3021, 0.6259, 1.137, 1.844, 2.781, 3.962, 5.404, 7.114",\
                 "0.08178, 0.1301, 0.3005, 0.6258, 1.133, 1.844, 2.781, 3.967, 5.394, 7.119",\
                 "0.118, 0.1586, 0.303, 0.6288, 1.138, 1.845, 2.79, 3.971, 5.413, 7.111",\
                 "0.1848, 0.2316, 0.3723, 0.6411, 1.132, 1.845, 2.781, 3.971, 5.416, 7.121",\
                 "0.269, 0.3314, 0.4938, 0.7522, 1.169, 1.845, 2.786, 3.959, 5.417, 7.115",\
                 "0.3694, 0.4478, 0.6452, 0.926, 1.323, 1.914, 2.79, 3.963, 5.395, 7.118",\
                 "0.4842, 0.5792, 0.8202, 1.143, 1.558, 2.112, 2.887, 3.974, 5.404, 7.135",\
                 "0.6132, 0.7282, 1.016, 1.39, 1.839, 2.406, 3.136, 4.117, 5.434, 7.119",\
                 "0.763, 0.8922, 1.226, 1.666, 2.166, 2.761, 3.497, 4.415, 5.617, 7.19",\
                 "0.9348, 1.077, 1.458, 1.956, 2.526, 3.163, 3.923, 4.846, 5.965, 7.409");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.07475, 0.09872, 0.1812, 0.3377, 0.5804, 0.9213, 1.369, 1.935, 2.623, 3.446",\
                 "0.07908, 0.1033, 0.1864, 0.3428, 0.5857, 0.9265, 1.375, 1.94, 2.631, 3.451",\
                 "0.08326, 0.1123, 0.2008, 0.3566, 0.5992, 0.94, 1.388, 1.952, 2.642, 3.465",\
                 "0.07266, 0.1112, 0.2185, 0.3873, 0.6293, 0.9677, 1.414, 1.978, 2.668, 3.487",\
                 "0.0397, 0.08819, 0.2213, 0.4176, 0.6784, 1.019, 1.462, 2.023, 2.709, 3.529",\
                 "-0.0176, 0.0401, 0.1993, 0.4307, 0.7239, 1.087, 1.536, 2.092, 2.775, 3.592",\
                 "-0.1026, -0.0354, 0.1499, 0.4179, 0.7516, 1.15, 1.625, 2.193, 2.87, 3.682",\
                 "-0.218, -0.1415, 0.0692, 0.3745, 0.752, 1.194, 1.707, 2.303, 2.998, 3.806",\
                 "-0.3656, -0.2804, -0.0436, 0.2985, 0.7197, 1.21, 1.77, 2.405, 3.13, 3.961",\
                 "-0.5482, -0.4536, -0.1917, 0.1876, 0.6528, 1.194, 1.804, 2.488, 3.254, 4.115");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.08576, 0.1133, 0.2075, 0.3858, 0.6629, 1.051, 1.564, 2.207, 2.992, 3.932",\
                 "0.09771, 0.1253, 0.2197, 0.3983, 0.6755, 1.063, 1.575, 2.22, 3.003, 3.943",\
                 "0.1513, 0.1804, 0.2723, 0.4479, 0.7235, 1.111, 1.622, 2.266, 3.049, 3.987",\
                 "0.2332, 0.2704, 0.3797, 0.5557, 0.8251, 1.209, 1.717, 2.359, 3.145, 4.082",\
                 "0.339, 0.3861, 0.5196, 0.7235, 0.9977, 1.373, 1.874, 2.51, 3.29, 4.228",\
                 "0.4703, 0.5273, 0.6875, 0.9262, 1.235, 1.618, 2.11, 2.738, 3.511, 4.44",\
                 "0.6289, 0.6963, 0.8845, 1.162, 1.509, 1.932, 2.433, 3.051, 3.816, 4.734",\
                 "0.8162, 0.8945, 1.112, 1.428, 1.821, 2.285, 2.831, 3.461, 4.214, 5.124",\
                 "1.037, 1.125, 1.371, 1.727, 2.167, 2.681, 3.272, 3.95, 4.716, 5.612",\
                 "1.29, 1.389, 1.663, 2.062, 2.55, 3.116, 3.757, 4.482, 5.301, 6.211");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.07123, 0.1126, 0.2564, 0.5322, 0.9594, 1.559, 2.349, 3.34, 4.556, 6.009",\
                 "0.07196, 0.1124, 0.2575, 0.5304, 0.9586, 1.558, 2.347, 3.343, 4.557, 6.005",\
                 "0.1032, 0.1384, 0.2653, 0.5314, 0.9584, 1.558, 2.347, 3.341, 4.561, 6.005",\
                 "0.1692, 0.2058, 0.3252, 0.5614, 0.9621, 1.558, 2.35, 3.347, 4.56, 6.009",\
                 "0.259, 0.3023, 0.432, 0.6577, 1.024, 1.577, 2.348, 3.34, 4.562, 6.009",\
                 "0.3684, 0.4194, 0.569, 0.8086, 1.161, 1.674, 2.39, 3.35, 4.557, 6.01",\
                 "0.4946, 0.5574, 0.7346, 0.9984, 1.359, 1.852, 2.527, 3.424, 4.579, 6.006",\
                 "0.6364, 0.7124, 0.9204, 1.217, 1.606, 2.102, 2.755, 3.603, 4.688, 6.063",\
                 "0.7936, 0.884, 1.127, 1.469, 1.887, 2.406, 3.053, 3.881, 4.917, 6.205",\
                 "0.9656, 1.074, 1.356, 1.738, 2.202, 2.757, 3.423, 4.234, 5.253, 6.483");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.009874, 0.04102, 0.1005, 0.1932, 0.3232, 0.4943, 0.7099, 0.973, 1.287");
          values("0.1232, 0.1727, 0.3438, 0.6704, 1.179, 1.888, 2.825, 4.003, 5.446, 7.161",\
                 "0.1231, 0.1724, 0.3443, 0.6709, 1.178, 1.891, 2.827, 4.005, 5.444, 7.164",\
                 "0.1521, 0.1908, 0.3446, 0.6704, 1.178, 1.89, 2.827, 4.004, 5.447, 7.16",\
                 "0.2205, 0.2651, 0.4038, 0.6816, 1.178, 1.889, 2.826, 4.004, 5.443, 7.158",\
                 "0.3118, 0.3673, 0.5218, 0.7814, 1.209, 1.89, 2.825, 4.004, 5.446, 7.156",\
                 "0.4178, 0.4896, 0.674, 0.9518, 1.351, 1.949, 2.828, 4.003, 5.444, 7.16",\
                 "0.541, 0.6268, 0.8532, 1.163, 1.578, 2.135, 2.924, 4.019, 5.442, 7.159",\
                 "0.6838, 0.7884, 1.05, 1.408, 1.849, 2.419, 3.154, 4.151, 5.474, 7.157",\
                 "0.8378, 0.9602, 1.27, 1.683, 2.171, 2.759, 3.503, 4.426, 5.648, 7.214",\
                 "1.013, 1.153, 1.51, 1.978, 2.528, 3.152, 3.913, 4.835, 5.975, 7.433");
        }
      }
    }
  }

