/*
 * 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__bufz_12) {
    area : 127.008000 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.0572, 0.05643, 0.05625, 0.05828, 0.06255, 0.06933, 0.07879, \
                  0.09139, 0.1077, 0.1287");
        }

        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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.1087, 0.1078, 0.1073, 0.1094, 0.1153, 0.1255, 0.1404, 0.1611, \
                  0.188, 0.2214");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.0509, 0.05084, 0.05078, 0.0508, 0.05075, 0.05085, 0.05083, 0.05081, \
                  0.05083, 0.05083");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.05059, -0.05052, -0.05069, -0.0506, -0.05057, -0.0507, -0.05073, \
                  -0.05067, -0.05072, -0.05074");
        }
      }
    }

    pin(Z) {
      capacitance : 0.03442 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 3.91 ;
      max_transition : 8.4 ;
      min_capacitance : 0.03542 ;
      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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.2436, 0.2436, 0.2436, 0.2435, 0.2435, 0.2435, 0.2435, 0.2436, 0.2436, 0.2437",\
                 "0.2435, 0.2435, 0.2435, 0.2435, 0.2435, 0.2435, 0.2435, 0.2435, 0.2436, 0.2436",\
                 "0.2451, 0.245, 0.245, 0.245, 0.2449, 0.2449, 0.245, 0.245, 0.2451, 0.2451",\
                 "0.2484, 0.2483, 0.2484, 0.2483, 0.2482, 0.2482, 0.2482, 0.2483, 0.2483, 0.2484",\
                 "0.2545, 0.2545, 0.2545, 0.2543, 0.2543, 0.2543, 0.2544, 0.2544, 0.2545, 0.2545",\
                 "0.2637, 0.2637, 0.2636, 0.2635, 0.2636, 0.2635, 0.2635, 0.2636, 0.2636, 0.2636",\
                 "0.2761, 0.2761, 0.2761, 0.2761, 0.2761, 0.2761, 0.2761, 0.2761, 0.2761, 0.2762",\
                 "0.2924, 0.2924, 0.2923, 0.2923, 0.2922, 0.2922, 0.2922, 0.2923, 0.2923, 0.2923",\
                 "0.3122, 0.312, 0.3121, 0.312, 0.3119, 0.312, 0.3119, 0.312, 0.312, 0.3121",\
                 "0.3358, 0.3358, 0.3357, 0.3356, 0.3355, 0.3355, 0.3355, 0.3355, 0.3356, 0.3356");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.2257, 0.2256, 0.2255, 0.2257, 0.2271, 0.228, 0.2305, 0.2318, 0.2373, 0.2534",\
                 "0.2252, 0.2254, 0.2252, 0.2253, 0.2261, 0.228, 0.2289, 0.2326, 0.2346, 0.2551",\
                 "0.225, 0.2252, 0.2255, 0.225, 0.2259, 0.2282, 0.2285, 0.2324, 0.2353, 0.2543",\
                 "0.2266, 0.227, 0.2266, 0.2269, 0.2275, 0.229, 0.2315, 0.2336, 0.2367, 0.2571",\
                 "0.2315, 0.2314, 0.2321, 0.2328, 0.234, 0.2353, 0.2375, 0.2383, 0.2446, 0.2664",\
                 "0.2405, 0.2407, 0.2409, 0.2413, 0.2433, 0.2438, 0.246, 0.2486, 0.2541, 0.2795",\
                 "0.2544, 0.2546, 0.255, 0.2541, 0.256, 0.2596, 0.2608, 0.2635, 0.2691, 0.3022",\
                 "0.2733, 0.2734, 0.2744, 0.2736, 0.273, 0.2763, 0.281, 0.2839, 0.2879, 0.3332",\
                 "0.2978, 0.298, 0.2987, 0.2992, 0.2981, 0.2986, 0.3032, 0.3111, 0.3182, 0.3814",\
                 "0.3282, 0.3283, 0.329, 0.3296, 0.3282, 0.328, 0.3305, 0.3368, 0.3536, 0.452");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.3844, 0.3898, 0.3994, 0.4053, 0.4081, 0.4097, 0.4106, 0.4111, 0.4114, 0.4117",\
                 "0.3799, 0.3852, 0.3948, 0.4006, 0.4036, 0.4051, 0.406, 0.4065, 0.4069, 0.4071",\
                 "0.3761, 0.3809, 0.3899, 0.3962, 0.3994, 0.4012, 0.4021, 0.4027, 0.4032, 0.4034",\
                 "0.3791, 0.3827, 0.3904, 0.397, 0.401, 0.4034, 0.4048, 0.4057, 0.4064, 0.4067",\
                 "0.394, 0.3965, 0.4026, 0.4088, 0.4135, 0.4164, 0.4184, 0.4196, 0.4204, 0.421",\
                 "0.4224, 0.4242, 0.4292, 0.435, 0.4396, 0.443, 0.4453, 0.4469, 0.4479, 0.4486",\
                 "0.4658, 0.4672, 0.4714, 0.4767, 0.4815, 0.4852, 0.4877, 0.4895, 0.4908, 0.4917",\
                 "0.5256, 0.5267, 0.5305, 0.5353, 0.54, 0.5437, 0.5467, 0.5489, 0.5504, 0.5514",\
                 "0.6028, 0.6041, 0.6073, 0.6117, 0.6164, 0.6203, 0.6233, 0.6258, 0.6275, 0.6289",\
                 "0.6995, 0.7003, 0.7034, 0.7076, 0.7119, 0.7157, 0.719, 0.7214, 0.7236, 0.7252");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.2216, 0.2275, 0.2369, 0.2425, 0.2464, 0.2487, 0.2518, 0.2543, 0.2594, 0.2739",\
                 "0.219, 0.2247, 0.2338, 0.2399, 0.2436, 0.2459, 0.2485, 0.2511, 0.2557, 0.275",\
                 "0.2128, 0.2179, 0.2253, 0.2317, 0.2371, 0.2404, 0.2443, 0.2472, 0.2535, 0.2696",\
                 "0.2103, 0.2137, 0.2208, 0.2272, 0.2329, 0.2378, 0.2421, 0.2448, 0.2495, 0.2705",\
                 "0.2163, 0.219, 0.2258, 0.2324, 0.2385, 0.2443, 0.2491, 0.2519, 0.258, 0.282",\
                 "0.2337, 0.2363, 0.2415, 0.2473, 0.2555, 0.2604, 0.2651, 0.2697, 0.2772, 0.3033",\
                 "0.2651, 0.2673, 0.2721, 0.2767, 0.2834, 0.2918, 0.2968, 0.3002, 0.3073, 0.338",\
                 "0.3115, 0.3135, 0.3179, 0.3221, 0.3268, 0.3332, 0.3433, 0.3486, 0.3535, 0.399",\
                 "0.3752, 0.377, 0.381, 0.385, 0.3885, 0.394, 0.4017, 0.4127, 0.4235, 0.4789",\
                 "0.4563, 0.4579, 0.4616, 0.4655, 0.4703, 0.4738, 0.4779, 0.4876, 0.5077, 0.5954");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.747, 0.77, 0.837, 0.972, 1.189, 1.484, 1.806, 2.154, 2.536, \
                  2.956");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.621, 0.636, 0.703, 0.83, 0.987, 1.172, 1.389, 1.642, 1.93, 2.255");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.4227, 0.4903, 0.6543, 0.8663, 1.111, 1.392, 1.717, 2.096, 2.54, 3.059",\
                 "0.4395, 0.5069, 0.6711, 0.883, 1.128, 1.409, 1.734, 2.113, 2.557, 3.076",\
                 "0.5, 0.5673, 0.7313, 0.9431, 1.188, 1.469, 1.794, 2.173, 2.617, 3.136",\
                 "0.602, 0.6697, 0.8341, 1.046, 1.292, 1.572, 1.897, 2.276, 2.72, 3.239",\
                 "0.6984, 0.7727, 0.9449, 1.16, 1.406, 1.687, 2.013, 2.392, 2.836, 3.355",\
                 "0.743, 0.8189, 0.9924, 1.207, 1.453, 1.735, 2.059, 2.439, 2.883, 3.401",\
                 "0.7442, 0.8206, 0.9942, 1.21, 1.456, 1.737, 2.062, 2.441, 2.885, 3.403",\
                 "0.7103, 0.7869, 0.9618, 1.178, 1.425, 1.706, 2.032, 2.411, 2.854, 3.373",\
                 "0.6406, 0.7183, 0.8953, 1.113, 1.36, 1.643, 1.968, 2.348, 2.791, 3.31",\
                 "0.5373, 0.6161, 0.7944, 1.013, 1.262, 1.545, 1.871, 2.251, 2.695, 3.214");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.4589, 0.5287, 0.6995, 0.9466, 1.29, 1.76, 2.376, 3.149, 4.097, 5.221",\
                 "0.4743, 0.5442, 0.715, 0.962, 1.306, 1.775, 2.391, 3.166, 4.111, 5.241",\
                 "0.5292, 0.599, 0.7698, 1.017, 1.361, 1.83, 2.445, 3.221, 4.167, 5.295",\
                 "0.6272, 0.6983, 0.8704, 1.118, 1.462, 1.932, 2.547, 3.321, 4.268, 5.392",\
                 "0.7283, 0.8103, 0.9967, 1.25, 1.595, 2.065, 2.68, 3.454, 4.401, 5.526",\
                 "0.7972, 0.8925, 1.102, 1.37, 1.72, 2.191, 2.805, 3.58, 4.525, 5.655",\
                 "0.8347, 0.9434, 1.178, 1.464, 1.822, 2.294, 2.909, 3.683, 4.628, 5.757",\
                 "0.839, 0.9618, 1.224, 1.531, 1.899, 2.374, 2.989, 3.763, 4.707, 5.834",\
                 "0.8078, 0.9451, 1.237, 1.569, 1.95, 2.429, 3.045, 3.819, 4.763, 5.888",\
                 "0.7387, 0.8907, 1.214, 1.575, 1.973, 2.459, 3.077, 3.85, 4.794, 5.92");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.2225, 0.2861, 0.443, 0.6488, 0.9102, 1.245, 1.684, 2.247, 2.955, 3.822",\
                 "0.2226, 0.2864, 0.4428, 0.6486, 0.9101, 1.245, 1.684, 2.247, 2.954, 3.822",\
                 "0.2219, 0.2861, 0.4429, 0.6489, 0.9102, 1.245, 1.684, 2.247, 2.956, 3.821",\
                 "0.2255, 0.288, 0.444, 0.6498, 0.91, 1.246, 1.685, 2.247, 2.957, 3.821",\
                 "0.26, 0.3202, 0.463, 0.6584, 0.9148, 1.251, 1.688, 2.248, 2.955, 3.823",\
                 "0.2732, 0.3306, 0.4684, 0.6642, 0.914, 1.248, 1.685, 2.247, 2.956, 3.818",\
                 "0.2772, 0.3332, 0.4706, 0.6632, 0.9176, 1.249, 1.685, 2.245, 2.954, 3.82",\
                 "0.28, 0.3366, 0.474, 0.6658, 0.9166, 1.251, 1.685, 2.248, 2.951, 3.814",\
                 "0.2848, 0.3408, 0.478, 0.6686, 0.9216, 1.254, 1.688, 2.248, 2.954, 3.814",\
                 "0.2896, 0.3456, 0.4822, 0.673, 0.9238, 1.258, 1.69, 2.252, 2.957, 3.822");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.2099, 0.2723, 0.4578, 0.802, 1.369, 2.194, 3.293, 4.678, 6.378, 8.389",\
                 "0.2092, 0.2715, 0.4579, 0.8017, 1.366, 2.194, 3.292, 4.682, 6.373, 8.403",\
                 "0.2092, 0.2722, 0.4581, 0.8016, 1.367, 2.19, 3.294, 4.682, 6.371, 8.405",\
                 "0.2161, 0.2774, 0.4598, 0.8026, 1.367, 2.193, 3.294, 4.678, 6.371, 8.392",\
                 "0.257, 0.3152, 0.4842, 0.8138, 1.372, 2.195, 3.294, 4.674, 6.379, 8.389",\
                 "0.3024, 0.3658, 0.5326, 0.8446, 1.383, 2.196, 3.29, 4.68, 6.368, 8.393",\
                 "0.3492, 0.4192, 0.5876, 0.8828, 1.405, 2.204, 3.297, 4.68, 6.373, 8.402",\
                 "0.3968, 0.4742, 0.6496, 0.9314, 1.43, 2.215, 3.298, 4.684, 6.38, 8.399",\
                 "0.4472, 0.5334, 0.7176, 0.9884, 1.466, 2.233, 3.306, 4.684, 6.377, 8.403",\
                 "0.4988, 0.5942, 0.7906, 1.059, 1.511, 2.256, 3.318, 4.688, 6.378, 8.394");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.5719, 0.6423, 0.8087, 1.019, 1.262, 1.542, 1.866, 2.245, 2.688, 3.208",\
                 "0.583, 0.6534, 0.82, 1.031, 1.274, 1.553, 1.877, 2.256, 2.7, 3.219",\
                 "0.6391, 0.7094, 0.8761, 1.087, 1.331, 1.611, 1.935, 2.313, 2.757, 3.276",\
                 "0.7452, 0.8157, 0.9834, 1.197, 1.442, 1.722, 2.046, 2.425, 2.869, 3.388",\
                 "0.8808, 0.9549, 1.129, 1.347, 1.594, 1.877, 2.202, 2.582, 3.026, 3.545",\
                 "1.05, 1.127, 1.307, 1.532, 1.785, 2.071, 2.398, 2.779, 3.224, 3.743",\
                 "1.265, 1.345, 1.532, 1.764, 2.023, 2.313, 2.645, 3.028, 3.474, 3.994",\
                 "1.522, 1.609, 1.808, 2.052, 2.32, 2.618, 2.954, 3.341, 3.79, 4.311",\
                 "1.818, 1.912, 2.129, 2.393, 2.68, 2.99, 3.335, 3.727, 4.179, 4.704",\
                 "2.151, 2.255, 2.493, 2.784, 3.096, 3.427, 3.789, 4.193, 4.652, 5.18");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.5712, 0.6427, 0.8142, 1.061, 1.406, 1.876, 2.492, 3.266, 4.214, 5.34",\
                 "0.5811, 0.6524, 0.8239, 1.071, 1.416, 1.886, 2.502, 3.278, 4.222, 5.352",\
                 "0.6121, 0.6826, 0.8543, 1.103, 1.448, 1.919, 2.535, 3.31, 4.258, 5.383",\
                 "0.6438, 0.7148, 0.8873, 1.136, 1.483, 1.954, 2.571, 3.345, 4.293, 5.418",\
                 "0.6584, 0.7309, 0.9069, 1.159, 1.507, 1.978, 2.595, 3.372, 4.316, 5.445",\
                 "0.6618, 0.7366, 0.9159, 1.17, 1.52, 1.994, 2.611, 3.387, 4.334, 5.46",\
                 "0.648, 0.7278, 0.9155, 1.176, 1.528, 2.003, 2.621, 3.397, 4.344, 5.471",\
                 "0.6056, 0.6934, 0.8956, 1.169, 1.528, 2.005, 2.624, 3.402, 4.348, 5.475",\
                 "0.5293, 0.6259, 0.847, 1.139, 1.515, 2.002, 2.624, 3.401, 4.349, 5.477",\
                 "0.4191, 0.5253, 0.766, 1.081, 1.479, 1.984, 2.617, 3.397, 4.345, 5.474");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.2136, 0.2744, 0.4307, 0.6382, 0.9002, 1.24, 1.681, 2.244, 2.952, 3.821",\
                 "0.2126, 0.2745, 0.4304, 0.6379, 0.9008, 1.238, 1.68, 2.244, 2.954, 3.821",\
                 "0.214, 0.2759, 0.4311, 0.6378, 0.901, 1.239, 1.682, 2.245, 2.952, 3.821",\
                 "0.2206, 0.2822, 0.4366, 0.642, 0.9034, 1.241, 1.682, 2.246, 2.956, 3.821",\
                 "0.2398, 0.3016, 0.4534, 0.6528, 0.9102, 1.246, 1.684, 2.247, 2.955, 3.822",\
                 "0.2552, 0.3174, 0.4714, 0.673, 0.928, 1.259, 1.693, 2.251, 2.96, 3.823",\
                 "0.275, 0.3376, 0.4922, 0.6934, 0.947, 1.278, 1.709, 2.266, 2.967, 3.828",\
                 "0.3026, 0.3666, 0.5252, 0.728, 0.9792, 1.303, 1.731, 2.284, 2.982, 3.839",\
                 "0.3364, 0.4042, 0.5736, 0.7862, 1.036, 1.353, 1.771, 2.315, 3.003, 3.851",\
                 "0.3772, 0.4506, 0.634, 0.8652, 1.122, 1.436, 1.843, 2.37, 3.045, 3.878");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.03542, 0.06216, 0.156, 0.3353, 0.6145, 1.006, 1.522, 2.172, 2.965, 3.91");
          values("0.1914, 0.2545, 0.4447, 0.795, 1.367, 2.193, 3.294, 4.679, 6.38, 8.396",\
                 "0.1916, 0.255, 0.4451, 0.7952, 1.367, 2.194, 3.293, 4.675, 6.373, 8.405",\
                 "0.1938, 0.2588, 0.4474, 0.7962, 1.367, 2.193, 3.294, 4.678, 6.38, 8.392",\
                 "0.1988, 0.2616, 0.4502, 0.7982, 1.365, 2.191, 3.293, 4.683, 6.374, 8.392",\
                 "0.2062, 0.2706, 0.458, 0.8026, 1.366, 2.194, 3.294, 4.675, 6.377, 8.394",\
                 "0.2156, 0.2794, 0.4674, 0.8104, 1.374, 2.197, 3.294, 4.677, 6.377, 8.392",\
                 "0.2352, 0.2992, 0.4854, 0.8228, 1.381, 2.201, 3.299, 4.681, 6.378, 8.388",\
                 "0.2632, 0.3314, 0.5182, 0.8534, 1.399, 2.208, 3.303, 4.685, 6.385, 8.389",\
                 "0.2962, 0.3672, 0.5616, 0.9032, 1.443, 2.237, 3.311, 4.689, 6.378, 8.402",\
                 "0.3318, 0.4056, 0.6098, 0.9628, 1.513, 2.296, 3.35, 4.703, 6.386, 8.396");
        }
      }
    }
  }

