/*
 * 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__invz_16) {
    area : 153.664000 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.00892 ;
      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.7807, 0.7822, 0.8025, 0.8619, 0.9761, 1.157, 1.411, 1.742, 2.156, \
                  2.659");
        }

        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.2968, 0.298, 0.3147, 0.3588, 0.4342, 0.5461, 0.6968, 0.8885, \
                  1.142, 1.476");
        }

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

    pin(I) {
      capacitance : 0.01798 ;
      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.9457, 0.9475, 0.9984, 1.15, 1.42, 1.823, 2.378, 3.092, 3.972, \
                  5.027");
        }

        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.3595, 0.3622, 0.3996, 0.5143, 0.7406, 1.09, 1.574, 2.198, 2.973, \
                  3.904");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.02921 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 3.635 ;
      max_transition : 2.6 ;
      min_capacitance : 0.03021 ;
      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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("1.654, 1.653, 1.653, 1.652, 1.652, 1.652, 1.652, 1.652, 1.652, 1.653",\
                 "1.657, 1.656, 1.656, 1.655, 1.655, 1.655, 1.656, 1.656, 1.656, 1.656",\
                 "1.682, 1.681, 1.681, 1.68, 1.679, 1.68, 1.68, 1.68, 1.681, 1.681",\
                 "1.741, 1.74, 1.739, 1.738, 1.738, 1.738, 1.738, 1.738, 1.738, 1.739",\
                 "1.837, 1.836, 1.836, 1.835, 1.835, 1.834, 1.835, 1.835, 1.836, 1.836",\
                 "1.975, 1.977, 1.976, 1.975, 1.974, 1.974, 1.974, 1.975, 1.975, 1.975",\
                 "2.157, 2.159, 2.159, 2.159, 2.159, 2.158, 2.158, 2.158, 2.158, 2.158",\
                 "2.391, 2.391, 2.39, 2.39, 2.389, 2.389, 2.39, 2.39, 2.389, 2.389",\
                 "2.673, 2.673, 2.672, 2.672, 2.672, 2.671, 2.671, 2.672, 2.673, 2.672",\
                 "3.007, 3.007, 3.006, 3.006, 3.005, 3.005, 3.004, 3.005, 3.005, 3.006");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("1.586, 1.587, 1.599, 1.587, 1.594, 1.595, 1.605, 1.625, 1.656, 1.681",\
                 "1.587, 1.587, 1.593, 1.588, 1.594, 1.593, 1.606, 1.625, 1.651, 1.681",\
                 "1.601, 1.601, 1.606, 1.601, 1.608, 1.61, 1.62, 1.642, 1.662, 1.692",\
                 "1.65, 1.649, 1.652, 1.655, 1.653, 1.66, 1.664, 1.68, 1.717, 1.742",\
                 "1.746, 1.746, 1.75, 1.752, 1.756, 1.755, 1.767, 1.785, 1.816, 1.841",\
                 "1.901, 1.9, 1.899, 1.914, 1.922, 1.92, 1.932, 1.95, 1.975, 2.011",\
                 "2.12, 2.12, 2.121, 2.119, 2.138, 2.152, 2.151, 2.159, 2.201, 2.215",\
                 "2.411, 2.413, 2.414, 2.416, 2.413, 2.432, 2.462, 2.467, 2.476, 2.501",\
                 "2.78, 2.781, 2.79, 2.782, 2.786, 2.777, 2.813, 2.846, 2.872, 2.864",\
                 "3.227, 3.227, 3.23, 3.231, 3.239, 3.229, 3.231, 3.264, 3.328, 3.353");
        }
      }

      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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("2.769, 2.785, 2.833, 2.884, 2.917, 2.938, 2.95, 2.957, 2.963, 2.966",\
                 "2.771, 2.785, 2.836, 2.886, 2.919, 2.939, 2.951, 2.96, 2.965, 2.968",\
                 "2.817, 2.83, 2.878, 2.928, 2.962, 2.981, 2.994, 3.001, 3.007, 3.011",\
                 "2.957, 2.973, 3.017, 3.065, 3.099, 3.121, 3.133, 3.142, 3.147, 3.151",\
                 "3.225, 3.242, 3.28, 3.328, 3.362, 3.384, 3.398, 3.408, 3.414, 3.417",\
                 "3.639, 3.649, 3.688, 3.738, 3.773, 3.796, 3.812, 3.819, 3.826, 3.831",\
                 "4.202, 4.214, 4.253, 4.298, 4.337, 4.362, 4.378, 4.389, 4.395, 4.4",\
                 "4.932, 4.943, 4.979, 5.026, 5.065, 5.092, 5.109, 5.12, 5.127, 5.133",\
                 "5.828, 5.841, 5.878, 5.923, 5.963, 5.991, 6.01, 6.024, 6.032, 6.038",\
                 "6.91, 6.921, 6.957, 7.003, 7.044, 7.072, 7.092, 7.107, 7.115, 7.122");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("2.804, 2.83, 2.881, 2.935, 2.977, 3.006, 3.028, 3.051, 3.087, 3.14",\
                 "2.808, 2.829, 2.883, 2.938, 2.976, 3.004, 3.034, 3.056, 3.098, 3.123",\
                 "2.859, 2.885, 2.935, 2.988, 3.03, 3.061, 3.079, 3.111, 3.153, 3.178",\
                 "3.029, 3.054, 3.109, 3.153, 3.192, 3.224, 3.247, 3.276, 3.318, 3.349",\
                 "3.34, 3.359, 3.412, 3.457, 3.495, 3.522, 3.551, 3.579, 3.615, 3.657",\
                 "3.814, 3.834, 3.873, 3.92, 3.962, 3.991, 4.017, 4.046, 4.088, 4.124",\
                 "4.461, 4.477, 4.52, 4.566, 4.608, 4.634, 4.668, 4.695, 4.737, 4.768",\
                 "5.296, 5.313, 5.351, 5.38, 5.432, 5.464, 5.482, 5.515, 5.556, 5.598",\
                 "6.319, 6.337, 6.371, 6.413, 6.431, 6.492, 6.533, 6.543, 6.574, 6.61",\
                 "7.551, 7.567, 7.602, 7.632, 7.658, 7.686, 7.742, 7.792, 7.822, 7.831");
        }
      }

      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.4736, 0.4793, 0.4942, 0.5267, 0.585, 0.672, 0.791, 0.9336, 1.098, \
                  1.279");
        }

        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.3175, 0.3218, 0.3409, 0.3769, 0.4267, 0.4905, 0.5677, 0.6573, \
                  0.7568, 0.8692");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.1251, 0.1484, 0.2045, 0.2803, 0.3739, 0.4867, 0.6204, 0.7795, 0.9686, 1.192",\
                 "0.1283, 0.1516, 0.2078, 0.2836, 0.3773, 0.4898, 0.6236, 0.7827, 0.9718, 1.195",\
                 "0.1411, 0.1643, 0.2205, 0.2963, 0.3899, 0.5026, 0.6364, 0.7954, 0.9845, 1.208",\
                 "0.1601, 0.1843, 0.2414, 0.3176, 0.4116, 0.5243, 0.6582, 0.8174, 1.007, 1.23",\
                 "0.1722, 0.1991, 0.2619, 0.3424, 0.4385, 0.5524, 0.6869, 0.8463, 1.036, 1.259",\
                 "0.1738, 0.203, 0.2705, 0.3572, 0.4581, 0.5742, 0.7095, 0.8693, 1.059, 1.282",\
                 "0.1641, 0.1953, 0.2662, 0.3566, 0.4589, 0.5757, 0.7113, 0.8711, 1.06, 1.283",\
                 "0.1436, 0.1759, 0.2498, 0.3416, 0.4449, 0.5621, 0.698, 0.8579, 1.047, 1.27",\
                 "0.1109, 0.1442, 0.2203, 0.3137, 0.4178, 0.5358, 0.6719, 0.832, 1.021, 1.244",\
                 "0.0653, 0.0996, 0.1783, 0.2728, 0.3776, 0.496, 0.6326, 0.7928, 0.9822, 1.205");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.1557, 0.1855, 0.2557, 0.3473, 0.4635, 0.6156, 0.8127, 1.061, 1.364, 1.726",\
                 "0.1585, 0.1883, 0.2585, 0.3501, 0.4663, 0.6184, 0.8155, 1.064, 1.367, 1.729",\
                 "0.1689, 0.1988, 0.269, 0.3606, 0.4768, 0.6288, 0.826, 1.074, 1.377, 1.739",\
                 "0.1855, 0.2163, 0.2873, 0.3794, 0.4957, 0.6477, 0.8451, 1.093, 1.396, 1.758",\
                 "0.1973, 0.2318, 0.3091, 0.4047, 0.5221, 0.6744, 0.8716, 1.12, 1.423, 1.784",\
                 "0.1974, 0.2361, 0.3229, 0.427, 0.5481, 0.7012, 0.8985, 1.147, 1.45, 1.811",\
                 "0.1843, 0.2276, 0.3242, 0.4394, 0.5667, 0.7217, 0.9191, 1.167, 1.47, 1.831",\
                 "0.157, 0.2048, 0.3111, 0.4383, 0.5754, 0.734, 0.932, 1.18, 1.482, 1.844",\
                 "0.1149, 0.1673, 0.2835, 0.4225, 0.5709, 0.7355, 0.9358, 1.184, 1.487, 1.847",\
                 "0.0573, 0.1146, 0.2405, 0.3916, 0.5526, 0.7251, 0.9287, 1.179, 1.482, 1.843");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.06448, 0.08528, 0.1385, 0.2188, 0.3283, 0.4701, 0.6526, 0.8868, 1.183, 1.543",\
                 "0.06444, 0.08522, 0.1383, 0.2187, 0.3283, 0.4703, 0.6532, 0.8881, 1.183, 1.542",\
                 "0.06452, 0.08522, 0.1383, 0.2187, 0.3282, 0.4699, 0.6528, 0.887, 1.183, 1.542",\
                 "0.06862, 0.08826, 0.1399, 0.2198, 0.3296, 0.4701, 0.6532, 0.8881, 1.183, 1.542",\
                 "0.07744, 0.09944, 0.1524, 0.2291, 0.335, 0.4742, 0.6559, 0.8887, 1.183, 1.542",\
                 "0.08472, 0.1083, 0.1655, 0.2457, 0.3485, 0.4824, 0.6596, 0.8918, 1.186, 1.543",\
                 "0.0913, 0.1158, 0.1755, 0.2545, 0.3544, 0.4858, 0.6614, 0.8924, 1.185, 1.543",\
                 "0.09642, 0.1214, 0.1818, 0.2584, 0.357, 0.4886, 0.6628, 0.893, 1.184, 1.543",\
                 "0.1022, 0.1268, 0.1866, 0.2624, 0.3602, 0.49, 0.6646, 0.8938, 1.185, 1.541",\
                 "0.1078, 0.1334, 0.1908, 0.2654, 0.3626, 0.492, 0.6664, 0.8948, 1.187, 1.542");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.07978, 0.106, 0.1715, 0.2726, 0.4355, 0.6828, 1.019, 1.45, 1.974, 2.602",\
                 "0.07996, 0.1055, 0.1715, 0.2724, 0.4349, 0.683, 1.019, 1.449, 1.977, 2.602",\
                 "0.08004, 0.1055, 0.1712, 0.2719, 0.4352, 0.683, 1.019, 1.45, 1.976, 2.601",\
                 "0.08362, 0.1082, 0.1723, 0.2723, 0.4357, 0.6831, 1.02, 1.448, 1.976, 2.6",\
                 "0.09536, 0.1213, 0.1833, 0.2791, 0.4378, 0.6838, 1.02, 1.448, 1.974, 2.602",\
                 "0.1087, 0.1373, 0.2036, 0.2963, 0.4466, 0.6862, 1.019, 1.448, 1.977, 2.599",\
                 "0.1226, 0.1541, 0.2274, 0.3216, 0.4614, 0.691, 1.022, 1.45, 1.974, 2.602",\
                 "0.1371, 0.1714, 0.251, 0.352, 0.4852, 0.7024, 1.025, 1.451, 1.972, 2.602",\
                 "0.1536, 0.1888, 0.2758, 0.384, 0.5152, 0.7206, 1.033, 1.452, 1.975, 2.599",\
                 "0.1738, 0.2074, 0.2998, 0.4174, 0.5504, 0.745, 1.048, 1.461, 1.978, 2.6");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : negative_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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.2117, 0.2351, 0.2919, 0.3682, 0.4622, 0.5747, 0.7085, 0.8676, 1.057, 1.28",\
                 "0.2146, 0.2378, 0.2949, 0.3711, 0.4651, 0.5776, 0.7114, 0.8705, 1.06, 1.283",\
                 "0.2253, 0.2485, 0.3055, 0.3818, 0.4758, 0.5883, 0.722, 0.8811, 1.07, 1.293",\
                 "0.2386, 0.2618, 0.3186, 0.3949, 0.4888, 0.6015, 0.7352, 0.8943, 1.084, 1.307",\
                 "0.2473, 0.2706, 0.3273, 0.4037, 0.4976, 0.6103, 0.744, 0.9032, 1.092, 1.315",\
                 "0.2495, 0.2727, 0.3294, 0.4059, 0.5, 0.6128, 0.7466, 0.9055, 1.095, 1.318",\
                 "0.2434, 0.2667, 0.3236, 0.4001, 0.4942, 0.607, 0.7409, 0.9002, 1.089, 1.313",\
                 "0.2284, 0.252, 0.3089, 0.3855, 0.4797, 0.5927, 0.7266, 0.8859, 1.075, 1.298",\
                 "0.2038, 0.2274, 0.2846, 0.3612, 0.4556, 0.5686, 0.7025, 0.8619, 1.051, 1.274",\
                 "0.1687, 0.1926, 0.25, 0.3268, 0.4212, 0.5344, 0.6685, 0.8279, 1.017, 1.24");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.2724, 0.303, 0.3738, 0.4659, 0.5826, 0.7351, 0.9329, 1.182, 1.485, 1.846",\
                 "0.2763, 0.3068, 0.3777, 0.4697, 0.5865, 0.739, 0.9368, 1.185, 1.489, 1.85",\
                 "0.2944, 0.325, 0.3958, 0.4878, 0.6046, 0.7571, 0.955, 1.203, 1.507, 1.868",\
                 "0.3318, 0.3623, 0.433, 0.525, 0.6417, 0.7944, 0.9922, 1.241, 1.544, 1.906",\
                 "0.3847, 0.4152, 0.4861, 0.5781, 0.6948, 0.8475, 1.045, 1.294, 1.597, 1.959",\
                 "0.4523, 0.4829, 0.5535, 0.6455, 0.7624, 0.915, 1.113, 1.361, 1.665, 2.026",\
                 "0.533, 0.5637, 0.6346, 0.7268, 0.8437, 0.9964, 1.194, 1.443, 1.746, 2.107",\
                 "0.6274, 0.6583, 0.7293, 0.8218, 0.9389, 1.091, 1.289, 1.538, 1.841, 2.203",\
                 "0.735, 0.7661, 0.8379, 0.9307, 1.048, 1.201, 1.399, 1.647, 1.95, 2.311",\
                 "0.8568, 0.8888, 0.9615, 1.054, 1.172, 1.325, 1.523, 1.771, 2.075, 2.435");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.06102, 0.08234, 0.1356, 0.2165, 0.3268, 0.4689, 0.6518, 0.8874, 1.182, 1.542",\
                 "0.06098, 0.08222, 0.1355, 0.2165, 0.3268, 0.4686, 0.6516, 0.8873, 1.182, 1.542",\
                 "0.06106, 0.08222, 0.1355, 0.2166, 0.3268, 0.4684, 0.6517, 0.8862, 1.183, 1.541",\
                 "0.06108, 0.08252, 0.1358, 0.2163, 0.3268, 0.4688, 0.6512, 0.8867, 1.183, 1.541",\
                 "0.06126, 0.08258, 0.1358, 0.2167, 0.3266, 0.4684, 0.6521, 0.887, 1.183, 1.541",\
                 "0.06158, 0.08286, 0.1362, 0.217, 0.3266, 0.4685, 0.6513, 0.8872, 1.183, 1.543",\
                 "0.06194, 0.08322, 0.1366, 0.217, 0.3274, 0.4686, 0.6514, 0.8876, 1.183, 1.541",\
                 "0.0626, 0.0836, 0.137, 0.2174, 0.3272, 0.4688, 0.6518, 0.8872, 1.182, 1.541",\
                 "0.0634, 0.0842, 0.1372, 0.2176, 0.3274, 0.47, 0.652, 0.8876, 1.182, 1.541",\
                 "0.0644, 0.0852, 0.1378, 0.218, 0.3278, 0.4694, 0.6528, 0.8878, 1.183, 1.541");
        }

        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.03021, 0.05509, 0.1424, 0.3092, 0.5691, 0.9337, 1.414, 2.018, 2.756, 3.635");
          values("0.07672, 0.1025, 0.1673, 0.2697, 0.4347, 0.6814, 1.021, 1.45, 1.976, 2.6",\
                 "0.07732, 0.1018, 0.1673, 0.2693, 0.4339, 0.6822, 1.019, 1.449, 1.973, 2.603",\
                 "0.07674, 0.1022, 0.1674, 0.2699, 0.4341, 0.6826, 1.021, 1.448, 1.973, 2.603",\
                 "0.07696, 0.1028, 0.1672, 0.2694, 0.434, 0.6818, 1.02, 1.448, 1.973, 2.602",\
                 "0.07724, 0.1026, 0.1676, 0.2695, 0.4341, 0.682, 1.019, 1.448, 1.975, 2.6",\
                 "0.07778, 0.1028, 0.1673, 0.2697, 0.4352, 0.6826, 1.021, 1.449, 1.974, 2.603",\
                 "0.0784, 0.1038, 0.1684, 0.2704, 0.4348, 0.6824, 1.019, 1.448, 1.974, 2.602",\
                 "0.08, 0.1044, 0.1692, 0.2714, 0.4356, 0.6828, 1.02, 1.449, 1.974, 2.6",\
                 "0.082, 0.1064, 0.1702, 0.2714, 0.4356, 0.6822, 1.019, 1.448, 1.973, 2.598",\
                 "0.0854, 0.1096, 0.1724, 0.2726, 0.436, 0.6828, 1.02, 1.448, 1.974, 2.6");
        }
      }
    }
  }

