/*
 * 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__dffnq_1) {
    area : 84.672000 ;

    ff(IQ1,IQN1) {
      clocked_on : "(!CLKN)" ;
      next_state : "D" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&!D" ;
      value : "0.00057607" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&D" ;
      value : "0.00059488" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&!D" ;
      value : "0.000496694" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&D" ;
      value : "0.0004928605" ;
    }

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

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

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

    pin(CLKN) {
      capacitance : 0.004997 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 2.8 ;
      min_period : 0.5293 ;
      min_pulse_width_high : 0.1998 ;
      min_pulse_width_low : 0.2237 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.4898, 0.4907, 0.5059, 0.5579, 0.6544, 0.7982, 0.992, 1.237, \
                  1.537, 1.893");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.3116, 0.3117, 0.3236, 0.3685, 0.4517, 0.5801, 0.753, 0.9737, \
                  1.244, 1.566");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.4907, 0.4914, 0.5066, 0.5586, 0.655, 0.7988, 0.9928, 1.238, \
                  1.537, 1.894");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.3113, 0.3113, 0.3232, 0.3681, 0.4512, 0.5794, 0.7525, 0.9732, \
                  1.244, 1.566");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.21");
        }

        rise_constraint(scalar) {
          values("0.1998");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.2237");
        }

        rise_constraint(scalar) {
          values("0.1827");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.4524");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.5293");
        }
      }
    }

    pin(D) {
      capacitance : 0.003897 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 2.8 ;
      nextstate_type : data ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.1029, 0.1053, 0.123, 0.1638, 0.2322, 0.3306, 0.461, 0.6266, \
                  0.8291, 1.071");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.007489, 0.008606, 0.02082, 0.05497, 0.1147, 0.2021, 0.3194, \
                  0.4686, 0.6513, 0.8704");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.369, 0.3707, 0.3838, 0.4236, 0.4969, 0.6064, 0.7541, 0.9402, \
                  1.168, 1.438");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.2401, 0.2409, 0.2515, 0.285, 0.3466, 0.4407, 0.569, 0.733, 0.9345, \
                  1.175");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : hold_falling ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0114, 0.0187, 0.0316, 0.0639, 0.0983, 0.1395, 0.194, 0.2624, 0.329, 0.409",\
                 "0.0056, 0.0129, 0.0248, 0.0555, 0.0932, 0.1414, 0.1893, 0.2556, 0.325, 0.404",\
                 "-0.0095, -0.0094, 0.009, 0.0374, 0.0764, 0.1122, 0.1682, 0.2347, 0.302, 0.38",\
                 "-0.0444, -0.0403, -0.026, -0, 0.0401, 0.0805, 0.1255, 0.1869, 0.262, 0.335",\
                 "-0.0915, -0.0862, -0.0688, -0.0401, -0.0107, 0.0336, 0.075, 0.1336, 0.201, 0.281",\
                 "-0.1394, -0.1414, -0.1275, -0.0977, -0.0671, -0.0239, 0.019, 0.0744, 0.137, 0.212",\
                 "-0.2068, -0.2023, -0.1886, -0.1628, -0.1336, -0.0966, -0.0514, -0.002, 0.058, 0.13",\
                 "-0.2797, -0.273, -0.2618, -0.235, -0.2077, -0.1755, -0.1342, -0.079, -0.023, 0.036",\
                 "-0.363, -0.3593, -0.3427, -0.3177, -0.2937, -0.2608, -0.2213, -0.1713, -0.1216, -0.056",\
                 "-0.453, -0.4474, -0.4318, -0.4124, -0.3875, -0.3625, -0.3251, -0.2802, -0.2238, -0.165");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0687, 0.0735, 0.0904, 0.1322, 0.1794, 0.2429, 0.3162, 0.3914, 0.476, 0.568",\
                 "0.0665, 0.0709, 0.0865, 0.1263, 0.1765, 0.2467, 0.3132, 0.3864, 0.473, 0.571",\
                 "0.0566, 0.06, 0.0808, 0.117, 0.1672, 0.2296, 0.2981, 0.3794, 0.465, 0.558",\
                 "0.0434, 0.0508, 0.0651, 0.1034, 0.163, 0.2232, 0.2892, 0.3694, 0.459, 0.551",\
                 "0.0369, 0.0456, 0.0599, 0.1003, 0.1545, 0.213, 0.2845, 0.3664, 0.452, 0.543",\
                 "0.0389, 0.0405, 0.0613, 0.0963, 0.1524, 0.215, 0.2905, 0.3654, 0.457, 0.548",\
                 "0.0504, 0.052, 0.0712, 0.1051, 0.1596, 0.2234, 0.2973, 0.3794, 0.466, 0.559",\
                 "0.0736, 0.0752, 0.0901, 0.1306, 0.178, 0.2404, 0.3083, 0.3954, 0.476, 0.572",\
                 "0.1053, 0.107, 0.1248, 0.1555, 0.2091, 0.2703, 0.3405, 0.4194, 0.502, 0.6",\
                 "0.1545, 0.1564, 0.1704, 0.2064, 0.2525, 0.3112, 0.3754, 0.4554, 0.542, 0.632");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : setup_falling ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.126, 0.1212, 0.1007, 0.0727, 0.0301, -0.0175, -0.0718, -0.1332, -0.205, -0.2866",\
                 "0.1283, 0.1289, 0.1062, 0.076, 0.0317, -0.017, -0.0719, -0.1337, -0.2057, -0.28",\
                 "0.1491, 0.1481, 0.1256, 0.0935, 0.0523, 0.0051, -0.0519, -0.1084, -0.1849, -0.2608",\
                 "0.1908, 0.187, 0.1682, 0.1379, 0.0915, 0.045, -0.0139, -0.0716, -0.1457, -0.2189",\
                 "0.247, 0.2458, 0.2278, 0.1892, 0.1492, 0.0993, 0.0423, -0.0174, -0.0886, -0.1659",\
                 "0.3181, 0.3138, 0.2958, 0.2631, 0.2197, 0.1672, 0.1168, 0.0503, -0.0134, -0.0877",\
                 "0.3998, 0.398, 0.3801, 0.3413, 0.3013, 0.2517, 0.1943, 0.1381, 0.0636, -0.004",\
                 "0.4954, 0.4904, 0.4694, 0.4374, 0.3924, 0.3414, 0.284, 0.2291, 0.1611, 0.0823",\
                 "0.6, 0.592, 0.571, 0.539, 0.492, 0.443, 0.392, 0.328, 0.259, 0.19",\
                 "0.713, 0.709, 0.692, 0.652, 0.609, 0.557, 0.5, 0.442, 0.375, 0.302");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0859, 0.0847, 0.064, 0.0336, -0.0037, -0.0457, -0.0846, -0.1074, -0.1599, -0.1999",\
                 "0.0918, 0.0902, 0.0677, 0.0356, 0.0039, -0.0361, -0.0784, -0.1076, -0.1546, -0.2075",\
                 "0.1051, 0.1019, 0.0808, 0.048, 0.0069, -0.0306, -0.0724, -0.0994, -0.1499, -0.2013",\
                 "0.1225, 0.1213, 0.1, 0.0689, 0.0301, -0.0178, -0.066, -0.0908, -0.1457, -0.1958",\
                 "0.1455, 0.1417, 0.1217, 0.084, 0.0373, -0.0071, -0.0498, -0.0967, -0.1481, -0.1824",\
                 "0.1584, 0.1606, 0.1377, 0.1033, 0.0535, 0, -0.0578, -0.1042, -0.1662, -0.2207",\
                 "0.1747, 0.1698, 0.1477, 0.1107, 0.0666, 0.0093, -0.0514, -0.107, -0.1806, -0.2375",\
                 "0.1763, 0.1772, 0.1535, 0.1196, 0.0702, 0.015, -0.0496, -0.1106, -0.1897, -0.2694",\
                 "0.171, 0.172, 0.15, 0.115, 0.069, 0.006, -0.0555, -0.1243, -0.2114, -0.2845",\
                 "0.164, 0.156, 0.134, 0.103, 0.051, -0.001, -0.064, -0.142, -0.226, -0.316");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.3764 ;
      max_transition : 2.8 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "CLKN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
          values("0.6148, 0.6054, 0.5866, 0.5733, 0.5655, 0.5601, 0.5565, 0.554, 0.5523, 0.5511",\
                 "0.6144, 0.6054, 0.5862, 0.5728, 0.5647, 0.5596, 0.5561, 0.5535, 0.5519, 0.5506",\
                 "0.6142, 0.605, 0.5863, 0.5726, 0.5645, 0.5592, 0.5556, 0.5534, 0.5516, 0.5505",\
                 "0.6178, 0.6088, 0.5897, 0.5765, 0.5684, 0.5632, 0.5596, 0.5571, 0.5554, 0.5542",\
                 "0.6291, 0.6199, 0.6006, 0.5876, 0.5798, 0.5744, 0.5708, 0.5682, 0.5665, 0.5652",\
                 "0.6448, 0.6354, 0.6169, 0.6034, 0.5951, 0.5898, 0.5862, 0.5836, 0.5819, 0.5807",\
                 "0.6657, 0.6568, 0.6375, 0.6242, 0.616, 0.6106, 0.607, 0.6045, 0.6028, 0.6015",\
                 "0.6908, 0.6818, 0.6622, 0.6487, 0.6403, 0.6351, 0.6314, 0.6287, 0.6269, 0.6257",\
                 "0.7174, 0.7078, 0.6882, 0.6745, 0.6661, 0.6608, 0.6571, 0.6547, 0.6529, 0.6516",\
                 "0.7476, 0.7382, 0.7188, 0.7049, 0.6962, 0.6905, 0.6869, 0.6846, 0.6827, 0.6815");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
          values("0.7257, 0.7201, 0.709, 0.7008, 0.6947, 0.6934, 0.6908, 0.6939, 0.6958, 0.6982",\
                 "0.7257, 0.7201, 0.7091, 0.7008, 0.6948, 0.6931, 0.6928, 0.6943, 0.6973, 0.6975",\
                 "0.727, 0.7217, 0.7097, 0.7026, 0.6973, 0.6946, 0.6936, 0.6962, 0.6992, 0.6989",\
                 "0.7323, 0.7267, 0.7155, 0.7074, 0.7015, 0.6998, 0.6994, 0.7008, 0.7039, 0.7041",\
                 "0.7415, 0.736, 0.7248, 0.7166, 0.7115, 0.709, 0.708, 0.71, 0.7108, 0.7133",\
                 "0.7537, 0.7486, 0.737, 0.7284, 0.7241, 0.7215, 0.721, 0.7229, 0.726, 0.7267",\
                 "0.7669, 0.7618, 0.7496, 0.7424, 0.7383, 0.7334, 0.7337, 0.7352, 0.7371, 0.74",\
                 "0.7811, 0.7751, 0.7651, 0.7561, 0.7514, 0.7518, 0.7491, 0.7495, 0.7508, 0.7549",\
                 "0.7971, 0.7908, 0.7817, 0.7714, 0.7652, 0.7652, 0.769, 0.7688, 0.7696, 0.7687",\
                 "0.8153, 0.81, 0.7971, 0.7904, 0.7843, 0.7799, 0.7823, 0.7882, 0.7873, 0.7887");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : falling_edge ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
          values("0.322, 0.334, 0.3677, 0.4201, 0.4926, 0.5912, 0.7206, 0.884, 1.084, 1.322",\
                 "0.3261, 0.3381, 0.3718, 0.4242, 0.4967, 0.5953, 0.7247, 0.888, 1.088, 1.326",\
                 "0.3444, 0.3564, 0.3901, 0.4425, 0.515, 0.6136, 0.743, 0.9063, 1.106, 1.344",\
                 "0.3826, 0.3947, 0.4284, 0.4807, 0.5533, 0.6518, 0.7813, 0.9446, 1.144, 1.382",\
                 "0.4366, 0.4486, 0.4823, 0.5346, 0.6071, 0.7056, 0.8351, 0.9984, 1.198, 1.436",\
                 "0.5013, 0.5132, 0.547, 0.5993, 0.6718, 0.7703, 0.8998, 1.063, 1.263, 1.501",\
                 "0.5748, 0.5868, 0.6205, 0.6729, 0.7454, 0.8439, 0.9733, 1.137, 1.336, 1.574",\
                 "0.6564, 0.6683, 0.7021, 0.7544, 0.8269, 0.9254, 1.055, 1.218, 1.418, 1.656",\
                 "0.7465, 0.7585, 0.7922, 0.8445, 0.917, 1.016, 1.145, 1.308, 1.508, 1.746",\
                 "0.8446, 0.8565, 0.8905, 0.9429, 1.015, 1.114, 1.243, 1.406, 1.606, 1.844");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
          values("0.3548, 0.3669, 0.4052, 0.4772, 0.5906, 0.7508, 0.9621, 1.229, 1.555, 1.944",\
                 "0.3589, 0.371, 0.4093, 0.4813, 0.5947, 0.755, 0.9662, 1.233, 1.558, 1.948",\
                 "0.3777, 0.3899, 0.428, 0.5002, 0.6135, 0.7737, 0.9851, 1.252, 1.577, 1.966",\
                 "0.4167, 0.4287, 0.4669, 0.539, 0.6524, 0.8126, 1.024, 1.291, 1.616, 2.006",\
                 "0.4712, 0.4832, 0.5215, 0.5935, 0.7069, 0.867, 1.078, 1.345, 1.671, 2.06",\
                 "0.5372, 0.5493, 0.5874, 0.6595, 0.7729, 0.9332, 1.145, 1.411, 1.737, 2.126",\
                 "0.6118, 0.6238, 0.662, 0.7341, 0.8474, 1.007, 1.219, 1.486, 1.812, 2.2",\
                 "0.6936, 0.7056, 0.7442, 0.8163, 0.9295, 1.09, 1.301, 1.568, 1.893, 2.282",\
                 "0.7835, 0.7954, 0.8342, 0.906, 1.019, 1.18, 1.391, 1.658, 1.984, 2.371",\
                 "0.882, 0.8939, 0.9319, 1.004, 1.118, 1.278, 1.489, 1.756, 2.081, 2.469");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
          values("0.0498, 0.06274, 0.1002, 0.1655, 0.2708, 0.4279, 0.6397, 0.9104, 1.239, 1.63",\
                 "0.0501, 0.06294, 0.1002, 0.1653, 0.2706, 0.4278, 0.6415, 0.9092, 1.239, 1.63",\
                 "0.04994, 0.06274, 0.1004, 0.1656, 0.2708, 0.4283, 0.6401, 0.9098, 1.237, 1.634",\
                 "0.05022, 0.06284, 0.1002, 0.1655, 0.2703, 0.428, 0.6397, 0.9106, 1.24, 1.63",\
                 "0.04992, 0.0626, 0.1004, 0.1655, 0.2708, 0.4279, 0.6402, 0.9104, 1.238, 1.63",\
                 "0.05, 0.06272, 0.1004, 0.1654, 0.2706, 0.4278, 0.641, 0.9092, 1.239, 1.632",\
                 "0.05, 0.0628, 0.1004, 0.1656, 0.2706, 0.428, 0.6406, 0.9098, 1.238, 1.63",\
                 "0.05, 0.0628, 0.1004, 0.1656, 0.2708, 0.4276, 0.6396, 0.9084, 1.239, 1.63",\
                 "0.0504, 0.063, 0.1006, 0.1658, 0.2704, 0.4282, 0.6398, 0.9084, 1.237, 1.629",\
                 "0.0504, 0.0632, 0.1008, 0.1658, 0.2708, 0.4276, 0.64, 0.9096, 1.237, 1.629");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
          values("0.04844, 0.06506, 0.1267, 0.2514, 0.4482, 0.7268, 1.093, 1.556, 2.119, 2.793",\
                 "0.04854, 0.06496, 0.1267, 0.2513, 0.4485, 0.727, 1.094, 1.556, 2.119, 2.792",\
                 "0.04834, 0.06506, 0.1267, 0.2508, 0.4485, 0.7272, 1.094, 1.555, 2.119, 2.793",\
                 "0.04866, 0.0649, 0.1267, 0.2513, 0.4483, 0.7269, 1.094, 1.556, 2.119, 2.792",\
                 "0.04836, 0.06476, 0.1266, 0.2512, 0.4486, 0.7268, 1.094, 1.555, 2.121, 2.795",\
                 "0.04828, 0.06478, 0.1268, 0.2508, 0.4484, 0.727, 1.094, 1.555, 2.119, 2.793",\
                 "0.0484, 0.0646, 0.1268, 0.2508, 0.4482, 0.7264, 1.094, 1.555, 2.12, 2.791",\
                 "0.048, 0.0648, 0.1266, 0.251, 0.4482, 0.727, 1.093, 1.554, 2.119, 2.79",\
                 "0.048, 0.0646, 0.1266, 0.2508, 0.4486, 0.728, 1.093, 1.554, 2.119, 2.797",\
                 "0.0482, 0.0644, 0.1266, 0.2508, 0.4486, 0.727, 1.093, 1.554, 2.118, 2.792");
        }
      }
    }
  }

