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

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.4459, 0.4469, 0.4774, 0.5593, 0.7036, 0.9146, 1.21, 1.634, 2.181, \
                  2.851");
        }

        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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.7128, 0.7148, 0.7552, 0.8753, 1.102, 1.447, 1.924, 2.542, 3.312, \
                  4.239");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.2917, 0.2905, 0.2902, 0.2899, 0.2903, 0.29, 0.2904, 0.2899, \
                  0.2903, 0.2907");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.2887, -0.2891, -0.2897, -0.2892, -0.2894, -0.2888, -0.2898, \
                  -0.2891, -0.2899, -0.2898");
        }
      }
    }

    pin(Z) {
      capacitance : 0.01945 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 2.837 ;
      max_transition : 3.6 ;
      min_capacitance : 0.02045 ;
      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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("1.307, 1.3, 1.293, 1.29, 1.289, 1.289, 1.289, 1.288, 1.288, 1.288",\
                 "1.311, 1.304, 1.296, 1.294, 1.293, 1.292, 1.292, 1.292, 1.292, 1.292",\
                 "1.35, 1.343, 1.337, 1.335, 1.334, 1.334, 1.334, 1.334, 1.333, 1.333",\
                 "1.441, 1.439, 1.435, 1.434, 1.434, 1.434, 1.434, 1.435, 1.435, 1.435",\
                 "1.608, 1.608, 1.607, 1.606, 1.606, 1.606, 1.606, 1.606, 1.606, 1.606",\
                 "1.853, 1.853, 1.853, 1.853, 1.853, 1.854, 1.853, 1.854, 1.854, 1.854",\
                 "2.183, 2.184, 2.183, 2.183, 2.183, 2.184, 2.183, 2.183, 2.184, 2.183",\
                 "2.599, 2.598, 2.598, 2.598, 2.597, 2.598, 2.598, 2.599, 2.599, 2.599",\
                 "3.103, 3.105, 3.106, 3.105, 3.105, 3.105, 3.105, 3.106, 3.106, 3.106",\
                 "3.703, 3.706, 3.706, 3.706, 3.706, 3.706, 3.707, 3.707, 3.707, 3.708");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("1.142, 1.143, 1.143, 1.144, 1.147, 1.156, 1.17, 1.183, 1.196, 1.225",\
                 "1.144, 1.142, 1.145, 1.145, 1.15, 1.157, 1.165, 1.19, 1.196, 1.219",\
                 "1.172, 1.173, 1.172, 1.174, 1.177, 1.186, 1.194, 1.218, 1.229, 1.252",\
                 "1.269, 1.271, 1.27, 1.273, 1.276, 1.284, 1.292, 1.311, 1.323, 1.351",\
                 "1.461, 1.459, 1.463, 1.473, 1.475, 1.481, 1.497, 1.513, 1.537, 1.549",\
                 "1.762, 1.762, 1.764, 1.766, 1.779, 1.786, 1.796, 1.812, 1.829, 1.852",\
                 "2.184, 2.184, 2.188, 2.188, 2.188, 2.212, 2.225, 2.24, 2.258, 2.275",\
                 "2.732, 2.736, 2.739, 2.738, 2.741, 2.749, 2.781, 2.802, 2.813, 2.831",\
                 "3.416, 3.42, 3.427, 3.43, 3.427, 3.423, 3.444, 3.488, 3.517, 3.535",\
                 "4.242, 4.248, 4.253, 4.261, 4.26, 4.252, 4.262, 4.293, 4.337, 4.376");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("2.209, 2.196, 2.199, 2.211, 2.219, 2.224, 2.228, 2.231, 2.232, 2.233",\
                 "2.202, 2.189, 2.187, 2.198, 2.206, 2.211, 2.215, 2.217, 2.218, 2.219",\
                 "2.254, 2.237, 2.226, 2.237, 2.243, 2.25, 2.254, 2.256, 2.257, 2.258",\
                 "2.478, 2.45, 2.422, 2.421, 2.426, 2.432, 2.436, 2.439, 2.441, 2.442",\
                 "2.927, 2.889, 2.838, 2.818, 2.815, 2.819, 2.823, 2.825, 2.827, 2.828",\
                 "3.632, 3.585, 3.508, 3.468, 3.454, 3.451, 3.451, 3.453, 3.453, 3.454",\
                 "4.624, 4.566, 4.464, 4.397, 4.365, 4.352, 4.344, 4.342, 4.34, 4.34",\
                 "5.92, 5.857, 5.727, 5.624, 5.567, 5.538, 5.522, 5.512, 5.507, 5.504",\
                 "7.536, 7.465, 7.313, 7.172, 7.084, 7.03, 7.001, 6.982, 6.969, 6.959",\
                 "9.486, 9.408, 9.234, 9.058, 8.932, 8.85, 8.797, 8.765, 8.741, 8.725");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("1.092, 1.109, 1.163, 1.212, 1.25, 1.274, 1.297, 1.318, 1.345, 1.358",\
                 "1.081, 1.099, 1.149, 1.199, 1.236, 1.262, 1.285, 1.306, 1.323, 1.358",\
                 "1.094, 1.105, 1.143, 1.19, 1.227, 1.257, 1.285, 1.305, 1.334, 1.347",\
                 "1.225, 1.23, 1.25, 1.289, 1.325, 1.356, 1.384, 1.414, 1.45, 1.468",\
                 "1.548, 1.543, 1.548, 1.581, 1.611, 1.641, 1.673, 1.706, 1.736, 1.754",\
                 "2.118, 2.102, 2.086, 2.09, 2.124, 2.151, 2.182, 2.211, 2.247, 2.271",\
                 "2.96, 2.93, 2.893, 2.873, 2.878, 2.913, 2.943, 2.969, 3.001, 3.03",\
                 "4.089, 4.045, 3.985, 3.94, 3.92, 3.938, 3.977, 4.005, 4.029, 4.047",\
                 "5.52, 5.461, 5.368, 5.299, 5.258, 5.242, 5.259, 5.296, 5.327, 5.351",\
                 "7.258, 7.184, 7.058, 6.961, 6.903, 6.86, 6.842, 6.869, 6.917, 6.94");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.28, 0.286, 0.309, 0.361, 0.447, 0.562, 0.698, 0.85, 1.019, 1.205");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.271, 0.277, 0.302, 0.351, 0.417, 0.499, 0.594, 0.702, 0.825, \
                  0.964");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.12, 0.1459, 0.2082, 0.296, 0.4087, 0.5494, 0.724, 0.9391, 1.2, 1.509",\
                 "0.1244, 0.1502, 0.2124, 0.3001, 0.4128, 0.5535, 0.7281, 0.9431, 1.204, 1.514",\
                 "0.1412, 0.1669, 0.2291, 0.3168, 0.4294, 0.5701, 0.7447, 0.9597, 1.22, 1.53",\
                 "0.1606, 0.1887, 0.2537, 0.3423, 0.4554, 0.5963, 0.7711, 0.986, 1.247, 1.557",\
                 "0.1674, 0.1988, 0.2697, 0.3627, 0.4775, 0.6189, 0.7938, 1.009, 1.269, 1.579",\
                 "0.1597, 0.194, 0.2692, 0.3644, 0.4798, 0.6213, 0.796, 1.011, 1.271, 1.581",\
                 "0.1375, 0.1746, 0.2534, 0.3499, 0.4663, 0.6081, 0.7831, 0.9978, 1.258, 1.568",\
                 "0.0991, 0.14, 0.2224, 0.3208, 0.4377, 0.5799, 0.755, 0.9699, 1.23, 1.54",\
                 "0.0439, 0.0889, 0.1762, 0.2768, 0.3947, 0.5375, 0.7128, 0.9277, 1.188, 1.498",\
                 "-0.0296, 0.0204, 0.1132, 0.2164, 0.3358, 0.4792, 0.6549, 0.87, 1.13, 1.44");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.1356, 0.1665, 0.2394, 0.3421, 0.485, 0.6806, 0.9375, 1.261, 1.656, 2.126",\
                 "0.1391, 0.17, 0.2428, 0.3455, 0.4885, 0.6842, 0.941, 1.264, 1.659, 2.128",\
                 "0.1522, 0.1834, 0.2565, 0.3593, 0.5023, 0.698, 0.9545, 1.278, 1.672, 2.144",\
                 "0.1659, 0.2009, 0.2783, 0.3826, 0.5258, 0.7215, 0.9783, 1.302, 1.697, 2.166",\
                 "0.1654, 0.2067, 0.2951, 0.4051, 0.5498, 0.7457, 1.002, 1.326, 1.721, 2.192",\
                 "0.1459, 0.195, 0.2974, 0.4178, 0.5664, 0.7632, 1.02, 1.343, 1.738, 2.208",\
                 "0.1046, 0.1633, 0.2817, 0.4168, 0.5729, 0.7725, 1.03, 1.353, 1.747, 2.217",\
                 "0.0382, 0.1097, 0.246, 0.3982, 0.5643, 0.7693, 1.03, 1.354, 1.749, 2.219",\
                 "-0.0568, 0.031, 0.1888, 0.3606, 0.5398, 0.7513, 1.017, 1.345, 1.741, 2.211",\
                 "-0.1843, -0.0761, 0.1089, 0.3012, 0.4971, 0.7165, 0.988, 1.322, 1.723, 2.195");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.06466, 0.0874, 0.1527, 0.258, 0.4057, 0.6088, 0.8833, 1.236, 1.674, 2.201",\
                 "0.06434, 0.08718, 0.1526, 0.2578, 0.406, 0.6093, 0.883, 1.236, 1.674, 2.201",\
                 "0.06384, 0.08674, 0.1523, 0.2577, 0.4053, 0.6093, 0.8828, 1.236, 1.675, 2.201",\
                 "0.07154, 0.09396, 0.1561, 0.2594, 0.4066, 0.6094, 0.8835, 1.235, 1.673, 2.201",\
                 "0.08144, 0.1049, 0.1696, 0.2692, 0.4113, 0.6116, 0.884, 1.236, 1.674, 2.198",\
                 "0.09212, 0.1147, 0.1774, 0.2735, 0.4132, 0.612, 0.8832, 1.237, 1.674, 2.201",\
                 "0.1039, 0.1249, 0.1834, 0.2772, 0.416, 0.614, 0.8832, 1.235, 1.673, 2.2",\
                 "0.1178, 0.1366, 0.1898, 0.281, 0.4186, 0.616, 0.8854, 1.235, 1.671, 2.197",\
                 "0.1328, 0.15, 0.198, 0.2856, 0.4214, 0.617, 0.8864, 1.237, 1.672, 2.197",\
                 "0.1512, 0.1664, 0.208, 0.291, 0.4252, 0.6196, 0.8874, 1.237, 1.673, 2.197");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.07374, 0.1035, 0.1851, 0.3317, 0.5743, 0.9287, 1.399, 1.992, 2.716, 3.582",\
                 "0.07328, 0.1036, 0.1857, 0.3319, 0.5743, 0.9282, 1.399, 1.992, 2.717, 3.579",\
                 "0.0744, 0.1041, 0.1856, 0.3318, 0.574, 0.9284, 1.398, 1.992, 2.717, 3.575",\
                 "0.0857, 0.1142, 0.1915, 0.334, 0.5751, 0.9286, 1.399, 1.992, 2.717, 3.58",\
                 "0.1037, 0.1333, 0.2099, 0.3436, 0.578, 0.9293, 1.399, 1.992, 2.717, 3.579",\
                 "0.1272, 0.1576, 0.2373, 0.3629, 0.5859, 0.9308, 1.4, 1.991, 2.717, 3.58",\
                 "0.1583, 0.1871, 0.2702, 0.3922, 0.6034, 0.9394, 1.402, 1.992, 2.713, 3.581",\
                 "0.2008, 0.225, 0.3072, 0.43, 0.6296, 0.9572, 1.412, 1.997, 2.716, 3.577",\
                 "0.2548, 0.2746, 0.3476, 0.475, 0.6624, 0.9802, 1.434, 2.012, 2.724, 3.585",\
                 "0.3162, 0.3384, 0.3962, 0.5258, 0.703, 1.008, 1.458, 2.04, 2.745, 3.593");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.1657, 0.1902, 0.2521, 0.3402, 0.4531, 0.5939, 0.7686, 0.9837, 1.244, 1.554",\
                 "0.1689, 0.1933, 0.2551, 0.3434, 0.4563, 0.5971, 0.7718, 0.9869, 1.247, 1.557",\
                 "0.189, 0.2132, 0.2747, 0.3629, 0.4759, 0.6167, 0.7915, 1.007, 1.267, 1.577",\
                 "0.2329, 0.257, 0.3187, 0.407, 0.5203, 0.6614, 0.8363, 1.051, 1.312, 1.622",\
                 "0.2964, 0.3231, 0.3881, 0.4787, 0.5935, 0.7353, 0.9105, 1.126, 1.386, 1.696",\
                 "0.3722, 0.4032, 0.4777, 0.5772, 0.698, 0.8429, 1.019, 1.235, 1.496, 1.806",\
                 "0.4589, 0.4947, 0.5809, 0.6946, 0.8306, 0.986, 1.167, 1.384, 1.645, 1.954",\
                 "0.5578, 0.5988, 0.6973, 0.8274, 0.9819, 1.158, 1.352, 1.574, 1.836, 2.146",\
                 "0.6702, 0.7166, 0.8282, 0.9753, 1.15, 1.348, 1.568, 1.805, 2.072, 2.383",\
                 "0.7972, 0.8491, 0.9748, 1.14, 1.335, 1.557, 1.802, 2.067, 2.35, 2.666");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.1752, 0.2066, 0.281, 0.3852, 0.5292, 0.7258, 0.9826, 1.307, 1.701, 2.173",\
                 "0.1766, 0.208, 0.2823, 0.3865, 0.5304, 0.727, 0.9842, 1.308, 1.703, 2.173",\
                 "0.1826, 0.2136, 0.2874, 0.3916, 0.5356, 0.7323, 0.9896, 1.314, 1.709, 2.18",\
                 "0.1903, 0.2213, 0.2955, 0.3998, 0.544, 0.7406, 0.9984, 1.322, 1.717, 2.187",\
                 "0.1925, 0.2269, 0.3067, 0.414, 0.5593, 0.7564, 1.014, 1.338, 1.732, 2.204",\
                 "0.1797, 0.219, 0.3104, 0.4291, 0.5802, 0.7782, 1.036, 1.36, 1.754, 2.226",\
                 "0.1508, 0.195, 0.2997, 0.4348, 0.5998, 0.8059, 1.065, 1.389, 1.784, 2.254",\
                 "0.106, 0.1552, 0.2739, 0.4272, 0.6099, 0.8315, 1.101, 1.427, 1.822, 2.293",\
                 "0.0458, 0.1, 0.2324, 0.405, 0.6081, 0.848, 1.134, 1.472, 1.87, 2.341",\
                 "-0.0307, 0.0292, 0.1752, 0.3675, 0.5927, 0.8533, 1.158, 1.514, 1.925, 2.399");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.0594, 0.08424, 0.1512, 0.2568, 0.405, 0.6091, 0.883, 1.236, 1.674, 2.199",\
                 "0.05968, 0.08434, 0.1513, 0.2573, 0.405, 0.6083, 0.8829, 1.236, 1.673, 2.201",\
                 "0.0599, 0.08516, 0.152, 0.2579, 0.4058, 0.6094, 0.8836, 1.237, 1.673, 2.201",\
                 "0.06334, 0.0878, 0.1542, 0.2593, 0.4066, 0.6103, 0.8821, 1.237, 1.674, 2.2",\
                 "0.07486, 0.09964, 0.1633, 0.2661, 0.4111, 0.6121, 0.8856, 1.236, 1.673, 2.201",\
                 "0.09226, 0.1208, 0.1889, 0.2892, 0.4284, 0.6232, 0.8896, 1.238, 1.675, 2.199",\
                 "0.1132, 0.1454, 0.223, 0.3332, 0.4746, 0.6548, 0.9056, 1.246, 1.678, 2.2",\
                 "0.137, 0.1742, 0.2624, 0.3854, 0.5424, 0.726, 0.9546, 1.269, 1.685, 2.202",\
                 "0.164, 0.2062, 0.3058, 0.4436, 0.6174, 0.8226, 1.051, 1.334, 1.715, 2.211",\
                 "0.1936, 0.2422, 0.3542, 0.5054, 0.6968, 0.9232, 1.174, 1.451, 1.796, 2.251");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02045, 0.03989, 0.1081, 0.2385, 0.4415, 0.7264, 1.101, 1.574, 2.15, 2.837");
          values("0.07042, 0.1003, 0.1816, 0.3299, 0.5732, 0.9273, 1.399, 1.992, 2.716, 3.577",\
                 "0.07006, 0.1002, 0.1819, 0.3298, 0.5739, 0.9273, 1.398, 1.992, 2.716, 3.582",\
                 "0.07058, 0.1001, 0.1822, 0.33, 0.5735, 0.9272, 1.398, 1.991, 2.714, 3.575",\
                 "0.07288, 0.103, 0.1845, 0.3314, 0.5737, 0.9269, 1.4, 1.992, 2.717, 3.58",\
                 "0.084, 0.1161, 0.1965, 0.3375, 0.5768, 0.9278, 1.399, 1.991, 2.715, 3.583",\
                 "0.1, 0.1364, 0.2238, 0.3621, 0.5884, 0.933, 1.399, 1.992, 2.716, 3.582",\
                 "0.1182, 0.1593, 0.2576, 0.404, 0.627, 0.953, 1.405, 1.993, 2.714, 3.582",\
                 "0.1388, 0.186, 0.298, 0.4538, 0.6806, 1.003, 1.436, 2.004, 2.72, 3.579",\
                 "0.1622, 0.2134, 0.3384, 0.5116, 0.7466, 1.073, 1.5, 2.047, 2.735, 3.581",\
                 "0.1884, 0.2446, 0.382, 0.5714, 0.82, 1.15, 1.584, 2.124, 2.788, 3.608");
        }
      }
    }
  }

