/*
 * 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_8) {
    area : 74.636800 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.0967, 0.09527, 0.09763, 0.1068, 0.1228, 0.147, 0.1802, 0.2249, \
                 0.2842, 0.3593");
        }

        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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.2014, 0.1996, 0.2018, 0.2141, 0.2394, 0.2795, 0.3366, 0.412, \
                 0.5071, 0.6228");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.06288, 0.06274, 0.06271, 0.06269, 0.06269, 0.06286, 0.06284, \
                 0.0628, 0.06278, 0.06278");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("-0.06252, -0.06254, -0.06254, -0.06252, -0.06244, -0.06264, -0.0626, \
                 -0.06265, -0.06265, -0.06268");
        }
      }
    }

    pin(Z) {
      capacitance : 0.01502 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 2.782 ;
      max_transition : 8.6 ;
      min_capacitance : 0.01602 ;
      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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.318, 0.3178, 0.3179, 0.3178, 0.3177, 0.3178, 0.3179, 0.318, 0.318, 0.318",\
                 "0.3184, 0.3185, 0.3185, 0.3183, 0.3184, 0.3184, 0.3185, 0.3185, 0.3185, 0.3185",\
                 "0.3244, 0.3244, 0.3243, 0.3243, 0.3243, 0.3244, 0.3244, 0.3245, 0.3245, 0.3245",\
                 "0.3371, 0.337, 0.337, 0.3368, 0.3368, 0.3369, 0.337, 0.337, 0.337, 0.3371",\
                 "0.3582, 0.3583, 0.3582, 0.3582, 0.3581, 0.3581, 0.3581, 0.3582, 0.3582, 0.3582",\
                 "0.3888, 0.389, 0.3888, 0.3888, 0.3888, 0.3888, 0.3888, 0.3888, 0.3888, 0.3888",\
                 "0.4296, 0.4297, 0.4295, 0.4294, 0.4294, 0.4295, 0.4296, 0.4295, 0.4295, 0.4295",\
                 "0.4808, 0.481, 0.4807, 0.4805, 0.4804, 0.4805, 0.4806, 0.4806, 0.4806, 0.4806",\
                 "0.5434, 0.5432, 0.5433, 0.5431, 0.543, 0.543, 0.543, 0.5431, 0.5432, 0.5433",\
                 "0.6175, 0.6174, 0.6174, 0.6171, 0.617, 0.6171, 0.6171, 0.6172, 0.6172, 0.6172");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.2793, 0.2798, 0.2798, 0.2802, 0.2814, 0.2848, 0.289, 0.295, 0.3011, 0.3313",\
                 "0.2789, 0.2788, 0.2788, 0.2797, 0.2807, 0.2838, 0.2867, 0.2927, 0.3005, 0.3313",\
                 "0.2806, 0.2809, 0.2808, 0.2814, 0.2827, 0.2865, 0.2917, 0.294, 0.3005, 0.333",\
                 "0.2905, 0.2913, 0.2911, 0.2919, 0.2936, 0.2967, 0.3003, 0.3056, 0.3114, 0.3447",\
                 "0.3115, 0.3116, 0.3111, 0.3144, 0.3147, 0.3181, 0.3217, 0.3263, 0.3359, 0.3735",\
                 "0.3469, 0.3468, 0.3474, 0.3463, 0.353, 0.3548, 0.357, 0.3603, 0.3689, 0.4166",\
                 "0.3974, 0.3976, 0.3983, 0.3972, 0.3989, 0.4076, 0.4108, 0.4138, 0.4181, 0.4733",\
                 "0.464, 0.4643, 0.4645, 0.4653, 0.4632, 0.4673, 0.4795, 0.4828, 0.4883, 0.5518",\
                 "0.5481, 0.5484, 0.5491, 0.5497, 0.548, 0.5485, 0.5557, 0.5709, 0.5806, 0.6771",\
                 "0.6504, 0.6506, 0.6511, 0.653, 0.6516, 0.6521, 0.653, 0.6626, 0.6999, 0.8368");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.5247, 0.5313, 0.5438, 0.5515, 0.555, 0.5569, 0.558, 0.5587, 0.559, 0.5593",\
                 "0.5192, 0.526, 0.5383, 0.5457, 0.5492, 0.5511, 0.5522, 0.5529, 0.5533, 0.5536",\
                 "0.5214, 0.5266, 0.5374, 0.5451, 0.5492, 0.5515, 0.5528, 0.5536, 0.5541, 0.5544",\
                 "0.5505, 0.5524, 0.5589, 0.5659, 0.5706, 0.5735, 0.5753, 0.5763, 0.5771, 0.5776",\
                 "0.6109, 0.61, 0.6133, 0.6183, 0.6231, 0.6265, 0.6286, 0.6301, 0.631, 0.6317",\
                 "0.7037, 0.7012, 0.7016, 0.7056, 0.7102, 0.7139, 0.7165, 0.7181, 0.7195, 0.7204",\
                 "0.834, 0.8305, 0.8291, 0.8315, 0.8356, 0.8398, 0.8426, 0.8445, 0.846, 0.8471",\
                 "1.005, 1.001, 0.9978, 0.9994, 1.003, 1.006, 1.01, 1.012, 1.014, 1.015",\
                 "1.22, 1.215, 1.21, 1.21, 1.213, 1.216, 1.22, 1.222, 1.224, 1.226",\
                 "1.481, 1.475, 1.468, 1.467, 1.469, 1.472, 1.475, 1.478, 1.48, 1.482");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.2727, 0.2811, 0.2934, 0.3015, 0.3057, 0.3108, 0.3161, 0.3227, 0.3288, 0.3544",\
                 "0.2685, 0.2766, 0.2881, 0.2957, 0.3008, 0.3062, 0.3118, 0.318, 0.3249, 0.3516",\
                 "0.2619, 0.2686, 0.2776, 0.287, 0.2935, 0.2996, 0.3065, 0.3137, 0.3196, 0.3478",\
                 "0.2698, 0.275, 0.2842, 0.2935, 0.3018, 0.3085, 0.3177, 0.3213, 0.3288, 0.3651",\
                 "0.3031, 0.3072, 0.3135, 0.3257, 0.3321, 0.3405, 0.3491, 0.3537, 0.3655, 0.3987",\
                 "0.3678, 0.3712, 0.3781, 0.3841, 0.3975, 0.4042, 0.4114, 0.416, 0.4249, 0.4707",\
                 "0.4697, 0.4726, 0.4776, 0.4833, 0.4905, 0.5049, 0.5124, 0.5167, 0.5273, 0.5805",\
                 "0.611, 0.6131, 0.618, 0.6221, 0.6301, 0.6365, 0.6556, 0.6616, 0.6703, 0.7344",\
                 "0.7939, 0.7958, 0.7991, 0.8023, 0.807, 0.8134, 0.8249, 0.8418, 0.8554, 0.9485",\
                 "1.019, 1.021, 1.025, 1.027, 1.03, 1.034, 1.043, 1.054, 1.091, 1.235");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.506, 0.524, 0.59, 0.726, 0.941, 1.197, 1.49, 1.829, 2.215, 2.647");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.406, 0.419, 0.489, 0.61, 0.763, 0.957, 1.19, 1.462, 1.773, 2.127");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.2493, 0.3119, 0.4566, 0.6451, 0.8752, 1.158, 1.51, 1.943, 2.469, 3.095",\
                 "0.2651, 0.3278, 0.4722, 0.661, 0.8913, 1.174, 1.525, 1.959, 2.484, 3.11",\
                 "0.3213, 0.3837, 0.528, 0.7168, 0.9466, 1.23, 1.581, 2.014, 2.54, 3.166",\
                 "0.394, 0.463, 0.6141, 0.8051, 1.036, 1.32, 1.671, 2.104, 2.63, 3.256",\
                 "0.4274, 0.5014, 0.6561, 0.848, 1.079, 1.362, 1.713, 2.147, 2.672, 3.298",\
                 "0.4174, 0.4919, 0.6474, 0.8392, 1.07, 1.353, 1.704, 2.137, 2.663, 3.289",\
                 "0.3665, 0.442, 0.5986, 0.791, 1.023, 1.306, 1.657, 2.09, 2.615, 3.24",\
                 "0.2776, 0.3543, 0.5115, 0.7051, 0.937, 1.221, 1.572, 2.005, 2.53, 3.155",\
                 "0.1494, 0.2266, 0.386, 0.5808, 0.8132, 1.097, 1.448, 1.882, 2.407, 3.032",\
                 "-0.0217, 0.0569, 0.2179, 0.414, 0.6474, 0.9317, 1.283, 1.716, 2.242, 2.867");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.271, 0.3342, 0.4832, 0.7163, 1.067, 1.556, 2.2, 3.013, 4.003, 5.187",\
                 "0.2852, 0.3484, 0.4974, 0.7306, 1.081, 1.57, 2.215, 3.028, 4.019, 5.203",\
                 "0.3352, 0.3987, 0.5478, 0.781, 1.131, 1.62, 2.266, 3.076, 4.069, 5.249",\
                 "0.3997, 0.4719, 0.628, 0.8626, 1.213, 1.702, 2.347, 3.16, 4.152, 5.335",\
                 "0.4349, 0.521, 0.6945, 0.9352, 1.286, 1.775, 2.419, 3.23, 4.225, 5.406",\
                 "0.4361, 0.5373, 0.7332, 0.9827, 1.335, 1.824, 2.468, 3.279, 4.271, 5.454",\
                 "0.399, 0.5163, 0.7395, 1.003, 1.357, 1.847, 2.49, 3.301, 4.292, 5.473",\
                 "0.3215, 0.4546, 0.7079, 0.9909, 1.352, 1.842, 2.485, 3.296, 4.286, 5.467",\
                 "0.2016, 0.3503, 0.6345, 0.9422, 1.312, 1.807, 2.452, 3.262, 4.251, 5.432",\
                 "0.0362, 0.2011, 0.5173, 0.8526, 1.235, 1.736, 2.384, 3.198, 4.186, 5.366");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.1261, 0.1862, 0.3314, 0.531, 0.8111, 1.207, 1.75, 2.455, 3.33, 4.374",\
                 "0.1259, 0.1862, 0.3313, 0.5306, 0.8108, 1.207, 1.751, 2.454, 3.327, 4.373",\
                 "0.1257, 0.1856, 0.3307, 0.5307, 0.8108, 1.207, 1.751, 2.455, 3.326, 4.377",\
                 "0.146, 0.2052, 0.3407, 0.5356, 0.814, 1.209, 1.751, 2.455, 3.327, 4.379",\
                 "0.1628, 0.2202, 0.3486, 0.5384, 0.814, 1.209, 1.751, 2.456, 3.329, 4.373",\
                 "0.1662, 0.2226, 0.3502, 0.5392, 0.8152, 1.208, 1.748, 2.452, 3.326, 4.377",\
                 "0.1686, 0.225, 0.352, 0.5404, 0.816, 1.209, 1.748, 2.45, 3.325, 4.372",\
                 "0.1716, 0.2276, 0.3546, 0.5432, 0.8172, 1.209, 1.75, 2.453, 3.323, 4.369",\
                 "0.1754, 0.2314, 0.3576, 0.5458, 0.8186, 1.212, 1.749, 2.452, 3.324, 4.371",\
                 "0.18, 0.2358, 0.3612, 0.5488, 0.8212, 1.212, 1.751, 2.455, 3.327, 4.371");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.1251, 0.1838, 0.3676, 0.7378, 1.344, 2.209, 3.344, 4.776, 6.534, 8.609",\
                 "0.1251, 0.1839, 0.3675, 0.7376, 1.345, 2.209, 3.345, 4.776, 6.522, 8.612",\
                 "0.126, 0.185, 0.3677, 0.7382, 1.345, 2.207, 3.35, 4.775, 6.523, 8.612",\
                 "0.1503, 0.2042, 0.3749, 0.7394, 1.345, 2.208, 3.345, 4.776, 6.524, 8.611",\
                 "0.1812, 0.2396, 0.4008, 0.748, 1.346, 2.208, 3.343, 4.778, 6.526, 8.606",\
                 "0.2148, 0.2808, 0.435, 0.7616, 1.35, 2.21, 3.342, 4.773, 6.531, 8.609",\
                 "0.2492, 0.3262, 0.4814, 0.7868, 1.358, 2.21, 3.343, 4.772, 6.529, 8.606",\
                 "0.284, 0.3734, 0.5366, 0.8218, 1.372, 2.216, 3.344, 4.773, 6.525, 8.602",\
                 "0.3198, 0.42, 0.5976, 0.8682, 1.397, 2.229, 3.35, 4.775, 6.518, 8.615",\
                 "0.3562, 0.4688, 0.6618, 0.9254, 1.427, 2.251, 3.369, 4.783, 6.524, 8.601");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.3373, 0.4034, 0.5516, 0.7411, 0.9711, 1.254, 1.606, 2.039, 2.565, 3.191",\
                 "0.3506, 0.4168, 0.5651, 0.7546, 0.9846, 1.268, 1.619, 2.052, 2.578, 3.204",\
                 "0.408, 0.474, 0.6225, 0.8127, 1.043, 1.326, 1.678, 2.111, 2.637, 3.263",\
                 "0.5049, 0.5732, 0.7252, 0.9178, 1.15, 1.434, 1.785, 2.219, 2.745, 3.37",\
                 "0.6362, 0.7062, 0.8634, 1.062, 1.297, 1.582, 1.934, 2.368, 2.893, 3.519",\
                 "0.8107, 0.8855, 1.05, 1.253, 1.491, 1.78, 2.133, 2.567, 3.094, 3.719",\
                 "1.021, 1.104, 1.285, 1.502, 1.748, 2.04, 2.396, 2.831, 3.358, 3.984",\
                 "1.263, 1.356, 1.559, 1.803, 2.069, 2.371, 2.731, 3.168, 3.696, 4.322",\
                 "1.537, 1.642, 1.869, 2.145, 2.446, 2.772, 3.144, 3.585, 4.113, 4.74",\
                 "1.844, 1.96, 2.212, 2.525, 2.868, 3.231, 3.629, 4.082, 4.614, 5.242");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.3472, 0.4114, 0.5618, 0.7963, 1.147, 1.637, 2.282, 3.094, 4.083, 5.267",\
                 "0.3567, 0.4208, 0.5712, 0.8056, 1.157, 1.647, 2.292, 3.104, 4.094, 5.278",\
                 "0.3837, 0.4476, 0.5982, 0.8333, 1.185, 1.676, 2.321, 3.133, 4.122, 5.306",\
                 "0.4034, 0.4686, 0.6212, 0.8573, 1.209, 1.7, 2.347, 3.157, 4.15, 5.332",\
                 "0.4115, 0.4795, 0.6348, 0.8731, 1.226, 1.717, 2.363, 3.175, 4.167, 5.346",\
                 "0.3979, 0.473, 0.6383, 0.8806, 1.234, 1.726, 2.372, 3.185, 4.174, 5.355",\
                 "0.3523, 0.4367, 0.6174, 0.8729, 1.232, 1.725, 2.37, 3.183, 4.175, 5.358",\
                 "0.2741, 0.3686, 0.5667, 0.8397, 1.215, 1.715, 2.361, 3.174, 4.165, 5.345",\
                 "0.1625, 0.2682, 0.4844, 0.7762, 1.171, 1.69, 2.344, 3.157, 4.148, 5.33",\
                 "0.0169, 0.1348, 0.3705, 0.6811, 1.097, 1.638, 2.313, 3.134, 4.126, 5.307");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.1261, 0.1852, 0.328, 0.5283, 0.8085, 1.206, 1.75, 2.455, 3.328, 4.374",\
                 "0.1265, 0.1852, 0.3285, 0.5282, 0.8088, 1.206, 1.75, 2.454, 3.326, 4.374",\
                 "0.128, 0.1872, 0.3299, 0.5291, 0.8092, 1.207, 1.75, 2.454, 3.326, 4.374",\
                 "0.1383, 0.1988, 0.3384, 0.5346, 0.812, 1.209, 1.751, 2.456, 3.33, 4.375",\
                 "0.1464, 0.21, 0.3526, 0.5462, 0.8208, 1.212, 1.753, 2.457, 3.328, 4.378",\
                 "0.162, 0.2274, 0.3672, 0.5592, 0.8312, 1.221, 1.759, 2.458, 3.327, 4.376",\
                 "0.1866, 0.2578, 0.4024, 0.59, 0.8516, 1.234, 1.766, 2.463, 3.331, 4.375",\
                 "0.2146, 0.2936, 0.4566, 0.6564, 0.905, 1.266, 1.782, 2.471, 3.335, 4.378",\
                 "0.244, 0.3332, 0.5162, 0.7488, 1.004, 1.342, 1.826, 2.491, 3.344, 4.383",\
                 "0.2742, 0.3744, 0.5824, 0.8552, 1.138, 1.471, 1.923, 2.546, 3.368, 4.395");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01602, 0.03511, 0.1021, 0.2301, 0.4294, 0.7091, 1.077, 1.541, 2.107, 2.782");
          values("0.1162, 0.1754, 0.3622, 0.7371, 1.343, 2.207, 3.347, 4.783, 6.532, 8.61",\
                 "0.1166, 0.1755, 0.3624, 0.7354, 1.345, 2.207, 3.346, 4.776, 6.533, 8.608",\
                 "0.1186, 0.1782, 0.3635, 0.7354, 1.345, 2.206, 3.347, 4.783, 6.531, 8.611",\
                 "0.1239, 0.183, 0.3664, 0.7364, 1.345, 2.208, 3.342, 4.776, 6.522, 8.609",\
                 "0.1322, 0.19, 0.3728, 0.7412, 1.346, 2.208, 3.348, 4.78, 6.525, 8.619",\
                 "0.15, 0.209, 0.3892, 0.7476, 1.35, 2.21, 3.342, 4.78, 6.519, 8.615",\
                 "0.173, 0.2358, 0.4198, 0.7748, 1.359, 2.21, 3.344, 4.777, 6.528, 8.602",\
                 "0.1988, 0.2646, 0.4548, 0.8174, 1.4, 2.229, 3.348, 4.774, 6.527, 8.613",\
                 "0.2278, 0.297, 0.493, 0.8676, 1.461, 2.283, 3.373, 4.779, 6.519, 8.616",\
                 "0.261, 0.3344, 0.533, 0.9164, 1.53, 2.365, 3.438, 4.814, 6.528, 8.6");
        }
      }
    }
  }

