/*
 * 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_12) {
    area : 118.540800 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.008934 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 3.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.6834, 0.6839, 0.7042, 0.7674, 0.8907, 1.085, 1.357, 1.714, 2.16, \
                  2.702");
        }

        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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.3013, 0.3016, 0.3176, 0.3641, 0.4466, 0.5693, 0.7352, 0.9532, \
                  1.254, 1.636");
        }

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

    pin(I) {
      capacitance : 0.01356 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 3.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.7542, 0.7537, 0.7892, 0.9038, 1.115, 1.436, 1.879, 2.45, 3.156, \
                  4.004");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2678, 0.269, 0.2948, 0.3806, 0.5539, 0.828, 1.211, 1.709, 2.327, \
                  3.074");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.02193 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 2.664 ;
      max_transition : 3.4 ;
      min_capacitance : 0.02293 ;
      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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("1.306, 1.305, 1.303, 1.302, 1.302, 1.302, 1.303, 1.303, 1.304, 1.304",\
                 "1.308, 1.307, 1.305, 1.305, 1.304, 1.305, 1.305, 1.305, 1.305, 1.305",\
                 "1.331, 1.33, 1.328, 1.328, 1.327, 1.328, 1.328, 1.328, 1.328, 1.328",\
                 "1.388, 1.387, 1.386, 1.385, 1.385, 1.385, 1.386, 1.386, 1.386, 1.386",\
                 "1.486, 1.485, 1.485, 1.484, 1.484, 1.484, 1.484, 1.484, 1.485, 1.485",\
                 "1.629, 1.629, 1.629, 1.629, 1.629, 1.628, 1.628, 1.628, 1.629, 1.629",\
                 "1.822, 1.821, 1.821, 1.821, 1.821, 1.821, 1.821, 1.821, 1.821, 1.821",\
                 "2.065, 2.065, 2.066, 2.065, 2.065, 2.065, 2.065, 2.066, 2.066, 2.066",\
                 "2.364, 2.363, 2.363, 2.363, 2.363, 2.363, 2.363, 2.364, 2.364, 2.364",\
                 "2.718, 2.719, 2.719, 2.719, 2.719, 2.719, 2.719, 2.719, 2.719, 2.72");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("1.205, 1.205, 1.211, 1.211, 1.213, 1.215, 1.225, 1.243, 1.26, 1.291",\
                 "1.206, 1.206, 1.208, 1.211, 1.211, 1.216, 1.226, 1.241, 1.266, 1.291",\
                 "1.22, 1.221, 1.223, 1.226, 1.226, 1.229, 1.239, 1.257, 1.282, 1.291",\
                 "1.271, 1.271, 1.273, 1.274, 1.28, 1.28, 1.289, 1.306, 1.326, 1.341",\
                 "1.373, 1.372, 1.38, 1.379, 1.384, 1.389, 1.398, 1.414, 1.436, 1.451",\
                 "1.537, 1.538, 1.535, 1.542, 1.554, 1.56, 1.567, 1.586, 1.612, 1.621",\
                 "1.773, 1.775, 1.777, 1.774, 1.778, 1.8, 1.808, 1.819, 1.838, 1.858",\
                 "2.084, 2.087, 2.089, 2.088, 2.083, 2.096, 2.126, 2.137, 2.157, 2.177",\
                 "2.478, 2.48, 2.479, 2.486, 2.48, 2.478, 2.501, 2.541, 2.553, 2.573",\
                 "2.956, 2.958, 2.957, 2.961, 2.967, 2.962, 2.958, 2.994, 3.037, 3.068");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("2.253, 2.252, 2.267, 2.292, 2.311, 2.321, 2.327, 2.331, 2.334, 2.336",\
                 "2.254, 2.253, 2.268, 2.292, 2.311, 2.321, 2.327, 2.332, 2.335, 2.337",\
                 "2.285, 2.283, 2.3, 2.322, 2.34, 2.351, 2.358, 2.362, 2.365, 2.367",\
                 "2.396, 2.394, 2.406, 2.429, 2.447, 2.459, 2.467, 2.472, 2.475, 2.477",\
                 "2.615, 2.613, 2.623, 2.645, 2.663, 2.675, 2.683, 2.688, 2.691, 2.693",\
                 "2.96, 2.956, 2.964, 2.985, 3.004, 3.017, 3.025, 3.031, 3.035, 3.037",\
                 "3.439, 3.432, 3.437, 3.458, 3.478, 3.492, 3.501, 3.508, 3.512, 3.515",\
                 "4.062, 4.053, 4.056, 4.074, 4.094, 4.11, 4.121, 4.128, 4.133, 4.136",\
                 "4.834, 4.823, 4.824, 4.841, 4.861, 4.877, 4.888, 4.897, 4.902, 4.906",\
                 "5.761, 5.752, 5.75, 5.765, 5.785, 5.802, 5.814, 5.823, 5.829, 5.834");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("2.198, 2.212, 2.252, 2.298, 2.334, 2.362, 2.387, 2.415, 2.438, 2.458",\
                 "2.198, 2.212, 2.256, 2.298, 2.334, 2.361, 2.384, 2.411, 2.443, 2.458",\
                 "2.235, 2.249, 2.293, 2.335, 2.37, 2.397, 2.42, 2.448, 2.476, 2.496",\
                 "2.367, 2.381, 2.422, 2.462, 2.501, 2.527, 2.55, 2.578, 2.603, 2.639",\
                 "2.626, 2.638, 2.676, 2.715, 2.75, 2.776, 2.802, 2.831, 2.861, 2.892",\
                 "3.028, 3.037, 3.07, 3.108, 3.146, 3.172, 3.2, 3.23, 3.257, 3.294",\
                 "3.582, 3.592, 3.618, 3.656, 3.693, 3.72, 3.748, 3.78, 3.802, 3.833",\
                 "4.298, 4.304, 4.332, 4.358, 4.391, 4.427, 4.459, 4.49, 4.522, 4.542",\
                 "5.183, 5.189, 5.209, 5.234, 5.26, 5.299, 5.339, 5.365, 5.391, 5.422",\
                 "6.246, 6.252, 6.267, 6.294, 6.319, 6.342, 6.378, 6.441, 6.458, 6.495");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.486, 0.491, 0.511, 0.557, 0.636, 0.754, 0.908, 1.087, 1.289, \
                  1.508");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.382, 0.387, 0.411, 0.459, 0.525, 0.61, 0.709, 0.825, 0.956, \
                  1.101");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.1488, 0.1769, 0.2464, 0.3423, 0.4633, 0.6103, 0.7874, 0.9996, 1.253, 1.552",\
                 "0.1525, 0.1809, 0.2504, 0.3461, 0.4669, 0.614, 0.7911, 1.003, 1.257, 1.556",\
                 "0.1681, 0.1964, 0.2658, 0.3616, 0.4823, 0.6295, 0.8065, 1.019, 1.272, 1.571",\
                 "0.1897, 0.2196, 0.2905, 0.387, 0.5081, 0.6554, 0.8326, 1.045, 1.298, 1.597",\
                 "0.1999, 0.2332, 0.3112, 0.4134, 0.5373, 0.6861, 0.8639, 1.077, 1.33, 1.629",\
                 "0.1948, 0.2312, 0.3154, 0.4237, 0.5518, 0.7024, 0.8808, 1.094, 1.347, 1.646",\
                 "0.1749, 0.2138, 0.303, 0.4148, 0.5446, 0.6958, 0.8746, 1.088, 1.341, 1.64",\
                 "0.1381, 0.1804, 0.2737, 0.3881, 0.5191, 0.6712, 0.8505, 1.064, 1.317, 1.616",\
                 "0.0849, 0.1303, 0.2281, 0.3447, 0.4773, 0.6304, 0.8102, 1.024, 1.277, 1.576",\
                 "0.0131, 0.0626, 0.1657, 0.2853, 0.4193, 0.5733, 0.7537, 0.9673, 1.221, 1.52");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.1835, 0.2194, 0.3044, 0.4175, 0.5624, 0.7509, 0.9946, 1.3, 1.673, 2.118",\
                 "0.1868, 0.2227, 0.3076, 0.4209, 0.5658, 0.7542, 0.9978, 1.304, 1.676, 2.121",\
                 "0.1993, 0.2353, 0.3204, 0.4335, 0.5782, 0.7671, 1.011, 1.316, 1.69, 2.134",\
                 "0.2173, 0.2552, 0.3421, 0.4561, 0.6014, 0.79, 1.033, 1.339, 1.713, 2.157",\
                 "0.2247, 0.2682, 0.3646, 0.484, 0.6311, 0.8203, 1.064, 1.369, 1.743, 2.188",\
                 "0.2135, 0.2637, 0.3735, 0.5043, 0.6565, 0.8473, 1.091, 1.397, 1.769, 2.213",\
                 "0.1813, 0.2391, 0.3639, 0.5098, 0.6713, 0.8655, 1.11, 1.416, 1.789, 2.233",\
                 "0.1256, 0.1923, 0.3334, 0.4966, 0.6709, 0.8717, 1.119, 1.425, 1.798, 2.243",\
                 "0.0438, 0.1217, 0.2805, 0.4622, 0.6525, 0.8626, 1.115, 1.424, 1.797, 2.242",\
                 "-0.0691, 0.0244, 0.2045, 0.4058, 0.6143, 0.836, 1.094, 1.408, 1.785, 2.23");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.08164, 0.1069, 0.176, 0.2845, 0.4353, 0.6335, 0.8905, 1.223, 1.635, 2.137",\
                 "0.0815, 0.1068, 0.1761, 0.2848, 0.4355, 0.6333, 0.8911, 1.223, 1.635, 2.137",\
                 "0.08168, 0.1068, 0.1758, 0.2847, 0.4355, 0.6335, 0.8909, 1.223, 1.635, 2.137",\
                 "0.08804, 0.112, 0.1785, 0.2861, 0.4359, 0.6346, 0.892, 1.223, 1.636, 2.137",\
                 "0.09994, 0.1259, 0.1949, 0.2979, 0.4434, 0.6389, 0.8957, 1.225, 1.636, 2.137",\
                 "0.1116, 0.1381, 0.2098, 0.3151, 0.4561, 0.6454, 0.8988, 1.227, 1.638, 2.139",\
                 "0.1235, 0.15, 0.2212, 0.323, 0.4614, 0.6494, 0.8994, 1.225, 1.638, 2.139",\
                 "0.1364, 0.1616, 0.2304, 0.3296, 0.466, 0.6526, 0.9014, 1.227, 1.636, 2.137",\
                 "0.1522, 0.1748, 0.2388, 0.3352, 0.471, 0.6552, 0.904, 1.228, 1.637, 2.134",\
                 "0.17, 0.1908, 0.25, 0.3426, 0.476, 0.66, 0.9076, 1.23, 1.639, 2.136");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.09982, 0.1323, 0.2166, 0.3546, 0.5725, 0.8955, 1.336, 1.896, 2.58, 3.4",\
                 "0.09984, 0.1319, 0.2172, 0.3549, 0.573, 0.8958, 1.337, 1.897, 2.58, 3.4",\
                 "0.1001, 0.1321, 0.2167, 0.3549, 0.5726, 0.8957, 1.335, 1.895, 2.581, 3.397",\
                 "0.1075, 0.1371, 0.2203, 0.3565, 0.5729, 0.8962, 1.336, 1.895, 2.581, 3.398",\
                 "0.1255, 0.1569, 0.2371, 0.3661, 0.5769, 0.8979, 1.336, 1.894, 2.582, 3.4",\
                 "0.1473, 0.1814, 0.2661, 0.3897, 0.589, 0.9018, 1.337, 1.896, 2.58, 3.4",\
                 "0.1732, 0.2093, 0.3, 0.4238, 0.6124, 0.9116, 1.341, 1.896, 2.581, 3.4",\
                 "0.206, 0.2414, 0.336, 0.465, 0.6444, 0.9318, 1.349, 1.9, 2.58, 3.397",\
                 "0.252, 0.2802, 0.3752, 0.5114, 0.6864, 0.961, 1.369, 1.91, 2.586, 3.402",\
                 "0.3104, 0.3328, 0.4196, 0.5626, 0.7368, 0.9984, 1.395, 1.931, 2.601, 3.406");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.2802, 0.3073, 0.3766, 0.4729, 0.594, 0.7412, 0.9182, 1.131, 1.384, 1.683",\
                 "0.2835, 0.3106, 0.3799, 0.4763, 0.5973, 0.7445, 0.9215, 1.134, 1.387, 1.686",\
                 "0.2965, 0.3236, 0.3929, 0.4893, 0.6103, 0.7575, 0.9346, 1.147, 1.4, 1.699",\
                 "0.3133, 0.3404, 0.4095, 0.506, 0.6271, 0.7741, 0.9514, 1.164, 1.417, 1.716",\
                 "0.3234, 0.3504, 0.4196, 0.5161, 0.6373, 0.7845, 0.9615, 1.174, 1.427, 1.726",\
                 "0.3239, 0.351, 0.4202, 0.5168, 0.6382, 0.7856, 0.9627, 1.175, 1.428, 1.728",\
                 "0.3133, 0.3405, 0.4099, 0.5067, 0.6282, 0.7759, 0.9531, 1.166, 1.419, 1.718",\
                 "0.2901, 0.3178, 0.3877, 0.4849, 0.6067, 0.7545, 0.9319, 1.145, 1.398, 1.697",\
                 "0.2534, 0.2817, 0.3523, 0.4501, 0.5724, 0.7205, 0.8981, 1.111, 1.364, 1.664",\
                 "0.2018, 0.2312, 0.3035, 0.4022, 0.5249, 0.6735, 0.8514, 1.064, 1.318, 1.617");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.3402, 0.3767, 0.4632, 0.5775, 0.7235, 0.9128, 1.157, 1.463, 1.836, 2.282",\
                 "0.3451, 0.3816, 0.4683, 0.5825, 0.7285, 0.9177, 1.162, 1.468, 1.841, 2.285",\
                 "0.3686, 0.4051, 0.4916, 0.6058, 0.7518, 0.941, 1.185, 1.491, 1.864, 2.31",\
                 "0.4164, 0.4531, 0.5396, 0.6536, 0.7997, 0.989, 1.233, 1.539, 1.912, 2.358",\
                 "0.4849, 0.5218, 0.6084, 0.7225, 0.8685, 1.058, 1.302, 1.608, 1.981, 2.427",\
                 "0.5709, 0.608, 0.6949, 0.8094, 0.9555, 1.145, 1.389, 1.696, 2.069, 2.514",\
                 "0.6727, 0.7108, 0.7988, 0.914, 1.06, 1.25, 1.494, 1.801, 2.174, 2.618",\
                 "0.7898, 0.8295, 0.9198, 1.036, 1.183, 1.373, 1.617, 1.923, 2.297, 2.743",\
                 "0.9224, 0.9644, 1.058, 1.177, 1.324, 1.514, 1.759, 2.065, 2.438, 2.883",\
                 "1.071, 1.115, 1.214, 1.335, 1.485, 1.675, 1.92, 2.226, 2.6, 3.044");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.0755, 0.1026, 0.1735, 0.2827, 0.4339, 0.6316, 0.8913, 1.221, 1.634, 2.135",\
                 "0.0756, 0.1027, 0.1735, 0.2826, 0.4336, 0.6318, 0.891, 1.221, 1.634, 2.135",\
                 "0.07554, 0.1028, 0.1738, 0.2827, 0.4339, 0.6316, 0.8913, 1.221, 1.635, 2.135",\
                 "0.07572, 0.1028, 0.1738, 0.283, 0.4339, 0.6324, 0.8903, 1.223, 1.634, 2.138",\
                 "0.0761, 0.1033, 0.1741, 0.283, 0.4338, 0.6326, 0.8906, 1.222, 1.635, 2.135",\
                 "0.0769, 0.1038, 0.1749, 0.2837, 0.434, 0.6324, 0.8908, 1.221, 1.634, 2.135",\
                 "0.078, 0.1046, 0.1758, 0.2848, 0.4354, 0.6326, 0.8904, 1.221, 1.635, 2.135",\
                 "0.0798, 0.1064, 0.1768, 0.2858, 0.436, 0.6338, 0.8916, 1.222, 1.635, 2.135",\
                 "0.0828, 0.109, 0.179, 0.2868, 0.4372, 0.6352, 0.8922, 1.222, 1.635, 2.134",\
                 "0.0872, 0.1134, 0.182, 0.2888, 0.4388, 0.6366, 0.8932, 1.224, 1.635, 2.135");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.02293, 0.04117, 0.1052, 0.2274, 0.4178, 0.6849, 1.036, 1.479, 2.02, 2.664");
          values("0.09788, 0.1286, 0.2132, 0.3515, 0.5706, 0.8944, 1.336, 1.895, 2.583, 3.401",\
                 "0.09794, 0.1286, 0.2138, 0.3516, 0.5718, 0.8943, 1.335, 1.897, 2.579, 3.4",\
                 "0.09738, 0.1286, 0.214, 0.3516, 0.5706, 0.8952, 1.336, 1.897, 2.579, 3.397",\
                 "0.09734, 0.1286, 0.2144, 0.3518, 0.5719, 0.8944, 1.336, 1.896, 2.581, 3.4",\
                 "0.0979, 0.13, 0.2151, 0.3528, 0.572, 0.8954, 1.337, 1.897, 2.579, 3.4",\
                 "0.1, 0.131, 0.2152, 0.3536, 0.5724, 0.895, 1.336, 1.896, 2.582, 3.401",\
                 "0.105, 0.1352, 0.2184, 0.3546, 0.5722, 0.8964, 1.336, 1.896, 2.581, 3.4",\
                 "0.1112, 0.1408, 0.2226, 0.358, 0.5734, 0.897, 1.335, 1.894, 2.58, 3.4",\
                 "0.119, 0.149, 0.2296, 0.361, 0.5758, 0.8966, 1.336, 1.894, 2.582, 3.4",\
                 "0.129, 0.159, 0.2386, 0.3684, 0.5794, 0.898, 1.338, 1.895, 2.581, 3.399");
        }
      }
    }
  }

