/*
 * 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.001885554" ;
    }

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.03593, 0.03543, 0.0353, 0.03652, 0.03912, 0.04326, 0.04903, \
                  0.05664, 0.06631, 0.07848");
        }

        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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.09951, 0.09893, 0.09866, 0.09986, 0.1031, 0.1091, 0.118, 0.1301, \
                  0.1458, 0.1655");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.04381, 0.04368, 0.04365, 0.04365, 0.04366, 0.04372, 0.04373, \
                  0.04371, 0.0437, 0.04375");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("-0.04353, -0.04352, -0.04354, -0.04361, -0.04353, -0.04365, -0.04364, \
                  -0.04363, -0.04365, -0.04364");
        }
      }
    }

    pin(Z) {
      capacitance : 0.03364 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 3.6 ;
      max_transition : 8.9 ;
      min_capacitance : 0.03464 ;
      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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.2192, 0.2191, 0.2191, 0.2191, 0.2191, 0.219, 0.219, 0.2191, 0.2191, 0.2192",\
                 "0.2192, 0.2192, 0.2192, 0.2192, 0.2192, 0.2191, 0.2191, 0.2192, 0.2192, 0.2192",\
                 "0.2202, 0.2202, 0.2202, 0.2202, 0.2201, 0.2201, 0.2201, 0.2201, 0.2202, 0.2202",\
                 "0.2223, 0.2223, 0.2223, 0.2223, 0.2222, 0.2222, 0.2222, 0.2222, 0.2223, 0.2223",\
                 "0.226, 0.226, 0.226, 0.2259, 0.2258, 0.2258, 0.2258, 0.2258, 0.2258, 0.2259",\
                 "0.2314, 0.2316, 0.2315, 0.2315, 0.2314, 0.2314, 0.2314, 0.2313, 0.2313, 0.2313",\
                 "0.2389, 0.2389, 0.2388, 0.2389, 0.2388, 0.2388, 0.2388, 0.2388, 0.2388, 0.2388",\
                 "0.2484, 0.2485, 0.2484, 0.2484, 0.2484, 0.2484, 0.2484, 0.2484, 0.2484, 0.2484",\
                 "0.2602, 0.2602, 0.2602, 0.2602, 0.2601, 0.2601, 0.2601, 0.2601, 0.2602, 0.2602",\
                 "0.2741, 0.2742, 0.2741, 0.2741, 0.2741, 0.274, 0.274, 0.2741, 0.2741, 0.2741");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.2102, 0.2105, 0.2105, 0.2104, 0.2112, 0.2123, 0.2138, 0.2159, 0.2192, 0.2465",\
                 "0.21, 0.2101, 0.2104, 0.2103, 0.211, 0.2121, 0.2136, 0.2151, 0.2192, 0.2477",\
                 "0.21, 0.2103, 0.2102, 0.2099, 0.211, 0.2121, 0.2136, 0.2155, 0.2211, 0.2482",\
                 "0.211, 0.211, 0.2112, 0.211, 0.212, 0.2131, 0.2144, 0.2175, 0.2219, 0.2513",\
                 "0.2137, 0.2137, 0.2138, 0.2141, 0.215, 0.2162, 0.2176, 0.2202, 0.2245, 0.2607",\
                 "0.2187, 0.2187, 0.2187, 0.2201, 0.2211, 0.2224, 0.2239, 0.2254, 0.2306, 0.2741",\
                 "0.2265, 0.2266, 0.2268, 0.2263, 0.2284, 0.2311, 0.2314, 0.2351, 0.2417, 0.2961",\
                 "0.2372, 0.2374, 0.2378, 0.2381, 0.2374, 0.2408, 0.2437, 0.2452, 0.2542, 0.3266",\
                 "0.2513, 0.2515, 0.2516, 0.253, 0.2518, 0.2523, 0.257, 0.262, 0.2752, 0.3792",\
                 "0.2689, 0.269, 0.2692, 0.2704, 0.2704, 0.2697, 0.2714, 0.2788, 0.3053, 0.4589");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.358, 0.3627, 0.3708, 0.3757, 0.3783, 0.3795, 0.3802, 0.3807, 0.381, 0.3812",\
                 "0.3539, 0.3586, 0.3668, 0.3717, 0.3743, 0.3755, 0.3762, 0.3766, 0.3769, 0.3771",\
                 "0.3503, 0.3545, 0.3623, 0.3676, 0.3704, 0.3719, 0.3727, 0.3732, 0.3735, 0.3738",\
                 "0.352, 0.3553, 0.3622, 0.368, 0.3714, 0.3734, 0.3746, 0.3755, 0.376, 0.3763",\
                 "0.3635, 0.3659, 0.3717, 0.3776, 0.3815, 0.3842, 0.3858, 0.3868, 0.3875, 0.388",\
                 "0.387, 0.3891, 0.394, 0.3993, 0.4038, 0.4068, 0.4088, 0.4101, 0.4111, 0.4117",\
                 "0.4239, 0.4257, 0.4301, 0.4351, 0.4398, 0.4429, 0.4452, 0.4468, 0.448, 0.4488",\
                 "0.4756, 0.4773, 0.4816, 0.4864, 0.4909, 0.4943, 0.497, 0.4988, 0.5001, 0.5011",\
                 "0.5435, 0.5451, 0.5491, 0.5537, 0.5579, 0.5615, 0.5643, 0.5665, 0.5681, 0.5692",\
                 "0.6283, 0.6297, 0.6335, 0.6379, 0.6419, 0.6455, 0.6485, 0.6508, 0.6526, 0.6539");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.2049, 0.2099, 0.2177, 0.2211, 0.2246, 0.2266, 0.2293, 0.2314, 0.236, 0.2607",\
                 "0.2027, 0.2074, 0.2148, 0.2186, 0.2222, 0.2244, 0.2266, 0.2292, 0.234, 0.2581",\
                 "0.1969, 0.2003, 0.2067, 0.2117, 0.2163, 0.2193, 0.2214, 0.2245, 0.2307, 0.2552",\
                 "0.1939, 0.1968, 0.2022, 0.2079, 0.2123, 0.2163, 0.2194, 0.2215, 0.2269, 0.2595",\
                 "0.1978, 0.2002, 0.2056, 0.2104, 0.2157, 0.2203, 0.2238, 0.2274, 0.2341, 0.2687",\
                 "0.2114, 0.2137, 0.2177, 0.2231, 0.2297, 0.2337, 0.2375, 0.2413, 0.2471, 0.287",\
                 "0.2371, 0.2389, 0.2428, 0.2466, 0.2525, 0.2593, 0.2634, 0.2669, 0.2754, 0.3215",\
                 "0.2768, 0.2787, 0.2822, 0.2862, 0.2901, 0.2953, 0.3036, 0.3076, 0.3179, 0.3823",\
                 "0.3318, 0.3334, 0.3372, 0.3403, 0.3434, 0.347, 0.3543, 0.3654, 0.3769, 0.465",\
                 "0.4037, 0.4052, 0.4085, 0.4121, 0.4153, 0.4179, 0.4222, 0.4314, 0.4584, 0.5882");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("1.382, 1.41, 1.483, 1.622, 1.852, 2.18, 2.613, 3.1, 3.617, 4.181");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.826, 0.842, 0.914, 1.054, 1.239, 1.459, 1.72, 2.025, 2.373, \
                  2.769");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.5358, 0.6197, 0.8263, 1.099, 1.412, 1.761, 2.153, 2.594, 3.095, 3.669",\
                 "0.5535, 0.6372, 0.8437, 1.117, 1.43, 1.779, 2.17, 2.611, 3.113, 3.686",\
                 "0.6179, 0.7016, 0.9083, 1.181, 1.494, 1.843, 2.234, 2.675, 3.177, 3.75",\
                 "0.7305, 0.8143, 1.021, 1.294, 1.607, 1.957, 2.348, 2.789, 3.291, 3.864",\
                 "0.8588, 0.952, 1.171, 1.45, 1.767, 2.118, 2.51, 2.952, 3.455, 4.028",\
                 "0.9323, 1.034, 1.269, 1.555, 1.875, 2.227, 2.62, 3.062, 3.564, 4.137",\
                 "0.9422, 1.045, 1.28, 1.567, 1.887, 2.24, 2.633, 3.075, 3.577, 4.15",\
                 "0.8967, 1, 1.236, 1.525, 1.845, 2.198, 2.591, 3.033, 3.535, 4.108",\
                 "0.8028, 0.9072, 1.145, 1.435, 1.756, 2.11, 2.503, 2.946, 3.448, 4.021",\
                 "0.6621, 0.7676, 1.008, 1.299, 1.622, 1.977, 2.371, 2.814, 3.317, 3.89");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.6102, 0.6962, 0.9029, 1.188, 1.565, 2.067, 2.719, 3.538, 4.536, 5.731",\
                 "0.6267, 0.7126, 0.9193, 1.204, 1.582, 2.084, 2.735, 3.554, 4.554, 5.746",\
                 "0.6846, 0.7704, 0.9771, 1.262, 1.64, 2.142, 2.793, 3.612, 4.611, 5.805",\
                 "0.7894, 0.8758, 1.083, 1.368, 1.746, 2.248, 2.899, 3.718, 4.719, 5.91",\
                 "0.9184, 1.014, 1.232, 1.521, 1.9, 2.402, 3.054, 3.873, 4.872, 6.066",\
                 "1.012, 1.123, 1.37, 1.678, 2.064, 2.567, 3.218, 4.036, 5.038, 6.226",\
                 "1.064, 1.192, 1.47, 1.802, 2.201, 2.709, 3.36, 4.179, 5.178, 6.371",\
                 "1.074, 1.217, 1.528, 1.889, 2.304, 2.818, 3.472, 4.29, 5.288, 6.48",\
                 "1.037, 1.197, 1.544, 1.937, 2.372, 2.894, 3.55, 4.368, 5.366, 6.555",\
                 "0.9527, 1.13, 1.513, 1.942, 2.401, 2.934, 3.593, 4.412, 5.41, 6.6");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.2931, 0.3717, 0.5739, 0.8438, 1.158, 1.539, 2.011, 2.604, 3.338, 4.232",\
                 "0.2926, 0.3717, 0.5742, 0.8424, 1.158, 1.541, 2.014, 2.605, 3.334, 4.233",\
                 "0.2927, 0.3716, 0.5738, 0.8422, 1.158, 1.539, 2.011, 2.603, 3.339, 4.23",\
                 "0.2948, 0.373, 0.5746, 0.8442, 1.157, 1.541, 2.014, 2.605, 3.335, 4.232",\
                 "0.342, 0.4154, 0.602, 0.86, 1.17, 1.549, 2.019, 2.609, 3.34, 4.232",\
                 "0.3866, 0.463, 0.6456, 0.8854, 1.183, 1.556, 2.024, 2.612, 3.339, 4.235",\
                 "0.4024, 0.4754, 0.6532, 0.8898, 1.188, 1.557, 2.022, 2.61, 3.341, 4.232",\
                 "0.4082, 0.48, 0.6566, 0.8942, 1.188, 1.558, 2.025, 2.609, 3.336, 4.229",\
                 "0.4136, 0.4858, 0.662, 0.8976, 1.191, 1.56, 2.028, 2.612, 3.34, 4.229",\
                 "0.4188, 0.4912, 0.6686, 0.9034, 1.198, 1.567, 2.03, 2.616, 3.342, 4.232");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.2714, 0.3462, 0.5477, 0.9075, 1.488, 2.344, 3.497, 4.959, 6.751, 8.898",\
                 "0.2719, 0.3444, 0.5478, 0.908, 1.488, 2.344, 3.497, 4.959, 6.761, 8.896",\
                 "0.2719, 0.3446, 0.5488, 0.908, 1.486, 2.343, 3.497, 4.961, 6.749, 8.898",\
                 "0.2738, 0.3464, 0.5498, 0.9072, 1.488, 2.343, 3.496, 4.962, 6.758, 8.887",\
                 "0.3126, 0.379, 0.566, 0.9162, 1.489, 2.344, 3.496, 4.961, 6.749, 8.898",\
                 "0.3696, 0.442, 0.6262, 0.9546, 1.505, 2.345, 3.499, 4.966, 6.748, 8.885",\
                 "0.4258, 0.5068, 0.697, 1.012, 1.541, 2.361, 3.503, 4.962, 6.752, 8.897",\
                 "0.4834, 0.575, 0.7748, 1.08, 1.586, 2.384, 3.509, 4.965, 6.75, 8.882",\
                 "0.5442, 0.6448, 0.8598, 1.158, 1.64, 2.415, 3.524, 4.968, 6.756, 8.893",\
                 "0.6062, 0.7172, 0.9486, 1.246, 1.705, 2.453, 3.543, 4.976, 6.756, 8.889");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.7107, 0.7972, 1.005, 1.275, 1.585, 1.931, 2.321, 2.761, 3.263, 3.835",\
                 "0.7197, 0.8061, 1.014, 1.284, 1.594, 1.941, 2.331, 2.771, 3.272, 3.845",\
                 "0.7745, 0.8604, 1.069, 1.339, 1.65, 1.997, 2.387, 2.827, 3.328, 3.901",\
                 "0.88, 0.9662, 1.175, 1.448, 1.759, 2.108, 2.498, 2.938, 3.439, 4.012",\
                 "1.021, 1.11, 1.324, 1.6, 1.915, 2.264, 2.655, 3.096, 3.598, 4.171",\
                 "1.201, 1.292, 1.512, 1.795, 2.115, 2.468, 2.861, 3.303, 3.806, 4.379",\
                 "1.437, 1.532, 1.758, 2.047, 2.373, 2.731, 3.129, 3.574, 4.078, 4.652",\
                 "1.725, 1.827, 2.067, 2.37, 2.706, 3.072, 3.476, 3.925, 4.433, 5.009",\
                 "2.06, 2.173, 2.436, 2.762, 3.12, 3.502, 3.915, 4.372, 4.885, 5.464",\
                 "2.441, 2.567, 2.859, 3.22, 3.612, 4.02, 4.452, 4.922, 5.443, 6.028");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.7545, 0.8415, 1.048, 1.331, 1.708, 2.209, 2.861, 3.681, 4.682, 5.873",\
                 "0.7626, 0.8495, 1.055, 1.339, 1.716, 2.218, 2.87, 3.69, 4.69, 5.882",\
                 "0.7888, 0.8748, 1.081, 1.366, 1.744, 2.247, 2.899, 3.719, 4.719, 5.912",\
                 "0.813, 0.8992, 1.106, 1.392, 1.771, 2.274, 2.927, 3.746, 4.746, 5.94",\
                 "0.821, 0.9084, 1.119, 1.408, 1.788, 2.291, 2.944, 3.765, 4.766, 5.958",\
                 "0.8211, 0.9106, 1.124, 1.415, 1.798, 2.304, 2.957, 3.777, 4.776, 5.971",\
                 "0.8119, 0.9065, 1.128, 1.424, 1.81, 2.317, 2.973, 3.793, 4.794, 5.987",\
                 "0.7787, 0.8833, 1.122, 1.432, 1.826, 2.336, 2.992, 3.814, 4.814, 6.006",\
                 "0.713, 0.8301, 1.094, 1.427, 1.839, 2.359, 3.018, 3.84, 4.842, 6.034",\
                 "0.6147, 0.7455, 1.037, 1.401, 1.839, 2.378, 3.048, 3.874, 4.876, 6.069");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.2766, 0.3535, 0.5557, 0.8258, 1.144, 1.531, 2.006, 2.599, 3.334, 4.23",\
                 "0.2761, 0.3537, 0.5559, 0.8256, 1.144, 1.531, 2.005, 2.599, 3.334, 4.227",\
                 "0.2775, 0.355, 0.5572, 0.8276, 1.144, 1.53, 2.005, 2.6, 3.33, 4.232",\
                 "0.2828, 0.3606, 0.5628, 0.8312, 1.147, 1.531, 2.005, 2.6, 3.336, 4.23",\
                 "0.3006, 0.3776, 0.5754, 0.8394, 1.152, 1.537, 2.01, 2.603, 3.332, 4.233",\
                 "0.3136, 0.3912, 0.5922, 0.8598, 1.17, 1.547, 2.017, 2.608, 3.337, 4.234",\
                 "0.3332, 0.4106, 0.6104, 0.8784, 1.19, 1.567, 2.035, 2.62, 3.344, 4.24",\
                 "0.3654, 0.4452, 0.6478, 0.9162, 1.225, 1.597, 2.061, 2.644, 3.364, 4.252",\
                 "0.4098, 0.495, 0.7086, 0.9862, 1.295, 1.655, 2.109, 2.679, 3.394, 4.273",\
                 "0.468, 0.5596, 0.791, 1.088, 1.402, 1.755, 2.193, 2.744, 3.442, 4.308");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.03464, 0.05925, 0.1456, 0.3106, 0.5677, 0.9283, 1.403, 2.001, 2.731, 3.6");
          values("0.2483, 0.3221, 0.532, 0.8972, 1.484, 2.34, 3.495, 4.963, 6.758, 8.887",\
                 "0.2489, 0.3226, 0.5312, 0.8974, 1.484, 2.341, 3.493, 4.963, 6.757, 8.886",\
                 "0.2519, 0.3251, 0.5328, 0.8984, 1.484, 2.342, 3.492, 4.963, 6.755, 8.884",\
                 "0.2556, 0.3294, 0.5356, 0.8982, 1.483, 2.339, 3.498, 4.956, 6.758, 8.898",\
                 "0.264, 0.3376, 0.5438, 0.905, 1.486, 2.34, 3.498, 4.957, 6.757, 8.898",\
                 "0.2722, 0.347, 0.5532, 0.9138, 1.493, 2.345, 3.494, 4.96, 6.749, 8.884",\
                 "0.2942, 0.3676, 0.5698, 0.9258, 1.502, 2.351, 3.503, 4.967, 6.756, 8.884",\
                 "0.3306, 0.4048, 0.6092, 0.9586, 1.519, 2.36, 3.506, 4.969, 6.751, 8.884",\
                 "0.377, 0.456, 0.6662, 1.019, 1.569, 2.387, 3.518, 4.972, 6.759, 8.906",\
                 "0.428, 0.5142, 0.7336, 1.094, 1.647, 2.454, 3.554, 4.99, 6.764, 8.893");
        }
      }
    }
  }

