/*
 * 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_4) {
    area : 59.270400 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.01349 ;
      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.4359, 0.4392, 0.4724, 0.5538, 0.6932, 0.8979, 1.205, 1.619, \
                  2.139, 2.77");
        }

        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.595, 0.5993, 0.6462, 0.7727, 1.001, 1.343, 1.811, 2.412, 3.154, \
                  4.044");
        }

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

    pin(I) {
      capacitance : 0.01308 ;
      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.1428, 0.1429, 0.1425, 0.1427, 0.1426, 0.1427, 0.1422, 0.1428, \
                  0.1426, 0.1426");
        }

        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.1422, -0.1421, -0.1421, -0.142, -0.1419, -0.1418, -0.1419, \
                  -0.142, -0.1423, -0.1425");
        }
      }
    }

    pin(Z) {
      capacitance : 0.008677 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 1.484 ;
      max_transition : 2.8 ;
      min_capacitance : 0.009677 ;
      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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.7542, 0.7468, 0.7386, 0.7351, 0.7334, 0.7323, 0.7315, 0.7308, 0.7304, 0.7301",\
                 "0.7593, 0.7513, 0.744, 0.7406, 0.7385, 0.7377, 0.7367, 0.7361, 0.7357, 0.7353",\
                 "0.7972, 0.791, 0.7853, 0.7836, 0.7825, 0.7823, 0.7817, 0.781, 0.7809, 0.7808",\
                 "0.8894, 0.887, 0.8855, 0.8848, 0.885, 0.8851, 0.8854, 0.8852, 0.8854, 0.8854",\
                 "1.058, 1.059, 1.057, 1.058, 1.057, 1.057, 1.058, 1.058, 1.058, 1.058",\
                 "1.304, 1.304, 1.304, 1.303, 1.303, 1.304, 1.303, 1.304, 1.304, 1.304",\
                 "1.625, 1.624, 1.624, 1.623, 1.623, 1.624, 1.624, 1.624, 1.624, 1.624",\
                 "2.026, 2.026, 2.026, 2.025, 2.025, 2.025, 2.026, 2.026, 2.026, 2.025",\
                 "2.513, 2.513, 2.513, 2.512, 2.512, 2.513, 2.513, 2.513, 2.513, 2.513",\
                 "3.088, 3.089, 3.089, 3.088, 3.088, 3.089, 3.089, 3.088, 3.089, 3.089");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.5415, 0.5421, 0.5417, 0.5436, 0.5449, 0.5468, 0.5521, 0.5611, 0.5801, 0.5864",\
                 "0.544, 0.544, 0.5454, 0.5457, 0.5482, 0.5518, 0.556, 0.566, 0.579, 0.5837",\
                 "0.5787, 0.5787, 0.5782, 0.58, 0.5828, 0.5837, 0.5912, 0.6018, 0.6131, 0.6205",\
                 "0.6861, 0.6861, 0.6904, 0.6901, 0.6923, 0.6953, 0.7001, 0.7107, 0.7237, 0.7333",\
                 "0.8881, 0.8895, 0.8868, 0.8948, 0.8947, 0.8944, 0.8981, 0.9125, 0.9156, 0.9335",\
                 "1.194, 1.195, 1.195, 1.192, 1.204, 1.205, 1.206, 1.214, 1.226, 1.245",\
                 "1.613, 1.614, 1.615, 1.614, 1.614, 1.628, 1.634, 1.632, 1.639, 1.653",\
                 "2.152, 2.154, 2.157, 2.156, 2.152, 2.156, 2.176, 2.181, 2.186, 2.186",\
                 "2.817, 2.818, 2.82, 2.825, 2.823, 2.823, 2.828, 2.853, 2.864, 2.864",\
                 "3.615, 3.618, 3.619, 3.623, 3.619, 3.619, 3.623, 3.634, 3.663, 3.677");
        }
      }

      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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("1.307, 1.282, 1.249, 1.234, 1.225, 1.22, 1.218, 1.216, 1.215, 1.214",\
                 "1.305, 1.279, 1.246, 1.229, 1.222, 1.218, 1.217, 1.213, 1.212, 1.211",\
                 "1.344, 1.318, 1.281, 1.263, 1.254, 1.249, 1.246, 1.244, 1.243, 1.242",\
                 "1.507, 1.475, 1.425, 1.394, 1.376, 1.368, 1.363, 1.36, 1.357, 1.356",\
                 "1.808, 1.767, 1.697, 1.646, 1.616, 1.599, 1.589, 1.582, 1.578, 1.574",\
                 "2.244, 2.195, 2.105, 2.032, 1.985, 1.957, 1.939, 1.928, 1.92, 1.914",\
                 "2.824, 2.768, 2.656, 2.562, 2.495, 2.451, 2.424, 2.405, 2.393, 2.384",\
                 "3.551, 3.488, 3.355, 3.239, 3.152, 3.091, 3.052, 3.024, 3.005, 2.991",\
                 "4.434, 4.365, 4.217, 4.074, 3.964, 3.884, 3.829, 3.791, 3.765, 3.745",\
                 "5.475, 5.404, 5.238, 5.071, 4.937, 4.836, 4.764, 4.714, 4.678, 4.651");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.5686, 0.5715, 0.5874, 0.6097, 0.627, 0.6394, 0.6491, 0.6669, 0.6816, 0.6917",\
                 "0.566, 0.5683, 0.5841, 0.6054, 0.6232, 0.6372, 0.6447, 0.6576, 0.6799, 0.6851",\
                 "0.5914, 0.5903, 0.5972, 0.6125, 0.6292, 0.6433, 0.653, 0.6713, 0.6876, 0.6972",\
                 "0.7032, 0.6931, 0.6874, 0.6882, 0.6996, 0.7131, 0.7228, 0.739, 0.7575, 0.767",\
                 "0.9251, 0.9071, 0.8799, 0.8751, 0.8707, 0.8754, 0.8829, 0.8979, 0.9164, 0.9282",\
                 "1.279, 1.25, 1.209, 1.174, 1.17, 1.164, 1.161, 1.174, 1.194, 1.209",\
                 "1.772, 1.732, 1.672, 1.622, 1.59, 1.585, 1.577, 1.569, 1.579, 1.596",\
                 "2.407, 2.358, 2.275, 2.205, 2.161, 2.133, 2.125, 2.119, 2.12, 2.114",\
                 "3.188, 3.129, 3.031, 2.946, 2.877, 2.834, 2.806, 2.803, 2.791, 2.785",\
                 "4.12, 4.055, 3.933, 3.831, 3.745, 3.674, 3.632, 3.607, 3.621, 3.606");
        }
      }

      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.1263, 0.1311, 0.1494, 0.1902, 0.2498, 0.3227, 0.4068, 0.5024, \
                  0.609, 0.728");
        }

        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.1421, 0.1469, 0.1674, 0.2049, 0.2562, 0.318, 0.3903, 0.4734, \
                  0.569, 0.675");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.0789, 0.09576, 0.137, 0.1966, 0.2744, 0.3751, 0.504, 0.6654, 0.8621, 1.097",\
                 "0.08266, 0.09946, 0.1406, 0.2002, 0.278, 0.3786, 0.5076, 0.669, 0.8657, 1.1",\
                 "0.09672, 0.1134, 0.1544, 0.2138, 0.2915, 0.3922, 0.5211, 0.6825, 0.8793, 1.114",\
                 "0.112, 0.1304, 0.1737, 0.2336, 0.3115, 0.4121, 0.5411, 0.7025, 0.8992, 1.134",\
                 "0.119, 0.1391, 0.1844, 0.2446, 0.3221, 0.4226, 0.5514, 0.7128, 0.9095, 1.144",\
                 "0.1169, 0.1382, 0.1842, 0.2443, 0.3217, 0.4219, 0.5505, 0.7117, 0.9085, 1.143",\
                 "0.1046, 0.1268, 0.1738, 0.2341, 0.3113, 0.4115, 0.5401, 0.7012, 0.8977, 1.132",\
                 "0.08123, 0.1046, 0.1527, 0.2134, 0.2907, 0.3908, 0.5194, 0.6806, 0.8771, 1.111",\
                 "0.0464, 0.0713, 0.1209, 0.1821, 0.2596, 0.3597, 0.4884, 0.6495, 0.8461, 1.081",\
                 "-0.0013, 0.0258, 0.077, 0.1387, 0.2165, 0.3168, 0.4454, 0.6066, 0.8032, 1.038");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.07596, 0.09481, 0.1419, 0.2178, 0.3326, 0.4936, 0.7054, 0.9725, 1.298, 1.687",\
                 "0.07905, 0.09787, 0.145, 0.2208, 0.3357, 0.4966, 0.7081, 0.9756, 1.301, 1.689",\
                 "0.08952, 0.1091, 0.1566, 0.2325, 0.3474, 0.5084, 0.7199, 0.9874, 1.313, 1.701",\
                 "0.09804, 0.1207, 0.1717, 0.2485, 0.3634, 0.5244, 0.736, 1.003, 1.329, 1.718",\
                 "0.09759, 0.1246, 0.1822, 0.2611, 0.3764, 0.5371, 0.7486, 1.016, 1.342, 1.73",\
                 "0.08565, 0.1176, 0.1842, 0.2677, 0.3842, 0.5452, 0.7568, 1.024, 1.35, 1.738",\
                 "0.06096, 0.09876, 0.1752, 0.2655, 0.3848, 0.5474, 0.7592, 1.026, 1.351, 1.74",\
                 "0.02252, 0.06713, 0.1541, 0.2533, 0.3761, 0.5416, 0.7555, 1.022, 1.348, 1.736",\
                 "-0.0314, 0.021, 0.1192, 0.2292, 0.3566, 0.5252, 0.7425, 1.012, 1.338, 1.725",\
                 "-0.1019, -0.0403, 0.0705, 0.1923, 0.3255, 0.4972, 0.7182, 0.9915, 1.32, 1.708");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.03759, 0.05274, 0.0978, 0.1697, 0.2738, 0.4244, 0.6306, 0.893, 1.217, 1.604",\
                 "0.03728, 0.05252, 0.09772, 0.1694, 0.2738, 0.4256, 0.6302, 0.8928, 1.217, 1.602",\
                 "0.03634, 0.0518, 0.0972, 0.1691, 0.2736, 0.4243, 0.6309, 0.8931, 1.217, 1.602",\
                 "0.0408, 0.05636, 0.1001, 0.1695, 0.2737, 0.4242, 0.6302, 0.8925, 1.216, 1.603",\
                 "0.04534, 0.06132, 0.1027, 0.17, 0.2731, 0.4244, 0.6306, 0.8924, 1.216, 1.603",\
                 "0.04948, 0.06492, 0.1038, 0.17, 0.273, 0.4234, 0.6282, 0.8926, 1.216, 1.602",\
                 "0.05436, 0.0683, 0.1052, 0.17, 0.2726, 0.4228, 0.6282, 0.8908, 1.214, 1.603",\
                 "0.0588, 0.0722, 0.1068, 0.171, 0.273, 0.4228, 0.6288, 0.8912, 1.214, 1.599",\
                 "0.064, 0.0768, 0.109, 0.1718, 0.2732, 0.4232, 0.629, 0.8924, 1.215, 1.599",\
                 "0.0698, 0.0814, 0.112, 0.1732, 0.274, 0.4232, 0.6292, 0.892, 1.214, 1.6");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.03905, 0.05922, 0.1196, 0.2398, 0.4363, 0.7155, 1.082, 1.545, 2.11, 2.784",\
                 "0.03928, 0.05928, 0.1196, 0.2399, 0.4366, 0.7148, 1.081, 1.545, 2.11, 2.785",\
                 "0.04132, 0.06074, 0.1201, 0.2403, 0.4367, 0.7151, 1.082, 1.545, 2.11, 2.784",\
                 "0.04908, 0.06864, 0.1244, 0.2411, 0.4363, 0.7155, 1.082, 1.545, 2.11, 2.78",\
                 "0.06032, 0.08066, 0.1336, 0.2443, 0.4377, 0.7158, 1.081, 1.544, 2.109, 2.778",\
                 "0.07444, 0.09462, 0.1488, 0.2521, 0.4404, 0.7156, 1.081, 1.541, 2.109, 2.783",\
                 "0.0917, 0.1114, 0.1679, 0.2634, 0.4478, 0.7202, 1.082, 1.542, 2.106, 2.779",\
                 "0.1118, 0.1309, 0.1886, 0.2796, 0.4582, 0.7302, 1.089, 1.544, 2.108, 2.778",\
                 "0.1358, 0.154, 0.2112, 0.3006, 0.4702, 0.7426, 1.102, 1.553, 2.109, 2.78",\
                 "0.1624, 0.1806, 0.2358, 0.326, 0.4846, 0.7556, 1.118, 1.57, 2.121, 2.781");
        }
      }

      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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.1203, 0.1361, 0.1768, 0.2367, 0.3149, 0.4157, 0.5445, 0.7059, 0.9026, 1.137",\
                 "0.1239, 0.1396, 0.1803, 0.2403, 0.3185, 0.4192, 0.5481, 0.7094, 0.9061, 1.141",\
                 "0.1416, 0.1572, 0.1977, 0.2577, 0.3358, 0.4365, 0.5654, 0.7267, 0.9234, 1.158",\
                 "0.1793, 0.195, 0.2352, 0.295, 0.3731, 0.4738, 0.6025, 0.7638, 0.9605, 1.195",\
                 "0.2328, 0.2493, 0.2905, 0.351, 0.4296, 0.5303, 0.6589, 0.8199, 1.016, 1.251",\
                 "0.2982, 0.3162, 0.3607, 0.4241, 0.5046, 0.606, 0.7346, 0.8955, 1.092, 1.326",\
                 "0.3743, 0.3939, 0.4423, 0.5102, 0.5971, 0.7019, 0.8312, 0.9921, 1.188, 1.422",\
                 "0.4613, 0.4829, 0.535, 0.6074, 0.7009, 0.8144, 0.9493, 1.111, 1.307, 1.541",\
                 "0.5602, 0.5835, 0.6392, 0.7161, 0.8158, 0.9383, 1.083, 1.252, 1.449, 1.683",\
                 "0.6708, 0.6959, 0.7554, 0.8373, 0.9422, 1.073, 1.229, 1.409, 1.616, 1.851");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.1092, 0.1281, 0.1761, 0.2533, 0.3694, 0.5308, 0.7432, 1.011, 1.336, 1.725",\
                 "0.1117, 0.1304, 0.1784, 0.2555, 0.3715, 0.5332, 0.7458, 1.012, 1.339, 1.727",\
                 "0.1214, 0.1396, 0.187, 0.2638, 0.3796, 0.5412, 0.7539, 1.021, 1.346, 1.735",\
                 "0.1344, 0.152, 0.1988, 0.275, 0.3904, 0.552, 0.7644, 1.032, 1.358, 1.747",\
                 "0.1438, 0.1619, 0.2097, 0.2859, 0.4006, 0.5617, 0.7741, 1.041, 1.367, 1.755",\
                 "0.1449, 0.1641, 0.2142, 0.2928, 0.4082, 0.5686, 0.7802, 1.047, 1.373, 1.761",\
                 "0.1363, 0.157, 0.2092, 0.2912, 0.4099, 0.5718, 0.783, 1.049, 1.374, 1.763",\
                 "0.1173, 0.1395, 0.1944, 0.279, 0.402, 0.5685, 0.7822, 1.048, 1.373, 1.76",\
                 "0.0873, 0.1113, 0.1695, 0.2572, 0.3831, 0.5544, 0.7736, 1.043, 1.368, 1.755",\
                 "0.0462, 0.0718, 0.1329, 0.2231, 0.352, 0.5277, 0.7534, 1.029, 1.358, 1.745");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.03912, 0.05578, 0.1006, 0.1722, 0.2752, 0.4252, 0.6309, 0.8925, 1.217, 1.603",\
                 "0.0391, 0.05572, 0.1006, 0.1721, 0.2752, 0.4255, 0.6297, 0.8928, 1.216, 1.603",\
                 "0.03928, 0.05584, 0.1008, 0.1726, 0.2756, 0.4252, 0.6306, 0.8927, 1.216, 1.603",\
                 "0.04196, 0.05852, 0.1031, 0.1741, 0.2762, 0.4256, 0.6298, 0.8929, 1.216, 1.602",\
                 "0.04808, 0.06464, 0.108, 0.1788, 0.28, 0.4269, 0.6314, 0.8929, 1.217, 1.602",\
                 "0.057, 0.07508, 0.1196, 0.1895, 0.2869, 0.4314, 0.6322, 0.894, 1.217, 1.603",\
                 "0.067, 0.0866, 0.1338, 0.2086, 0.308, 0.444, 0.637, 0.8952, 1.218, 1.603",\
                 "0.0772, 0.0982, 0.1488, 0.228, 0.3376, 0.4754, 0.6572, 0.9032, 1.219, 1.603",\
                 "0.0882, 0.111, 0.1652, 0.248, 0.3666, 0.516, 0.7006, 0.9326, 1.232, 1.605",\
                 "0.0992, 0.124, 0.1812, 0.2674, 0.3946, 0.5578, 0.7536, 0.988, 1.27, 1.625");
        }

        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.009677, 0.01985, 0.05558, 0.1238, 0.2301, 0.3792, 0.5755, 0.8227, 1.125, 1.484");
          values("0.03838, 0.05884, 0.119, 0.2397, 0.4365, 0.7144, 1.081, 1.545, 2.11, 2.785",\
                 "0.03836, 0.05862, 0.119, 0.2395, 0.4368, 0.7152, 1.083, 1.543, 2.11, 2.779",\
                 "0.03828, 0.05862, 0.1193, 0.2398, 0.4362, 0.7146, 1.082, 1.544, 2.109, 2.785",\
                 "0.03912, 0.05968, 0.1207, 0.2404, 0.4361, 0.7147, 1.082, 1.545, 2.11, 2.784",\
                 "0.0437, 0.06406, 0.1247, 0.2421, 0.4369, 0.7156, 1.082, 1.545, 2.107, 2.781",\
                 "0.05038, 0.07054, 0.1329, 0.2497, 0.44, 0.7156, 1.083, 1.544, 2.106, 2.782",\
                 "0.05776, 0.07888, 0.1418, 0.2612, 0.4522, 0.721, 1.082, 1.543, 2.104, 2.781",\
                 "0.066, 0.089, 0.152, 0.2736, 0.4688, 0.7394, 1.093, 1.544, 2.108, 2.779",\
                 "0.075, 0.0982, 0.1622, 0.2856, 0.4854, 0.7628, 1.116, 1.56, 2.11, 2.778",\
                 "0.0842, 0.11, 0.1732, 0.2978, 0.5014, 0.7866, 1.148, 1.59, 2.131, 2.784");
        }
      }
    }
  }

