/*
 * 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_2) {
    area : 42.336000 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.4365, 0.44, 0.4736, 0.5574, 0.6976, 0.914, 1.231, 1.65, 2.175, \
                  2.808");
        }

        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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.5419, 0.5468, 0.5951, 0.7208, 0.9498, 1.294, 1.761, 2.36, 3.095, \
                  3.976");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.07131, 0.07125, 0.07135, 0.07132, 0.07132, 0.07123, 0.07119, \
                  0.07129, 0.07133, 0.07124");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("-0.07113, -0.07101, -0.07102, -0.07088, -0.07099, -0.07103, -0.07094, \
                  -0.07116, -0.07117, -0.07126");
        }
      }
    }

    pin(Z) {
      capacitance : 0.004321 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 0.7443 ;
      max_transition : 2.8 ;
      min_capacitance : 0.005321 ;
      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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.5595, 0.5493, 0.5306, 0.5182, 0.5102, 0.5049, 0.5011, 0.4985, 0.4963, 0.4949",\
                 "0.5635, 0.5534, 0.5347, 0.5227, 0.515, 0.5097, 0.5063, 0.5035, 0.5018, 0.5004",\
                 "0.5948, 0.5861, 0.5712, 0.5615, 0.5554, 0.5514, 0.5484, 0.5463, 0.5446, 0.5437",\
                 "0.6732, 0.6673, 0.6586, 0.6538, 0.6511, 0.6492, 0.6479, 0.6468, 0.646, 0.6454",\
                 "0.8249, 0.8221, 0.8182, 0.8171, 0.8163, 0.8157, 0.8154, 0.815, 0.8148, 0.8147",\
                 "1.061, 1.059, 1.058, 1.057, 1.057, 1.058, 1.057, 1.057, 1.057, 1.057",\
                 "1.378, 1.377, 1.377, 1.376, 1.376, 1.377, 1.377, 1.377, 1.377, 1.377",\
                 "1.777, 1.776, 1.776, 1.776, 1.776, 1.776, 1.776, 1.776, 1.776, 1.776",\
                 "2.26, 2.26, 2.26, 2.26, 2.26, 2.26, 2.26, 2.26, 2.26, 2.26",\
                 "2.833, 2.834, 2.833, 2.833, 2.833, 2.834, 2.833, 2.833, 2.834, 2.834");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.3012, 0.2988, 0.2979, 0.2979, 0.2987, 0.2976, 0.3005, 0.3032, 0.3141, 0.3158",\
                 "0.3033, 0.301, 0.3, 0.3001, 0.3011, 0.3004, 0.3038, 0.3093, 0.3141, 0.3224",\
                 "0.34, 0.338, 0.3361, 0.3374, 0.3371, 0.3383, 0.3385, 0.3428, 0.3521, 0.356",\
                 "0.4482, 0.4475, 0.4492, 0.4496, 0.4506, 0.4511, 0.454, 0.4572, 0.4637, 0.4709",\
                 "0.6543, 0.6544, 0.653, 0.657, 0.6577, 0.6557, 0.6597, 0.6635, 0.6727, 0.6744",\
                 "0.9643, 0.9643, 0.9643, 0.9629, 0.9686, 0.9697, 0.9671, 0.9726, 0.9813, 0.9846",\
                 "1.385, 1.385, 1.386, 1.386, 1.386, 1.394, 1.395, 1.396, 1.397, 1.409",\
                 "1.924, 1.923, 1.924, 1.926, 1.924, 1.925, 1.935, 1.938, 1.942, 1.938",\
                 "2.586, 2.587, 2.588, 2.59, 2.588, 2.589, 2.592, 2.604, 2.609, 2.612",\
                 "3.381, 3.383, 3.384, 3.385, 3.384, 3.383, 3.387, 3.393, 3.408, 3.411");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.8961, 0.8767, 0.8402, 0.8143, 0.7985, 0.7881, 0.7815, 0.7769, 0.7733, 0.7709",\
                 "0.895, 0.8754, 0.8392, 0.8134, 0.7974, 0.787, 0.7805, 0.7758, 0.7723, 0.7699",\
                 "0.9106, 0.8907, 0.8538, 0.8275, 0.8112, 0.8006, 0.7939, 0.7891, 0.7858, 0.7832",\
                 "0.987, 0.9653, 0.9232, 0.8923, 0.8725, 0.8595, 0.8513, 0.8457, 0.8414, 0.8385",\
                 "1.148, 1.123, 1.071, 1.028, 0.9988, 0.9801, 0.9674, 0.9588, 0.9528, 0.9485",\
                 "1.386, 1.358, 1.295, 1.239, 1.198, 1.169, 1.15, 1.136, 1.127, 1.12",\
                 "1.703, 1.671, 1.597, 1.527, 1.473, 1.433, 1.406, 1.386, 1.372, 1.361",\
                 "2.097, 2.063, 1.98, 1.894, 1.825, 1.774, 1.736, 1.709, 1.689, 1.675",\
                 "2.574, 2.537, 2.446, 2.345, 2.261, 2.197, 2.149, 2.112, 2.086, 2.065",\
                 "3.134, 3.095, 2.997, 2.881, 2.781, 2.703, 2.643, 2.597, 2.563, 2.536");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.406, 0.3971, 0.3875, 0.3847, 0.3871, 0.3902, 0.3937, 0.4014, 0.4078, 0.4139",\
                 "0.4054, 0.3966, 0.3865, 0.3833, 0.386, 0.388, 0.3942, 0.3986, 0.4062, 0.4161",\
                 "0.4167, 0.4081, 0.3965, 0.3914, 0.3921, 0.3941, 0.3992, 0.4041, 0.4117, 0.4189",\
                 "0.4864, 0.4747, 0.4554, 0.4422, 0.4364, 0.4337, 0.4366, 0.4382, 0.4485, 0.4524",\
                 "0.6159, 0.5994, 0.5714, 0.5506, 0.5331, 0.5255, 0.524, 0.5251, 0.5332, 0.5333",\
                 "0.8134, 0.7914, 0.7549, 0.7208, 0.7, 0.6823, 0.6709, 0.6698, 0.6707, 0.6735",\
                 "1.081, 1.056, 1.008, 0.9632, 0.9277, 0.9078, 0.8898, 0.8788, 0.8742, 0.8781",\
                 "1.423, 1.395, 1.339, 1.282, 1.234, 1.201, 1.183, 1.164, 1.151, 1.144",\
                 "1.84, 1.807, 1.742, 1.677, 1.621, 1.57, 1.537, 1.523, 1.502, 1.491",\
                 "2.334, 2.299, 2.221, 2.151, 2.08, 2.021, 1.977, 1.948, 1.934, 1.92");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0892, 0.094, 0.113, 0.1505, 0.2008, 0.2606, 0.3291, 0.4074, \
                  0.495, 0.592");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.1207, 0.1255, 0.1464, 0.1837, 0.2342, 0.2951, 0.3664, 0.4484, \
                  0.542, 0.647");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.08086, 0.09737, 0.1387, 0.1988, 0.2777, 0.3789, 0.5081, 0.6695, 0.8662, 1.101",\
                 "0.08451, 0.1009, 0.1422, 0.2023, 0.2811, 0.3824, 0.5115, 0.6729, 0.8697, 1.104",\
                 "0.09782, 0.1139, 0.1548, 0.2147, 0.2934, 0.3946, 0.5238, 0.6852, 0.8821, 1.117",\
                 "0.1121, 0.1294, 0.1715, 0.2313, 0.3096, 0.4108, 0.5401, 0.7016, 0.8985, 1.133",\
                 "0.1177, 0.1357, 0.1784, 0.2374, 0.3151, 0.4159, 0.545, 0.7065, 0.9035, 1.138",\
                 "0.1146, 0.1334, 0.1759, 0.234, 0.3105, 0.4106, 0.5393, 0.7006, 0.8975, 1.132",\
                 "0.1023, 0.1218, 0.1645, 0.2222, 0.2982, 0.3979, 0.5264, 0.6876, 0.8842, 1.119",\
                 "0.07933, 0.09963, 0.1433, 0.2009, 0.2767, 0.3762, 0.5047, 0.6659, 0.8625, 1.097",\
                 "0.0447, 0.0667, 0.1113, 0.1691, 0.2449, 0.3443, 0.4728, 0.634, 0.8308, 1.065",\
                 "-0.0028, 0.0211, 0.0673, 0.1255, 0.2016, 0.301, 0.4294, 0.5906, 0.7874, 1.022");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.06725, 0.08393, 0.1292, 0.2049, 0.3199, 0.4809, 0.6935, 0.9603, 1.287, 1.675",\
                 "0.07024, 0.08692, 0.1321, 0.2079, 0.3229, 0.484, 0.6962, 0.9637, 1.289, 1.678",\
                 "0.07938, 0.09702, 0.1429, 0.2188, 0.3339, 0.495, 0.7074, 0.9749, 1.301, 1.69",\
                 "0.08593, 0.1059, 0.1544, 0.2313, 0.3466, 0.5077, 0.7201, 0.9873, 1.314, 1.703",\
                 "0.08392, 0.108, 0.1619, 0.2408, 0.3567, 0.518, 0.7299, 0.9968, 1.323, 1.713",\
                 "0.07086, 0.1001, 0.1621, 0.2451, 0.3628, 0.5246, 0.7367, 1.004, 1.331, 1.72",\
                 "0.04593, 0.08096, 0.1528, 0.2416, 0.3628, 0.527, 0.7396, 1.007, 1.333, 1.722",\
                 "0.0084, 0.04934, 0.1322, 0.2289, 0.354, 0.5222, 0.7378, 1.006, 1.332, 1.72",\
                 "-0.0441, 0.0048, 0.0991, 0.2062, 0.3357, 0.5078, 0.728, 0.9991, 1.326, 1.715",\
                 "-0.1118, -0.0548, 0.0525, 0.1719, 0.3069, 0.483, 0.7078, 0.9841, 1.315, 1.704");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.04132, 0.0572, 0.1022, 0.1743, 0.2782, 0.4276, 0.6312, 0.8938, 1.216, 1.602",\
                 "0.04076, 0.05692, 0.1018, 0.1742, 0.278, 0.4266, 0.6315, 0.8927, 1.216, 1.603",\
                 "0.0387, 0.05484, 0.1004, 0.1732, 0.2773, 0.4268, 0.6314, 0.8928, 1.216, 1.602",\
                 "0.04146, 0.05694, 0.1004, 0.1711, 0.276, 0.4264, 0.6309, 0.8933, 1.216, 1.602",\
                 "0.04428, 0.05908, 0.09982, 0.1687, 0.2731, 0.4248, 0.6301, 0.8928, 1.216, 1.602",\
                 "0.04722, 0.06034, 0.09832, 0.1659, 0.2705, 0.4218, 0.6271, 0.8922, 1.215, 1.601",\
                 "0.05066, 0.06258, 0.09832, 0.1645, 0.2686, 0.4206, 0.6268, 0.8894, 1.213, 1.602",\
                 "0.0546, 0.0654, 0.099, 0.164, 0.268, 0.42, 0.627, 0.8896, 1.213, 1.598",\
                 "0.0588, 0.0686, 0.1002, 0.1644, 0.2682, 0.4204, 0.6274, 0.8898, 1.213, 1.598",\
                 "0.0648, 0.074, 0.1024, 0.1658, 0.2684, 0.42, 0.627, 0.8896, 1.213, 1.599");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.03792, 0.05702, 0.1196, 0.2413, 0.4388, 0.7168, 1.085, 1.548, 2.111, 2.787",\
                 "0.03798, 0.05708, 0.1194, 0.2413, 0.4388, 0.7172, 1.084, 1.549, 2.113, 2.789",\
                 "0.04004, 0.05894, 0.1203, 0.2414, 0.4381, 0.7177, 1.084, 1.549, 2.115, 2.79",\
                 "0.04638, 0.0647, 0.1237, 0.2428, 0.4389, 0.7163, 1.086, 1.548, 2.115, 2.785",\
                 "0.0578, 0.07592, 0.1311, 0.2463, 0.4401, 0.7164, 1.084, 1.546, 2.113, 2.785",\
                 "0.07262, 0.09066, 0.1438, 0.2542, 0.4436, 0.7186, 1.084, 1.545, 2.112, 2.79",\
                 "0.08888, 0.1076, 0.1614, 0.2657, 0.4541, 0.7252, 1.086, 1.546, 2.11, 2.785",\
                 "0.1076, 0.1263, 0.1828, 0.2796, 0.4656, 0.7382, 1.095, 1.549, 2.111, 2.783",\
                 "0.1294, 0.1486, 0.2058, 0.2982, 0.4792, 0.7542, 1.113, 1.562, 2.115, 2.782",\
                 "0.1538, 0.1742, 0.2312, 0.323, 0.493, 0.7708, 1.134, 1.583, 2.131, 2.79");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.1469, 0.163, 0.2043, 0.2647, 0.3436, 0.4448, 0.5737, 0.7349, 0.9315, 1.166",\
                 "0.1505, 0.1666, 0.2078, 0.2682, 0.3472, 0.4484, 0.5773, 0.7384, 0.9351, 1.169",\
                 "0.168, 0.184, 0.2253, 0.2855, 0.3644, 0.4656, 0.5945, 0.7557, 0.9523, 1.187",\
                 "0.2078, 0.2237, 0.2646, 0.3245, 0.4033, 0.5044, 0.6332, 0.7943, 0.9908, 1.225",\
                 "0.2661, 0.2828, 0.3246, 0.385, 0.4639, 0.5647, 0.6932, 0.854, 1.05, 1.285",\
                 "0.338, 0.3562, 0.4004, 0.4623, 0.5423, 0.6435, 0.7717, 0.9321, 1.128, 1.362",\
                 "0.4212, 0.441, 0.4889, 0.5546, 0.6377, 0.7403, 0.8687, 1.029, 1.224, 1.458",\
                 "0.5157, 0.537, 0.5887, 0.6581, 0.746, 0.8534, 0.9843, 1.144, 1.34, 1.573",\
                 "0.6219, 0.6449, 0.7003, 0.7743, 0.8662, 0.979, 1.116, 1.28, 1.475, 1.708",\
                 "0.7407, 0.7651, 0.8241, 0.9025, 0.9985, 1.117, 1.259, 1.43, 1.631, 1.864");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.1296, 0.1454, 0.1897, 0.2651, 0.3803, 0.5419, 0.7545, 1.022, 1.349, 1.738",\
                 "0.1324, 0.1481, 0.1924, 0.2677, 0.383, 0.5444, 0.7568, 1.024, 1.351, 1.739",\
                 "0.1439, 0.1596, 0.2036, 0.2788, 0.3938, 0.5552, 0.7675, 1.035, 1.361, 1.75",\
                 "0.1658, 0.1813, 0.2246, 0.2987, 0.4128, 0.5736, 0.7859, 1.053, 1.38, 1.769",\
                 "0.1853, 0.2015, 0.2452, 0.3187, 0.4316, 0.5916, 0.8028, 1.07, 1.397, 1.786",\
                 "0.1975, 0.215, 0.2603, 0.3344, 0.4465, 0.6052, 0.8157, 1.082, 1.407, 1.796",\
                 "0.2001, 0.2191, 0.2667, 0.3426, 0.4557, 0.614, 0.8233, 1.088, 1.413, 1.802",\
                 "0.1925, 0.2133, 0.2639, 0.3412, 0.4559, 0.616, 0.8257, 1.09, 1.414, 1.801",\
                 "0.1735, 0.1958, 0.25, 0.3293, 0.4454, 0.6073, 0.8196, 1.085, 1.408, 1.795",\
                 "0.1431, 0.167, 0.2243, 0.306, 0.4236, 0.5875, 0.8028, 1.072, 1.397, 1.782");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.04814, 0.06508, 0.108, 0.1786, 0.2807, 0.4283, 0.6318, 0.8945, 1.217, 1.602",\
                 "0.04818, 0.06498, 0.1082, 0.1786, 0.2807, 0.4284, 0.6318, 0.8945, 1.216, 1.602",\
                 "0.04808, 0.06484, 0.1084, 0.1784, 0.2808, 0.4289, 0.6315, 0.893, 1.217, 1.602",\
                 "0.0494, 0.06606, 0.1095, 0.1796, 0.2816, 0.4285, 0.6314, 0.8945, 1.216, 1.602",\
                 "0.05594, 0.0729, 0.1153, 0.184, 0.2843, 0.4306, 0.6322, 0.8931, 1.216, 1.603",\
                 "0.06552, 0.0837, 0.1266, 0.1928, 0.2913, 0.4343, 0.6338, 0.8948, 1.217, 1.602",\
                 "0.0762, 0.0964, 0.1412, 0.2086, 0.3048, 0.4416, 0.6368, 0.896, 1.217, 1.604",\
                 "0.0872, 0.1096, 0.1578, 0.2266, 0.3268, 0.462, 0.6488, 0.8996, 1.218, 1.604",\
                 "0.0986, 0.123, 0.1752, 0.2464, 0.3496, 0.4904, 0.677, 0.918, 1.226, 1.604",\
                 "0.1104, 0.1368, 0.1928, 0.2664, 0.373, 0.519, 0.711, 0.9534, 1.251, 1.617");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005321, 0.01042, 0.02832, 0.06251, 0.1158, 0.1905, 0.2889, 0.4127, 0.564, 0.7443");
          values("0.04028, 0.0587, 0.1206, 0.2417, 0.4379, 0.7176, 1.084, 1.547, 2.115, 2.786",\
                 "0.04052, 0.05876, 0.1203, 0.2416, 0.4378, 0.7171, 1.084, 1.548, 2.111, 2.787",\
                 "0.04012, 0.05866, 0.1206, 0.2415, 0.4389, 0.7177, 1.084, 1.548, 2.111, 2.788",\
                 "0.0421, 0.06016, 0.1215, 0.242, 0.4379, 0.717, 1.086, 1.549, 2.115, 2.79",\
                 "0.04754, 0.0655, 0.1249, 0.2436, 0.4383, 0.7176, 1.084, 1.548, 2.111, 2.789",\
                 "0.05364, 0.07288, 0.1309, 0.248, 0.4397, 0.7171, 1.083, 1.547, 2.11, 2.789",\
                 "0.06198, 0.0821, 0.1389, 0.2557, 0.4464, 0.7196, 1.083, 1.545, 2.111, 2.786",\
                 "0.0694, 0.0906, 0.1478, 0.2642, 0.4566, 0.7304, 1.089, 1.547, 2.111, 2.78",\
                 "0.0784, 0.1016, 0.1582, 0.2732, 0.468, 0.7448, 1.104, 1.555, 2.111, 2.784",\
                 "0.0866, 0.111, 0.171, 0.2832, 0.4784, 0.7586, 1.123, 1.575, 2.124, 2.787");
        }
      }
    }
  }

