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

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.4196, 0.417, 0.4211, 0.4435, 0.4907, 0.5666, 0.6739, 0.8159, \
                  0.9948, 1.212");
        }

        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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.2033, 0.2012, 0.2047, 0.2213, 0.2521, 0.2988, 0.3619, 0.4444, \
                  0.5539, 0.6941");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.3364, 0.333, 0.3368, 0.3638, 0.4174, 0.5011, 0.6175, 0.7684, \
                  0.9563, 1.183");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.1121, 0.1105, 0.1141, 0.1331, 0.1755, 0.2456, 0.3458, 0.4777, \
                  0.6432, 0.843");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.01537 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.917 ;
      max_transition : 7 ;
      min_capacitance : 0.01637 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.6378, 0.6377, 0.6374, 0.6373, 0.6373, 0.6375, 0.6377, 0.6378, 0.6378, 0.6378",\
                 "0.6379, 0.6376, 0.6373, 0.6374, 0.6372, 0.6373, 0.6375, 0.6376, 0.6377, 0.6376",\
                 "0.6468, 0.6465, 0.6463, 0.6462, 0.6462, 0.6463, 0.6464, 0.6466, 0.6466, 0.6467",\
                 "0.6699, 0.6695, 0.6693, 0.6691, 0.669, 0.6692, 0.6693, 0.6694, 0.6695, 0.6695",\
                 "0.7091, 0.709, 0.709, 0.7086, 0.7085, 0.7086, 0.7088, 0.7088, 0.7089, 0.7089",\
                 "0.7665, 0.767, 0.7667, 0.7664, 0.7664, 0.7663, 0.7664, 0.7664, 0.7665, 0.7665",\
                 "0.8445, 0.8445, 0.8444, 0.8441, 0.8442, 0.8443, 0.8443, 0.8443, 0.8443, 0.8443",\
                 "0.9433, 0.943, 0.9428, 0.9425, 0.9424, 0.9424, 0.9426, 0.9428, 0.9427, 0.9426",\
                 "1.063, 1.063, 1.063, 1.063, 1.063, 1.063, 1.063, 1.063, 1.063, 1.063",\
                 "1.206, 1.206, 1.206, 1.206, 1.206, 1.206, 1.206, 1.206, 1.206, 1.206");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.5488, 0.5502, 0.5501, 0.5496, 0.5517, 0.5563, 0.5611, 0.5691, 0.5725, 0.5895",\
                 "0.5476, 0.5491, 0.5481, 0.5481, 0.5503, 0.5554, 0.5602, 0.5682, 0.5711, 0.5882",\
                 "0.5508, 0.5508, 0.5517, 0.551, 0.553, 0.5577, 0.5629, 0.5709, 0.5752, 0.5939",\
                 "0.5679, 0.5676, 0.5684, 0.5677, 0.5706, 0.5743, 0.58, 0.5871, 0.5914, 0.607",\
                 "0.6056, 0.6066, 0.6081, 0.6095, 0.6111, 0.6148, 0.6219, 0.6267, 0.6381, 0.6567",\
                 "0.6701, 0.6705, 0.671, 0.6712, 0.6768, 0.6805, 0.6849, 0.6933, 0.7002, 0.7163",\
                 "0.7643, 0.7652, 0.7658, 0.7632, 0.7663, 0.7764, 0.7821, 0.786, 0.792, 0.8131",\
                 "0.8898, 0.8904, 0.8902, 0.8924, 0.8883, 0.8961, 0.9112, 0.9156, 0.9252, 0.9407",\
                 "1.049, 1.049, 1.05, 1.051, 1.049, 1.05, 1.059, 1.079, 1.088, 1.115",\
                 "1.242, 1.242, 1.244, 1.246, 1.245, 1.242, 1.245, 1.261, 1.284, 1.336");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("1.06, 1.065, 1.082, 1.096, 1.106, 1.111, 1.114, 1.116, 1.118, 1.118",\
                 "1.058, 1.063, 1.08, 1.095, 1.104, 1.109, 1.113, 1.115, 1.116, 1.117",\
                 "1.062, 1.067, 1.083, 1.098, 1.107, 1.112, 1.115, 1.117, 1.119, 1.12",\
                 "1.085, 1.09, 1.105, 1.119, 1.129, 1.134, 1.138, 1.14, 1.141, 1.142",\
                 "1.137, 1.141, 1.154, 1.169, 1.178, 1.184, 1.187, 1.189, 1.191, 1.192",\
                 "1.223, 1.226, 1.238, 1.25, 1.26, 1.266, 1.27, 1.272, 1.274, 1.274",\
                 "1.344, 1.346, 1.356, 1.368, 1.377, 1.384, 1.387, 1.39, 1.392, 1.393",\
                 "1.502, 1.504, 1.512, 1.523, 1.532, 1.538, 1.542, 1.545, 1.547, 1.548",\
                 "1.7, 1.7, 1.706, 1.716, 1.724, 1.731, 1.735, 1.738, 1.74, 1.741",\
                 "1.937, 1.936, 1.94, 1.949, 1.957, 1.964, 1.968, 1.971, 1.973, 1.975");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.9909, 0.9991, 1.016, 1.034, 1.049, 1.061, 1.071, 1.08, 1.093, 1.113",\
                 "0.9872, 0.9957, 1.013, 1.031, 1.045, 1.058, 1.068, 1.077, 1.09, 1.109",\
                 "0.9907, 0.9991, 1.016, 1.034, 1.049, 1.06, 1.071, 1.08, 1.093, 1.114",\
                 "1.02, 1.029, 1.045, 1.062, 1.077, 1.089, 1.101, 1.108, 1.122, 1.144",\
                 "1.079, 1.087, 1.103, 1.119, 1.134, 1.146, 1.158, 1.169, 1.177, 1.197",\
                 "1.173, 1.18, 1.196, 1.214, 1.228, 1.241, 1.253, 1.261, 1.274, 1.294",\
                 "1.306, 1.312, 1.325, 1.341, 1.358, 1.37, 1.381, 1.392, 1.402, 1.428",\
                 "1.478, 1.484, 1.498, 1.509, 1.525, 1.544, 1.556, 1.565, 1.575, 1.608",\
                 "1.694, 1.699, 1.711, 1.724, 1.736, 1.752, 1.772, 1.785, 1.794, 1.839",\
                 "1.956, 1.959, 1.97, 1.983, 1.994, 2.005, 2.023, 2.046, 2.062, 2.146");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.59, 0.606, 0.656, 0.76, 0.934, 1.163, 1.424, 1.722, 2.057, 2.426");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.538, 0.549, 0.602, 0.703, 0.835, 1, 1.197, 1.422, 1.676, 1.959");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.3081, 0.3627, 0.498, 0.6828, 0.9078, 1.179, 1.508, 1.905, 2.383, 2.949",\
                 "0.3189, 0.3736, 0.5088, 0.6935, 0.9186, 1.19, 1.519, 1.916, 2.393, 2.959",\
                 "0.3617, 0.4162, 0.551, 0.7356, 0.9609, 1.232, 1.561, 1.958, 2.436, 3.002",\
                 "0.431, 0.4869, 0.6227, 0.8078, 1.033, 1.304, 1.633, 2.03, 2.508, 3.074",\
                 "0.4833, 0.5457, 0.6923, 0.8826, 1.11, 1.382, 1.711, 2.108, 2.586, 3.152",\
                 "0.5046, 0.5704, 0.7211, 0.9128, 1.14, 1.412, 1.741, 2.138, 2.615, 3.182",\
                 "0.4947, 0.5621, 0.715, 0.907, 1.135, 1.407, 1.736, 2.133, 2.61, 3.176",\
                 "0.455, 0.5237, 0.6771, 0.8704, 1.099, 1.372, 1.7, 2.097, 2.575, 3.14",\
                 "0.3852, 0.4548, 0.6107, 0.805, 1.035, 1.308, 1.636, 2.034, 2.511, 3.076",\
                 "0.2839, 0.355, 0.5128, 0.7089, 0.9391, 1.213, 1.542, 1.94, 2.417, 2.982");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.3437, 0.4049, 0.5497, 0.7559, 1.042, 1.433, 1.944, 2.589, 3.378, 4.314",\
                 "0.3537, 0.4147, 0.5599, 0.7659, 1.052, 1.443, 1.954, 2.599, 3.388, 4.325",\
                 "0.3907, 0.4517, 0.5968, 0.8033, 1.089, 1.48, 1.992, 2.636, 3.423, 4.362",\
                 "0.4514, 0.5154, 0.6632, 0.8702, 1.156, 1.547, 2.059, 2.704, 3.492, 4.429",\
                 "0.499, 0.5734, 0.7366, 0.9504, 1.238, 1.629, 2.141, 2.786, 3.574, 4.511",\
                 "0.5196, 0.6057, 0.7899, 1.016, 1.309, 1.7, 2.212, 2.856, 3.643, 4.584",\
                 "0.5095, 0.608, 0.818, 1.062, 1.361, 1.754, 2.266, 2.911, 3.697, 4.637",\
                 "0.4668, 0.578, 0.8155, 1.083, 1.394, 1.79, 2.302, 2.947, 3.733, 4.67",\
                 "0.3892, 0.5135, 0.7794, 1.074, 1.4, 1.804, 2.32, 2.964, 3.75, 4.688",\
                 "0.2766, 0.4138, 0.7085, 1.034, 1.379, 1.792, 2.313, 2.961, 3.748, 4.685");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.1505, 0.2019, 0.3382, 0.5371, 0.8027, 1.162, 1.645, 2.272, 3.054, 4.003",\
                 "0.1503, 0.2018, 0.3384, 0.5372, 0.8028, 1.162, 1.644, 2.273, 3.057, 4.003",\
                 "0.1497, 0.2014, 0.3378, 0.5365, 0.8019, 1.162, 1.646, 2.274, 3.058, 4.003",\
                 "0.1563, 0.2054, 0.3391, 0.5382, 0.8028, 1.162, 1.647, 2.274, 3.058, 4.004",\
                 "0.1772, 0.2298, 0.3606, 0.5482, 0.8082, 1.166, 1.648, 2.273, 3.058, 4.003",\
                 "0.1906, 0.2434, 0.3686, 0.5522, 0.8088, 1.165, 1.647, 2.272, 3.057, 4.002",\
                 "0.1984, 0.2494, 0.372, 0.554, 0.8116, 1.166, 1.644, 2.269, 3.055, 4",\
                 "0.204, 0.2542, 0.3754, 0.558, 0.8126, 1.167, 1.647, 2.27, 3.051, 3.997",\
                 "0.2094, 0.2588, 0.3798, 0.5606, 0.8162, 1.168, 1.648, 2.271, 3.052, 3.995",\
                 "0.216, 0.264, 0.384, 0.5642, 0.8184, 1.172, 1.649, 2.274, 3.053, 3.997");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.1682, 0.2225, 0.3758, 0.6608, 1.133, 1.82, 2.736, 3.898, 5.307, 6.995",\
                 "0.1682, 0.2219, 0.3768, 0.6611, 1.133, 1.82, 2.737, 3.898, 5.306, 6.995",\
                 "0.1687, 0.2215, 0.376, 0.6608, 1.132, 1.822, 2.738, 3.901, 5.312, 7.001",\
                 "0.1797, 0.2302, 0.3794, 0.6622, 1.133, 1.82, 2.738, 3.898, 5.307, 6.995",\
                 "0.2108, 0.2646, 0.4054, 0.6738, 1.136, 1.822, 2.739, 3.898, 5.307, 6.996",\
                 "0.2446, 0.3046, 0.444, 0.6982, 1.146, 1.826, 2.739, 3.897, 5.315, 7.004",\
                 "0.281, 0.3486, 0.494, 0.7328, 1.162, 1.829, 2.741, 3.897, 5.313, 6.99",\
                 "0.319, 0.3944, 0.5536, 0.781, 1.189, 1.84, 2.743, 3.9, 5.313, 6.998",\
                 "0.359, 0.4414, 0.6166, 0.8402, 1.226, 1.863, 2.756, 3.902, 5.31, 7.003",\
                 "0.4014, 0.4898, 0.6848, 0.9094, 1.275, 1.898, 2.778, 3.915, 5.318, 6.997");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.5624, 0.6195, 0.7597, 0.947, 1.173, 1.445, 1.774, 2.171, 2.649, 3.215",\
                 "0.5723, 0.6295, 0.7696, 0.957, 1.183, 1.455, 1.784, 2.181, 2.659, 3.225",\
                 "0.6086, 0.6658, 0.8058, 0.9932, 1.22, 1.491, 1.82, 2.218, 2.695, 3.262",\
                 "0.6551, 0.712, 0.8523, 1.04, 1.266, 1.538, 1.867, 2.264, 2.742, 3.308",\
                 "0.6868, 0.7436, 0.8838, 1.072, 1.298, 1.57, 1.899, 2.296, 2.774, 3.34",\
                 "0.6996, 0.7566, 0.8971, 1.085, 1.312, 1.584, 1.913, 2.311, 2.788, 3.355",\
                 "0.6902, 0.7471, 0.8879, 1.077, 1.304, 1.577, 1.905, 2.303, 2.781, 3.347",\
                 "0.6565, 0.7134, 0.8545, 1.044, 1.272, 1.545, 1.874, 2.272, 2.75, 3.316",\
                 "0.5955, 0.6524, 0.794, 0.9842, 1.213, 1.486, 1.815, 2.213, 2.691, 3.257",\
                 "0.5065, 0.5636, 0.7058, 0.8966, 1.126, 1.399, 1.729, 2.127, 2.605, 3.172");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.6775, 0.7399, 0.8873, 1.096, 1.384, 1.776, 2.289, 2.934, 3.723, 4.66",\
                 "0.6884, 0.7508, 0.8983, 1.107, 1.395, 1.787, 2.3, 2.945, 3.734, 4.671",\
                 "0.7394, 0.8018, 0.9491, 1.158, 1.445, 1.837, 2.35, 2.996, 3.784, 4.722",\
                 "0.8425, 0.9051, 1.052, 1.261, 1.549, 1.941, 2.453, 3.099, 3.888, 4.824",\
                 "0.9812, 1.044, 1.191, 1.4, 1.688, 2.08, 2.593, 3.239, 4.025, 4.965",\
                 "1.15, 1.213, 1.361, 1.569, 1.857, 2.25, 2.762, 3.409, 4.197, 5.136",\
                 "1.35, 1.413, 1.561, 1.77, 2.058, 2.45, 2.964, 3.61, 4.397, 5.338",\
                 "1.58, 1.644, 1.792, 2.001, 2.29, 2.682, 3.195, 3.84, 4.628, 5.568",\
                 "1.842, 1.906, 2.055, 2.265, 2.554, 2.947, 3.459, 4.105, 4.891, 5.829",\
                 "2.135, 2.2, 2.351, 2.561, 2.851, 3.243, 3.757, 4.402, 5.19, 6.127");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.1496, 0.2029, 0.3381, 0.5355, 0.7999, 1.161, 1.644, 2.273, 3.058, 4.003",\
                 "0.1497, 0.2029, 0.3383, 0.5356, 0.8, 1.161, 1.644, 2.273, 3.057, 4",\
                 "0.1498, 0.2028, 0.3383, 0.5358, 0.8008, 1.161, 1.644, 2.273, 3.056, 4.004",\
                 "0.1501, 0.2032, 0.339, 0.5362, 0.8, 1.161, 1.644, 2.273, 3.056, 4.002",\
                 "0.1506, 0.204, 0.3394, 0.5374, 0.801, 1.161, 1.643, 2.272, 3.057, 4.004",\
                 "0.1516, 0.2054, 0.3416, 0.5386, 0.8018, 1.162, 1.646, 2.273, 3.055, 4.003",\
                 "0.1526, 0.2074, 0.3434, 0.5394, 0.8028, 1.162, 1.644, 2.271, 3.057, 4.004",\
                 "0.154, 0.209, 0.3454, 0.5418, 0.8044, 1.164, 1.645, 2.271, 3.053, 4.003",\
                 "0.1552, 0.2112, 0.3476, 0.5446, 0.8064, 1.165, 1.646, 2.271, 3.053, 3.998",\
                 "0.157, 0.213, 0.3504, 0.5468, 0.8078, 1.166, 1.646, 2.274, 3.056, 4");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.01637, 0.02949, 0.07555, 0.1635, 0.3005, 0.4928, 0.7458, 1.064, 1.454, 1.917");
          values("0.1622, 0.2162, 0.3705, 0.6585, 1.131, 1.819, 2.735, 3.898, 5.307, 6.995",\
                 "0.1622, 0.2162, 0.3715, 0.6584, 1.131, 1.819, 2.735, 3.898, 5.307, 6.995",\
                 "0.1622, 0.215, 0.3714, 0.6586, 1.131, 1.82, 2.735, 3.898, 5.307, 6.995",\
                 "0.1628, 0.2168, 0.3706, 0.6576, 1.132, 1.82, 2.739, 3.898, 5.309, 6.995",\
                 "0.1634, 0.2172, 0.3716, 0.6588, 1.131, 1.819, 2.737, 3.9, 5.312, 7.003",\
                 "0.1646, 0.218, 0.3722, 0.6584, 1.131, 1.821, 2.74, 3.896, 5.312, 6.997",\
                 "0.166, 0.2198, 0.3734, 0.6604, 1.133, 1.822, 2.735, 3.898, 5.312, 7.004",\
                 "0.1682, 0.2212, 0.376, 0.6608, 1.133, 1.82, 2.736, 3.893, 5.313, 6.999",\
                 "0.1708, 0.2242, 0.3782, 0.6622, 1.133, 1.819, 2.735, 3.894, 5.311, 6.998",\
                 "0.1756, 0.2276, 0.3808, 0.664, 1.134, 1.822, 2.74, 3.893, 5.307, 7");
        }
      }
    }
  }

