/*
 * 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_12) {
    area : 127.008000 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.1912, 0.1901, 0.198, 0.2233, 0.2686, 0.3362, 0.4285, 0.5524, \
                  0.7196, 0.9307");
        }

        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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.3536, 0.3521, 0.3619, 0.3968, 0.4669, 0.5771, 0.7321, 0.9355, \
                  1.191, 1.502");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.1815, 0.1815, 0.1809, 0.1812, 0.1809, 0.1809, 0.1814, 0.1814, \
                  0.1813, 0.1812");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.1806, -0.1805, -0.1805, -0.1805, -0.1802, -0.1804, -0.1807, \
                  -0.1809, -0.181, -0.1809");
        }
      }
    }

    pin(Z) {
      capacitance : 0.03171 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 4.481 ;
      max_transition : 5.2 ;
      min_capacitance : 0.03271 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.7976, 0.7973, 0.7968, 0.7965, 0.7968, 0.7968, 0.797, 0.7972, 0.7972, 0.7974",\
                 "0.7983, 0.798, 0.7976, 0.7972, 0.7974, 0.7975, 0.7977, 0.7978, 0.798, 0.798",\
                 "0.811, 0.8106, 0.8103, 0.8101, 0.8102, 0.8103, 0.8103, 0.8105, 0.8107, 0.8107",\
                 "0.8434, 0.8433, 0.8425, 0.8422, 0.8422, 0.8422, 0.8424, 0.8425, 0.8427, 0.8428",\
                 "0.8985, 0.8986, 0.8984, 0.898, 0.8978, 0.8978, 0.8979, 0.8981, 0.8982, 0.8982",\
                 "0.9797, 0.9794, 0.9795, 0.9793, 0.9794, 0.9792, 0.979, 0.9791, 0.9791, 0.9792",\
                 "1.089, 1.088, 1.088, 1.088, 1.088, 1.088, 1.088, 1.088, 1.088, 1.088",\
                 "1.226, 1.226, 1.226, 1.225, 1.225, 1.225, 1.225, 1.226, 1.226, 1.225",\
                 "1.393, 1.394, 1.394, 1.394, 1.393, 1.393, 1.394, 1.394, 1.394, 1.394",\
                 "1.593, 1.594, 1.594, 1.593, 1.593, 1.593, 1.593, 1.593, 1.593, 1.593");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.7407, 0.742, 0.7433, 0.7408, 0.7429, 0.7502, 0.7592, 0.7676, 0.7808, 0.7907",\
                 "0.74, 0.7413, 0.7419, 0.7408, 0.7447, 0.7498, 0.7581, 0.7704, 0.7772, 0.7979",\
                 "0.7464, 0.7476, 0.7485, 0.7462, 0.7512, 0.7567, 0.7635, 0.7737, 0.7916, 0.7979",\
                 "0.7755, 0.7763, 0.7756, 0.7757, 0.7785, 0.7837, 0.793, 0.8028, 0.8132, 0.8303",\
                 "0.8334, 0.8334, 0.8355, 0.8412, 0.8426, 0.8478, 0.8568, 0.8666, 0.878, 0.8951",\
                 "0.9292, 0.9306, 0.9299, 0.9301, 0.9402, 0.945, 0.9507, 0.9623, 0.9788, 0.9887",\
                 "1.066, 1.066, 1.069, 1.065, 1.068, 1.085, 1.093, 1.102, 1.112, 1.122",\
                 "1.246, 1.246, 1.248, 1.248, 1.246, 1.255, 1.279, 1.288, 1.299, 1.316",\
                 "1.473, 1.474, 1.477, 1.477, 1.477, 1.477, 1.492, 1.516, 1.537, 1.543",\
                 "1.749, 1.75, 1.754, 1.755, 1.755, 1.748, 1.756, 1.777, 1.81, 1.838");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("1.282, 1.296, 1.327, 1.35, 1.363, 1.369, 1.373, 1.376, 1.377, 1.378",\
                 "1.27, 1.283, 1.313, 1.337, 1.349, 1.356, 1.36, 1.362, 1.364, 1.365",\
                 "1.283, 1.293, 1.319, 1.341, 1.354, 1.361, 1.366, 1.369, 1.37, 1.372",\
                 "1.365, 1.368, 1.387, 1.408, 1.423, 1.433, 1.438, 1.442, 1.445, 1.446",\
                 "1.534, 1.536, 1.55, 1.569, 1.587, 1.598, 1.606, 1.612, 1.615, 1.617",\
                 "1.817, 1.818, 1.828, 1.846, 1.864, 1.878, 1.888, 1.895, 1.9, 1.903",\
                 "2.228, 2.227, 2.235, 2.252, 2.27, 2.286, 2.296, 2.305, 2.311, 2.315",\
                 "2.78, 2.778, 2.781, 2.795, 2.811, 2.828, 2.841, 2.85, 2.857, 2.862",\
                 "3.48, 3.475, 3.474, 3.483, 3.497, 3.512, 3.526, 3.537, 3.545, 3.551",\
                 "4.333, 4.326, 4.32, 4.324, 4.334, 4.347, 4.36, 4.371, 4.38, 4.387");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.7018, 0.7243, 0.7645, 0.7915, 0.8055, 0.8186, 0.8308, 0.8453, 0.8567, 0.8775",\
                 "0.6917, 0.7131, 0.7524, 0.7771, 0.794, 0.8078, 0.8204, 0.8309, 0.8459, 0.8631",\
                 "0.6812, 0.6974, 0.7289, 0.7559, 0.7782, 0.7934, 0.8056, 0.8237, 0.8351, 0.8523",\
                 "0.7178, 0.73, 0.7555, 0.7832, 0.8077, 0.8261, 0.8431, 0.8568, 0.8747, 0.8919",\
                 "0.8384, 0.8487, 0.8696, 0.8984, 0.9214, 0.9442, 0.9608, 0.9832, 0.9971, 1.018",\
                 "1.068, 1.075, 1.09, 1.116, 1.147, 1.168, 1.188, 1.209, 1.224, 1.245",\
                 "1.42, 1.425, 1.438, 1.456, 1.477, 1.514, 1.538, 1.553, 1.562, 1.59",\
                 "1.902, 1.907, 1.924, 1.934, 1.953, 1.977, 2.018, 2.037, 2.055, 2.079",\
                 "2.521, 2.524, 2.535, 2.55, 2.557, 2.581, 2.607, 2.656, 2.671, 2.691",\
                 "3.28, 3.281, 3.291, 3.297, 3.308, 3.325, 3.341, 3.369, 3.416, 3.44");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.486, 0.496, 0.53, 0.605, 0.729, 0.902, 1.105, 1.337, 1.597, \
                  1.884");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.404, 0.413, 0.451, 0.521, 0.614, 0.734, 0.876, 1.037, 1.221, \
                  1.427");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.1922, 0.2324, 0.328, 0.4578, 0.6169, 0.8067, 1.034, 1.306, 1.631, 2.016",\
                 "0.1997, 0.2399, 0.3356, 0.4652, 0.6243, 0.8141, 1.041, 1.314, 1.639, 2.023",\
                 "0.2281, 0.2681, 0.3638, 0.4933, 0.6523, 0.8422, 1.069, 1.341, 1.667, 2.051",\
                 "0.2662, 0.309, 0.4074, 0.5384, 0.6981, 0.8882, 1.115, 1.388, 1.713, 2.097",\
                 "0.2853, 0.3331, 0.4418, 0.5799, 0.7425, 0.9338, 1.162, 1.434, 1.759, 2.144",\
                 "0.2822, 0.3335, 0.4481, 0.5887, 0.7521, 0.9438, 1.171, 1.444, 1.769, 2.153",\
                 "0.257, 0.311, 0.428, 0.5701, 0.7346, 0.9269, 1.155, 1.427, 1.752, 2.136",\
                 "0.2092, 0.2652, 0.3845, 0.5283, 0.6939, 0.8868, 1.115, 1.388, 1.713, 2.097",\
                 "0.1377, 0.1958, 0.3184, 0.4642, 0.6309, 0.8245, 1.053, 1.326, 1.652, 2.036",\
                 "0.0417, 0.1023, 0.2278, 0.375, 0.5427, 0.7374, 0.9668, 1.24, 1.565, 1.95");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.2266, 0.275, 0.3856, 0.5388, 0.748, 1.033, 1.407, 1.877, 2.452, 3.135",\
                 "0.2333, 0.2817, 0.3924, 0.5452, 0.7548, 1.04, 1.414, 1.885, 2.459, 3.144",\
                 "0.2577, 0.3061, 0.4169, 0.57, 0.7795, 1.065, 1.438, 1.908, 2.483, 3.167",\
                 "0.2919, 0.3443, 0.4589, 0.6134, 0.823, 1.108, 1.482, 1.952, 2.526, 3.213",\
                 "0.3099, 0.3712, 0.5007, 0.6621, 0.8741, 1.159, 1.533, 2.004, 2.578, 3.264",\
                 "0.304, 0.3754, 0.5243, 0.6987, 0.9151, 1.201, 1.575, 2.045, 2.62, 3.303",\
                 "0.2717, 0.3535, 0.5241, 0.717, 0.9417, 1.23, 1.604, 2.074, 2.648, 3.332",\
                 "0.2112, 0.3039, 0.4973, 0.7126, 0.9499, 1.243, 1.618, 2.089, 2.662, 3.346",\
                 "0.1202, 0.2248, 0.4419, 0.6824, 0.9356, 1.237, 1.617, 2.088, 2.662, 3.346",\
                 "-0.003, 0.1154, 0.3564, 0.6237, 0.8969, 1.209, 1.594, 2.071, 2.648, 3.331");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.1018, 0.1395, 0.2363, 0.3809, 0.5719, 0.8216, 1.153, 1.581, 2.115, 2.766",\
                 "0.1017, 0.1392, 0.2369, 0.3811, 0.5714, 0.8221, 1.153, 1.581, 2.117, 2.766",\
                 "0.1014, 0.1394, 0.2364, 0.3812, 0.5716, 0.8222, 1.154, 1.581, 2.114, 2.766",\
                 "0.1121, 0.1481, 0.2409, 0.3843, 0.5735, 0.8229, 1.155, 1.582, 2.116, 2.767",\
                 "0.1271, 0.1672, 0.2639, 0.3994, 0.582, 0.8282, 1.158, 1.584, 2.119, 2.767",\
                 "0.1388, 0.1806, 0.2762, 0.407, 0.5856, 0.8294, 1.158, 1.584, 2.117, 2.767",\
                 "0.1488, 0.1908, 0.2826, 0.4116, 0.5896, 0.832, 1.158, 1.581, 2.116, 2.766",\
                 "0.1578, 0.1984, 0.2878, 0.4158, 0.5928, 0.8344, 1.159, 1.582, 2.114, 2.761",\
                 "0.168, 0.2062, 0.2942, 0.4204, 0.5968, 0.8378, 1.161, 1.584, 2.116, 2.761",\
                 "0.1786, 0.2154, 0.3004, 0.4256, 0.6014, 0.8412, 1.166, 1.587, 2.119, 2.763");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.1189, 0.1626, 0.2788, 0.4899, 0.8379, 1.348, 2.033, 2.894, 3.945, 5.202",\
                 "0.1182, 0.1622, 0.2788, 0.4897, 0.8397, 1.348, 2.033, 2.893, 3.945, 5.201",\
                 "0.119, 0.1632, 0.2789, 0.4899, 0.8397, 1.35, 2.029, 2.894, 3.944, 5.202",\
                 "0.132, 0.1725, 0.2843, 0.4917, 0.8398, 1.351, 2.031, 2.89, 3.946, 5.201",\
                 "0.1559, 0.2012, 0.3099, 0.5046, 0.844, 1.352, 2.03, 2.892, 3.945, 5.201",\
                 "0.1834, 0.2348, 0.3468, 0.5284, 0.8542, 1.355, 2.032, 2.892, 3.942, 5.202",\
                 "0.2128, 0.27, 0.3928, 0.567, 0.8728, 1.36, 2.034, 2.897, 3.946, 5.199",\
                 "0.2456, 0.3068, 0.4422, 0.6144, 0.9044, 1.376, 2.041, 2.895, 3.947, 5.194",\
                 "0.2842, 0.3474, 0.4964, 0.6718, 0.9454, 1.405, 2.057, 2.903, 3.946, 5.2",\
                 "0.3336, 0.394, 0.552, 0.7386, 0.9972, 1.439, 2.084, 2.923, 3.959, 5.2");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.2582, 0.2996, 0.3975, 0.528, 0.6868, 0.8763, 1.103, 1.375, 1.701, 2.085",\
                 "0.2622, 0.3036, 0.4015, 0.532, 0.6908, 0.8805, 1.107, 1.38, 1.705, 2.089",\
                 "0.2899, 0.331, 0.4288, 0.5595, 0.7187, 0.9084, 1.135, 1.408, 1.733, 2.117",\
                 "0.3485, 0.3899, 0.4884, 0.6201, 0.78, 0.9701, 1.197, 1.47, 1.795, 2.18",\
                 "0.4389, 0.4822, 0.5842, 0.7189, 0.8806, 1.072, 1.3, 1.572, 1.898, 2.282",\
                 "0.556, 0.6062, 0.7198, 0.8618, 1.029, 1.224, 1.453, 1.727, 2.053, 2.437",\
                 "0.6914, 0.7519, 0.8866, 1.049, 1.23, 1.433, 1.667, 1.944, 2.27, 2.655",\
                 "0.8466, 0.9184, 1.079, 1.27, 1.478, 1.702, 1.946, 2.227, 2.556, 2.942",\
                 "1.024, 1.108, 1.297, 1.522, 1.765, 2.021, 2.287, 2.579, 2.912, 3.3",\
                 "1.225, 1.324, 1.544, 1.806, 2.086, 2.38, 2.682, 2.997, 3.341, 3.732");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.286, 0.3361, 0.4484, 0.602, 0.8122, 1.098, 1.472, 1.943, 2.518, 3.203",\
                 "0.2883, 0.3383, 0.4506, 0.6042, 0.8145, 1.1, 1.474, 1.945, 2.519, 3.205",\
                 "0.2964, 0.3458, 0.4578, 0.6123, 0.8225, 1.109, 1.483, 1.954, 2.529, 3.214",\
                 "0.3035, 0.3535, 0.4667, 0.6214, 0.8325, 1.119, 1.493, 1.965, 2.54, 3.225",\
                 "0.3112, 0.3651, 0.483, 0.6404, 0.8529, 1.139, 1.514, 1.986, 2.559, 3.246",\
                 "0.3032, 0.3671, 0.5023, 0.6704, 0.8864, 1.174, 1.55, 2.021, 2.596, 3.282",\
                 "0.2718, 0.3489, 0.5096, 0.6999, 0.9301, 1.222, 1.599, 2.07, 2.644, 3.329",\
                 "0.2162, 0.3091, 0.501, 0.7206, 0.974, 1.282, 1.663, 2.135, 2.71, 3.395",\
                 "0.1373, 0.2478, 0.4748, 0.7289, 1.01, 1.342, 1.741, 2.219, 2.794, 3.479",\
                 "0.034, 0.1644, 0.4299, 0.7231, 1.037, 1.396, 1.819, 2.315, 2.895, 3.582");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.0969, 0.1354, 0.232, 0.3777, 0.5688, 0.8195, 1.153, 1.579, 2.117, 2.766",\
                 "0.09714, 0.1356, 0.2327, 0.3775, 0.5689, 0.8194, 1.152, 1.582, 2.115, 2.766",\
                 "0.09776, 0.1366, 0.2333, 0.3786, 0.5691, 0.8199, 1.153, 1.581, 2.117, 2.766",\
                 "0.1015, 0.1406, 0.2376, 0.3809, 0.5706, 0.8212, 1.153, 1.581, 2.116, 2.765",\
                 "0.1105, 0.1495, 0.2454, 0.3876, 0.5752, 0.8236, 1.155, 1.582, 2.117, 2.766",\
                 "0.1342, 0.175, 0.2684, 0.4054, 0.5904, 0.8346, 1.161, 1.586, 2.119, 2.767",\
                 "0.1664, 0.2144, 0.3178, 0.4538, 0.6286, 0.8618, 1.178, 1.595, 2.125, 2.769",\
                 "0.2042, 0.261, 0.3818, 0.532, 0.7098, 0.9248, 1.217, 1.616, 2.134, 2.773",\
                 "0.2494, 0.3152, 0.4558, 0.626, 0.8212, 1.036, 1.301, 1.668, 2.159, 2.782",\
                 "0.3012, 0.3764, 0.5374, 0.732, 0.9486, 1.182, 1.437, 1.764, 2.218, 2.81");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.03271, 0.06342, 0.1712, 0.377, 0.6977, 1.148, 1.74, 2.486, 3.396, 4.481");
          values("0.1113, 0.1541, 0.2719, 0.4871, 0.8371, 1.348, 2.03, 2.893, 3.946, 5.2",\
                 "0.111, 0.1542, 0.2717, 0.4865, 0.8371, 1.35, 2.035, 2.89, 3.946, 5.2",\
                 "0.1122, 0.1555, 0.2729, 0.4872, 0.8385, 1.35, 2.032, 2.893, 3.945, 5.199",\
                 "0.1162, 0.1592, 0.2754, 0.4871, 0.8388, 1.348, 2.034, 2.89, 3.946, 5.201",\
                 "0.1299, 0.1725, 0.2846, 0.4932, 0.8392, 1.349, 2.033, 2.892, 3.946, 5.201",\
                 "0.1586, 0.2042, 0.3168, 0.512, 0.848, 1.354, 2.032, 2.895, 3.944, 5.202",\
                 "0.1966, 0.2482, 0.3678, 0.5618, 0.8796, 1.364, 2.037, 2.898, 3.949, 5.201",\
                 "0.2414, 0.3032, 0.436, 0.6302, 0.9434, 1.407, 2.053, 2.898, 3.942, 5.201",\
                 "0.2958, 0.3644, 0.51, 0.7108, 1.027, 1.486, 2.106, 2.922, 3.95, 5.203",\
                 "0.3546, 0.4344, 0.5966, 0.8062, 1.121, 1.586, 2.202, 2.987, 3.985, 5.206");
        }
      }
    }
  }

