/*
 * 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__bufz_16) {
    area : 127.321600 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "0.0004033315" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "0.0004033315" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "0.0009427" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "0.000928235" ;
    }

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

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

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

    pin(EN) {
      capacitance : 0.00823 ;
      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 : "!I" ;

        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.2698, 0.2707, 0.2857, 0.3254, 0.3935, 0.4944, 0.6306, 0.8035, \
                  1.025, 1.32");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }

      internal_power() {
        when : "I" ;

        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.7321, 0.7338, 0.7515, 0.8046, 0.9078, 1.071, 1.3, 1.6, 1.975, \
                  2.429");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }
    }

    pin(I) {
      capacitance : 0.03495 ;
      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 : "!EN" ;

        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.3689, 0.3687, 0.3681, 0.3673, 0.3673, 0.3681, 0.3683, 0.3681, \
                  0.3681, 0.3678");
        }

        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.3665, -0.3661, -0.3663, -0.3657, -0.3663, -0.366, -0.3667, \
                  -0.3664, -0.367, -0.3672");
        }
      }
    }

    pin(Z) {
      capacitance : 0.02831 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 3.605 ;
      max_transition : 2.6 ;
      min_capacitance : 0.02931 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
      three_state : "(!EN)" ;

      internal_power() {
        related_pin : "EN" ;

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("1.611, 1.61, 1.61, 1.609, 1.608, 1.609, 1.61, 1.609, 1.61, 1.61",\
                 "1.614, 1.613, 1.613, 1.612, 1.612, 1.612, 1.613, 1.613, 1.614, 1.613",\
                 "1.636, 1.636, 1.635, 1.635, 1.634, 1.635, 1.635, 1.635, 1.636, 1.635",\
                 "1.689, 1.688, 1.687, 1.686, 1.686, 1.686, 1.687, 1.687, 1.687, 1.687",\
                 "1.773, 1.773, 1.772, 1.772, 1.771, 1.771, 1.771, 1.772, 1.772, 1.772",\
                 "1.895, 1.895, 1.896, 1.895, 1.894, 1.894, 1.894, 1.894, 1.894, 1.895",\
                 "2.056, 2.055, 2.056, 2.055, 2.055, 2.055, 2.055, 2.055, 2.055, 2.055",\
                 "2.259, 2.26, 2.258, 2.259, 2.258, 2.258, 2.259, 2.259, 2.258, 2.259",\
                 "2.507, 2.507, 2.507, 2.508, 2.507, 2.506, 2.505, 2.506, 2.506, 2.505",\
                 "2.8, 2.801, 2.801, 2.801, 2.8, 2.8, 2.799, 2.8, 2.8, 2.8");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("1.542, 1.544, 1.557, 1.551, 1.547, 1.555, 1.562, 1.585, 1.61, 1.637",\
                 "1.544, 1.547, 1.552, 1.55, 1.552, 1.551, 1.564, 1.58, 1.61, 1.653",\
                 "1.558, 1.557, 1.567, 1.564, 1.568, 1.571, 1.574, 1.591, 1.621, 1.659",\
                 "1.6, 1.601, 1.607, 1.601, 1.61, 1.614, 1.619, 1.629, 1.66, 1.697",\
                 "1.685, 1.691, 1.693, 1.693, 1.698, 1.697, 1.709, 1.728, 1.759, 1.785",\
                 "1.822, 1.823, 1.819, 1.834, 1.843, 1.842, 1.854, 1.877, 1.891, 1.934",\
                 "2.016, 2.017, 2.02, 2.018, 2.032, 2.049, 2.047, 2.064, 2.089, 2.126",\
                 "2.274, 2.276, 2.276, 2.28, 2.268, 2.288, 2.321, 2.322, 2.336, 2.363",\
                 "2.601, 2.601, 2.604, 2.614, 2.599, 2.597, 2.631, 2.674, 2.694, 2.687",\
                 "2.997, 2.997, 3.002, 2.998, 3.003, 2.99, 3.008, 3.043, 3.106, 3.111");
        }
      }

      internal_power() {
        related_pin : "I" ;
        when : "EN" ;

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("2.66, 2.682, 2.739, 2.793, 2.827, 2.846, 2.858, 2.865, 2.87, 2.873",\
                 "2.651, 2.672, 2.726, 2.779, 2.811, 2.831, 2.843, 2.85, 2.855, 2.858",\
                 "2.692, 2.708, 2.754, 2.804, 2.839, 2.86, 2.874, 2.882, 2.887, 2.891",\
                 "2.841, 2.853, 2.895, 2.945, 2.984, 3.011, 3.028, 3.039, 3.046, 3.051",\
                 "3.154, 3.169, 3.211, 3.262, 3.306, 3.338, 3.36, 3.375, 3.384, 3.392",\
                 "3.7, 3.717, 3.757, 3.806, 3.852, 3.887, 3.913, 3.931, 3.943, 3.953",\
                 "4.509, 4.524, 4.563, 4.611, 4.654, 4.691, 4.719, 4.74, 4.755, 4.766",\
                 "5.59, 5.605, 5.641, 5.683, 5.725, 5.763, 5.792, 5.816, 5.832, 5.845",\
                 "6.962, 6.974, 7.005, 7.042, 7.082, 7.119, 7.149, 7.174, 7.192, 7.207",\
                 "8.623, 8.636, 8.663, 8.694, 8.727, 8.761, 8.793, 8.82, 8.84, 8.856");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("1.416, 1.452, 1.527, 1.58, 1.61, 1.625, 1.644, 1.669, 1.694, 1.731",\
                 "1.398, 1.432, 1.512, 1.554, 1.588, 1.606, 1.623, 1.647, 1.683, 1.72",\
                 "1.381, 1.409, 1.473, 1.515, 1.553, 1.582, 1.606, 1.63, 1.661, 1.693",\
                 "1.461, 1.483, 1.525, 1.575, 1.618, 1.652, 1.674, 1.702, 1.749, 1.77",\
                 "1.72, 1.735, 1.775, 1.823, 1.86, 1.9, 1.926, 1.96, 1.991, 2.039",\
                 "2.194, 2.209, 2.245, 2.292, 2.335, 2.363, 2.396, 2.444, 2.475, 2.518",\
                 "2.912, 2.927, 2.951, 2.978, 3.032, 3.07, 3.108, 3.132, 3.19, 3.233",\
                 "3.887, 3.899, 3.932, 3.965, 3.979, 4.049, 4.089, 4.116, 4.141, 4.206",\
                 "5.126, 5.137, 5.169, 5.194, 5.204, 5.231, 5.301, 5.359, 5.384, 5.411",\
                 "6.638, 6.654, 6.668, 6.699, 6.72, 6.732, 6.779, 6.855, 6.886, 6.929");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : negative_unate ;
        timing_type : three_state_disable ;

        cell_fall(tmg_ntin_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.5334, 0.5381, 0.5525, 0.5852, 0.6456, 0.7352, 0.8593, 1.014, \
                  1.193, 1.395");
        }

        cell_rise(tmg_ntin_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.3199, 0.324, 0.3435, 0.3821, 0.437, 0.508, 0.5951, 0.6968, 0.8128, \
                  0.9442");
        }

        fall_transition(tmg_ntin_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, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_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, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : positive_unate ;
        timing_type : three_state_enable ;

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.1238, 0.1479, 0.2057, 0.2836, 0.3798, 0.4952, 0.6313, 0.7917, 0.9809, 1.203",\
                 "0.1271, 0.1511, 0.2089, 0.2869, 0.383, 0.4984, 0.6346, 0.795, 0.9841, 1.206",\
                 "0.1396, 0.1636, 0.2214, 0.2993, 0.3956, 0.5109, 0.6472, 0.8075, 0.9967, 1.219",\
                 "0.1576, 0.1827, 0.2416, 0.3201, 0.4167, 0.5322, 0.6686, 0.829, 1.018, 1.24",\
                 "0.1669, 0.1952, 0.2606, 0.3441, 0.4431, 0.56, 0.6971, 0.858, 1.047, 1.27",\
                 "0.1636, 0.1946, 0.2659, 0.3568, 0.4622, 0.5827, 0.7214, 0.883, 1.072, 1.295",\
                 "0.1473, 0.1798, 0.2556, 0.3513, 0.4593, 0.5808, 0.7199, 0.8816, 1.071, 1.293",\
                 "0.117, 0.1515, 0.2304, 0.3282, 0.4373, 0.5594, 0.6989, 0.8608, 1.05, 1.272",\
                 "0.0728, 0.1085, 0.1895, 0.2889, 0.3987, 0.5214, 0.6613, 0.8233, 1.013, 1.235",\
                 "0.0132, 0.0502, 0.1336, 0.234, 0.3447, 0.4682, 0.6083, 0.7704, 0.9602, 1.182");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.1517, 0.1814, 0.2504, 0.3403, 0.4551, 0.6062, 0.8027, 1.05, 1.352, 1.711",\
                 "0.1546, 0.1842, 0.2532, 0.3433, 0.4581, 0.6091, 0.8056, 1.053, 1.355, 1.715",\
                 "0.1647, 0.1943, 0.2635, 0.3534, 0.4683, 0.6194, 0.8159, 1.063, 1.365, 1.725",\
                 "0.1801, 0.2108, 0.2809, 0.3714, 0.4865, 0.6375, 0.834, 1.081, 1.383, 1.743",\
                 "0.1885, 0.2234, 0.3004, 0.3946, 0.5107, 0.662, 0.8584, 1.106, 1.408, 1.767",\
                 "0.1833, 0.2227, 0.3093, 0.4125, 0.5323, 0.6844, 0.8809, 1.128, 1.43, 1.79",\
                 "0.1623, 0.2063, 0.3032, 0.4176, 0.5442, 0.698, 0.8945, 1.141, 1.443, 1.803",\
                 "0.1251, 0.1737, 0.2805, 0.4074, 0.5434, 0.7007, 0.8979, 1.145, 1.446, 1.806",\
                 "0.0704, 0.1236, 0.2407, 0.3798, 0.5271, 0.6903, 0.8899, 1.137, 1.439, 1.798",\
                 "-0.0029, 0.0556, 0.1826, 0.3336, 0.4937, 0.6647, 0.8676, 1.117, 1.419, 1.778");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.06584, 0.0872, 0.1421, 0.2249, 0.3368, 0.4811, 0.6633, 0.8941, 1.184, 1.537",\
                 "0.0657, 0.08728, 0.1423, 0.2246, 0.3368, 0.4811, 0.6633, 0.8939, 1.184, 1.538",\
                 "0.06576, 0.08706, 0.1422, 0.2247, 0.337, 0.481, 0.6629, 0.8929, 1.184, 1.538",\
                 "0.07068, 0.09094, 0.144, 0.226, 0.3384, 0.4817, 0.6633, 0.8934, 1.184, 1.538",\
                 "0.08062, 0.1033, 0.1585, 0.2368, 0.3449, 0.4863, 0.6661, 0.8962, 1.185, 1.538",\
                 "0.089, 0.1138, 0.1744, 0.2575, 0.3641, 0.4987, 0.6738, 0.901, 1.188, 1.538",\
                 "0.09594, 0.1222, 0.1863, 0.27, 0.3722, 0.5034, 0.6764, 0.9024, 1.188, 1.539",\
                 "0.1018, 0.1294, 0.1942, 0.2754, 0.3762, 0.5066, 0.6786, 0.9026, 1.187, 1.539",\
                 "0.1066, 0.1348, 0.1996, 0.2794, 0.3792, 0.5098, 0.68, 0.9038, 1.189, 1.537",\
                 "0.1122, 0.14, 0.2038, 0.2828, 0.3818, 0.511, 0.6818, 0.9064, 1.189, 1.539");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.07822, 0.104, 0.1681, 0.2674, 0.4317, 0.6785, 1.014, 1.442, 1.965, 2.593",\
                 "0.07838, 0.1035, 0.1676, 0.2677, 0.4311, 0.6781, 1.015, 1.443, 1.967, 2.592",\
                 "0.0784, 0.1034, 0.168, 0.2674, 0.4314, 0.6792, 1.015, 1.444, 1.966, 2.589",\
                 "0.08278, 0.1068, 0.1689, 0.2694, 0.4317, 0.6794, 1.016, 1.443, 1.965, 2.59",\
                 "0.09514, 0.1207, 0.1814, 0.2752, 0.4348, 0.6795, 1.014, 1.443, 1.968, 2.592",\
                 "0.1093, 0.1376, 0.2029, 0.2936, 0.4422, 0.6809, 1.015, 1.444, 1.968, 2.59",\
                 "0.1233, 0.1548, 0.2272, 0.319, 0.4576, 0.687, 1.016, 1.444, 1.966, 2.59",\
                 "0.138, 0.1724, 0.251, 0.3504, 0.4818, 0.6986, 1.02, 1.445, 1.967, 2.591",\
                 "0.1546, 0.1902, 0.2762, 0.3838, 0.5114, 0.7162, 1.029, 1.447, 1.966, 2.591",\
                 "0.1744, 0.2094, 0.3006, 0.4172, 0.5472, 0.7398, 1.044, 1.456, 1.971, 2.59");
        }
      }

      timing() {
        related_pin : "I" ;
        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.1574, 0.1818, 0.2404, 0.3186, 0.4149, 0.5303, 0.6663, 0.8266, 1.016, 1.238",\
                 "0.1586, 0.1828, 0.2413, 0.3196, 0.4158, 0.5312, 0.6673, 0.8276, 1.017, 1.239",\
                 "0.1711, 0.1951, 0.2534, 0.3318, 0.4281, 0.5435, 0.6796, 0.84, 1.029, 1.251",\
                 "0.2028, 0.227, 0.2855, 0.364, 0.4606, 0.5761, 0.7123, 0.8727, 1.062, 1.284",\
                 "0.2563, 0.2816, 0.3414, 0.4208, 0.5179, 0.6339, 0.7701, 0.9307, 1.12, 1.342",\
                 "0.3308, 0.3602, 0.4251, 0.507, 0.6058, 0.7228, 0.8598, 1.021, 1.21, 1.432",\
                 "0.424, 0.4596, 0.5359, 0.6262, 0.7287, 0.8479, 0.9865, 1.148, 1.338, 1.56",\
                 "0.5392, 0.5816, 0.6712, 0.7743, 0.8861, 1.01, 1.152, 1.316, 1.506, 1.728",\
                 "0.6784, 0.7275, 0.8312, 0.9488, 1.075, 1.21, 1.357, 1.523, 1.715, 1.939",\
                 "0.8402, 0.8967, 1.015, 1.149, 1.291, 1.441, 1.6, 1.772, 1.967, 2.191");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.192, 0.2227, 0.2926, 0.3828, 0.4976, 0.649, 0.846, 1.093, 1.395, 1.756",\
                 "0.191, 0.2215, 0.2913, 0.3815, 0.4965, 0.648, 0.8449, 1.092, 1.394, 1.755",\
                 "0.1907, 0.2209, 0.2905, 0.3808, 0.4962, 0.6476, 0.8447, 1.092, 1.394, 1.754",\
                 "0.1958, 0.226, 0.2956, 0.3862, 0.5017, 0.6534, 0.8505, 1.098, 1.4, 1.76",\
                 "0.2124, 0.2439, 0.3151, 0.4066, 0.5225, 0.6743, 0.8713, 1.119, 1.421, 1.782",\
                 "0.235, 0.2718, 0.3505, 0.4455, 0.5629, 0.7151, 0.9122, 1.16, 1.462, 1.823",\
                 "0.259, 0.3036, 0.3959, 0.5008, 0.6219, 0.775, 0.9728, 1.22, 1.523, 1.883",\
                 "0.2846, 0.3383, 0.4468, 0.5665, 0.6971, 0.8532, 1.051, 1.299, 1.601, 1.961",\
                 "0.3118, 0.3754, 0.5016, 0.6379, 0.781, 0.9454, 1.146, 1.394, 1.696, 2.056",\
                 "0.338, 0.4128, 0.559, 0.7142, 0.872, 1.048, 1.255, 1.506, 1.808, 2.168");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.06192, 0.08364, 0.1385, 0.2216, 0.3352, 0.4786, 0.6607, 0.8928, 1.184, 1.537",\
                 "0.06184, 0.08364, 0.1386, 0.222, 0.3348, 0.4791, 0.6614, 0.892, 1.184, 1.536",\
                 "0.06184, 0.08398, 0.1389, 0.2221, 0.3353, 0.4792, 0.6613, 0.8937, 1.183, 1.537",\
                 "0.06336, 0.08494, 0.1398, 0.2226, 0.3356, 0.4795, 0.6615, 0.8939, 1.183, 1.537",\
                 "0.06784, 0.08872, 0.1425, 0.2244, 0.3366, 0.4802, 0.6615, 0.8941, 1.184, 1.537",\
                 "0.08322, 0.1029, 0.1518, 0.2301, 0.3407, 0.4828, 0.664, 0.8954, 1.185, 1.538",\
                 "0.1052, 0.1266, 0.1764, 0.2472, 0.3514, 0.491, 0.6694, 0.8986, 1.187, 1.538",\
                 "0.1304, 0.1536, 0.2076, 0.2804, 0.3762, 0.5082, 0.6808, 0.9064, 1.19, 1.54",\
                 "0.1552, 0.1828, 0.243, 0.3208, 0.419, 0.542, 0.7036, 0.919, 1.198, 1.544",\
                 "0.1818, 0.2118, 0.2786, 0.365, 0.4706, 0.5964, 0.7472, 0.9462, 1.212, 1.55");
        }

        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.02931, 0.054, 0.1406, 0.3061, 0.5638, 0.9255, 1.401, 2.001, 2.733, 3.605");
          values("0.0744, 0.09904, 0.1626, 0.2643, 0.4298, 0.6787, 1.014, 1.442, 1.968, 2.591",\
                 "0.07422, 0.09852, 0.1629, 0.2645, 0.4299, 0.6788, 1.014, 1.442, 1.965, 2.589",\
                 "0.07502, 0.09928, 0.1639, 0.2645, 0.43, 0.6776, 1.015, 1.443, 1.968, 2.593",\
                 "0.07576, 0.1009, 0.164, 0.2654, 0.4304, 0.6783, 1.016, 1.445, 1.965, 2.593",\
                 "0.0817, 0.1052, 0.1675, 0.2676, 0.4314, 0.6791, 1.015, 1.442, 1.969, 2.592",\
                 "0.1001, 0.1238, 0.1814, 0.2746, 0.4339, 0.6801, 1.016, 1.443, 1.967, 2.592",\
                 "0.1262, 0.1513, 0.2078, 0.2944, 0.443, 0.6818, 1.017, 1.443, 1.965, 2.592",\
                 "0.156, 0.1824, 0.2434, 0.3278, 0.465, 0.6904, 1.018, 1.444, 1.968, 2.588",\
                 "0.1918, 0.2184, 0.2816, 0.3672, 0.4998, 0.715, 1.027, 1.445, 1.966, 2.593",\
                 "0.2304, 0.259, 0.324, 0.4142, 0.5422, 0.7508, 1.054, 1.458, 1.968, 2.589");
        }
      }
    }
  }

