/*
 * 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__bufz_3) {
    area : 43.904000 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.00854 ;
      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.1891, 0.1868, 0.1899, 0.2057, 0.2346, 0.2778, 0.3371, 0.4179, \
                  0.5243, 0.657");
        }

        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.3093, 0.3066, 0.3103, 0.3317, 0.3759, 0.4469, 0.5475, 0.6794, \
                  0.845, 1.045");
        }

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

    pin(I) {
      capacitance : 0.007613 ;
      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.05219, 0.05213, 0.05195, 0.05201, 0.05191, 0.05202, 0.052, 0.05199, \
                  0.05201, 0.052");
        }

        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.05191, -0.05187, -0.05184, -0.05182, -0.05179, -0.05195, -0.05191, \
                  -0.05193, -0.05197, -0.05194");
        }
      }
    }

    pin(Z) {
      capacitance : 0.006666 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 0.7181 ;
      max_transition : 7 ;
      min_capacitance : 0.007666 ;
      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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.315, 0.3149, 0.3148, 0.3145, 0.3145, 0.3146, 0.3146, 0.3146, 0.3147, 0.3146",\
                 "0.3155, 0.3152, 0.3149, 0.3149, 0.3148, 0.3149, 0.315, 0.315, 0.315, 0.315",\
                 "0.324, 0.3238, 0.3236, 0.3236, 0.3236, 0.3236, 0.3237, 0.3237, 0.3237, 0.3237",\
                 "0.3444, 0.3444, 0.3442, 0.3441, 0.3441, 0.3442, 0.3443, 0.3443, 0.3444, 0.3444",\
                 "0.3796, 0.3796, 0.3795, 0.3793, 0.3792, 0.3793, 0.3793, 0.3794, 0.3794, 0.3795",\
                 "0.4313, 0.4312, 0.4311, 0.431, 0.4311, 0.431, 0.4311, 0.4311, 0.4311, 0.4311",\
                 "0.5003, 0.5003, 0.5002, 0.5002, 0.5002, 0.5003, 0.5003, 0.5003, 0.5003, 0.5003",\
                 "0.588, 0.5881, 0.5878, 0.5877, 0.5877, 0.5878, 0.5879, 0.5879, 0.5879, 0.5879",\
                 "0.6951, 0.6951, 0.695, 0.6948, 0.6947, 0.6948, 0.695, 0.6951, 0.6951, 0.6951",\
                 "0.8224, 0.8226, 0.8224, 0.8223, 0.8221, 0.8222, 0.8222, 0.8223, 0.8223, 0.8223");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.2275, 0.2276, 0.2278, 0.2279, 0.2288, 0.2304, 0.2311, 0.2334, 0.2365, 0.244",\
                 "0.2264, 0.2265, 0.2266, 0.2267, 0.2272, 0.2288, 0.2302, 0.2329, 0.2361, 0.2408",\
                 "0.2294, 0.2296, 0.2296, 0.2297, 0.2306, 0.2322, 0.2333, 0.2352, 0.2388, 0.246",\
                 "0.2463, 0.2466, 0.2464, 0.2471, 0.2475, 0.2493, 0.2509, 0.255, 0.2554, 0.2632",\
                 "0.2836, 0.2836, 0.2833, 0.2851, 0.2854, 0.2868, 0.2882, 0.291, 0.2946, 0.3005",\
                 "0.3451, 0.3451, 0.345, 0.3453, 0.3478, 0.3493, 0.3512, 0.3513, 0.3544, 0.3608",\
                 "0.4332, 0.4332, 0.4341, 0.4329, 0.4336, 0.4381, 0.4403, 0.4413, 0.4426, 0.4488",\
                 "0.5493, 0.5497, 0.55, 0.5496, 0.5488, 0.5509, 0.5569, 0.561, 0.561, 0.5679",\
                 "0.6949, 0.6951, 0.6958, 0.6952, 0.6946, 0.6957, 0.6986, 0.7062, 0.71, 0.7219",\
                 "0.8715, 0.8719, 0.8725, 0.873, 0.8721, 0.8717, 0.8737, 0.8777, 0.8869, 0.9064");
        }
      }

      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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.5317, 0.5307, 0.5305, 0.5319, 0.5331, 0.534, 0.5346, 0.535, 0.5352, 0.5353",\
                 "0.5296, 0.5284, 0.5286, 0.5299, 0.531, 0.5319, 0.5326, 0.5329, 0.5331, 0.5332",\
                 "0.5303, 0.5292, 0.5287, 0.5299, 0.531, 0.5321, 0.5326, 0.533, 0.5333, 0.5334",\
                 "0.5523, 0.5492, 0.5459, 0.5455, 0.5459, 0.5465, 0.547, 0.5472, 0.5475, 0.5475",\
                 "0.6031, 0.5978, 0.5898, 0.5847, 0.583, 0.5824, 0.5825, 0.5824, 0.5824, 0.5824",\
                 "0.6809, 0.6737, 0.6603, 0.651, 0.6464, 0.644, 0.6429, 0.6424, 0.642, 0.6418",\
                 "0.7883, 0.7788, 0.761, 0.7472, 0.7385, 0.7338, 0.7314, 0.7297, 0.7288, 0.7282",\
                 "0.9269, 0.9155, 0.8925, 0.8733, 0.8612, 0.8538, 0.8494, 0.8465, 0.8451, 0.8437",\
                 "1.099, 1.085, 1.058, 1.034, 1.016, 1.005, 0.9989, 0.9945, 0.9918, 0.99",\
                 "1.303, 1.288, 1.256, 1.227, 1.205, 1.19, 1.181, 1.175, 1.171, 1.168");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.2328, 0.2345, 0.2392, 0.2465, 0.2521, 0.2569, 0.2608, 0.2645, 0.2676, 0.2739",\
                 "0.2309, 0.2324, 0.2377, 0.2445, 0.25, 0.2549, 0.2586, 0.2622, 0.2663, 0.273",\
                 "0.229, 0.2305, 0.235, 0.2415, 0.2472, 0.2521, 0.2563, 0.2595, 0.2631, 0.2703",\
                 "0.2395, 0.2396, 0.2417, 0.2459, 0.2508, 0.2558, 0.2608, 0.2645, 0.2681, 0.2756",\
                 "0.2712, 0.2696, 0.2688, 0.2701, 0.2733, 0.2778, 0.2824, 0.2865, 0.2906, 0.2979",\
                 "0.3284, 0.3245, 0.3194, 0.3172, 0.3199, 0.3225, 0.3261, 0.3293, 0.3342, 0.3416",\
                 "0.4143, 0.4088, 0.3989, 0.3922, 0.3918, 0.3952, 0.3972, 0.3981, 0.4013, 0.4103",\
                 "0.5311, 0.5234, 0.5097, 0.5002, 0.4929, 0.4925, 0.4984, 0.4985, 0.5003, 0.5095",\
                 "0.6801, 0.6704, 0.6529, 0.6376, 0.6264, 0.6214, 0.6213, 0.6272, 0.6295, 0.6418",\
                 "0.862, 0.8504, 0.8286, 0.8093, 0.7947, 0.7866, 0.7801, 0.7828, 0.7903, 0.8058");
        }
      }

      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.344, 0.36, 0.412, 0.52, 0.681, 0.874, 1.1, 1.36, 1.652, 1.978");
        }

        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.395, 0.405, 0.459, 0.565, 0.707, 0.884, 1.094, 1.337, 1.614, \
                  1.93");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.2625, 0.3059, 0.421, 0.5837, 0.7873, 1.041, 1.355, 1.743, 2.212, 2.771",\
                 "0.2735, 0.3169, 0.432, 0.5945, 0.7985, 1.052, 1.366, 1.754, 2.223, 2.782",\
                 "0.317, 0.3601, 0.4745, 0.6368, 0.8404, 1.094, 1.408, 1.795, 2.265, 2.824",\
                 "0.384, 0.4287, 0.5437, 0.7053, 0.9083, 1.161, 1.476, 1.863, 2.333, 2.891",\
                 "0.4249, 0.4733, 0.5926, 0.7539, 0.9566, 1.209, 1.523, 1.911, 2.38, 2.939",\
                 "0.43, 0.4786, 0.5973, 0.7582, 0.9602, 1.212, 1.526, 1.913, 2.382, 2.941",\
                 "0.4008, 0.4496, 0.5684, 0.7293, 0.9307, 1.182, 1.495, 1.882, 2.351, 2.909",\
                 "0.3385, 0.388, 0.5076, 0.6684, 0.8697, 1.121, 1.434, 1.82, 2.289, 2.847",\
                 "0.2431, 0.2933, 0.4139, 0.575, 0.7768, 1.028, 1.341, 1.727, 2.196, 2.754",\
                 "0.1117, 0.1632, 0.2851, 0.4471, 0.6489, 0.9003, 1.213, 1.6, 2.069, 2.627");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.2604, 0.3057, 0.4273, 0.6194, 0.9, 1.289, 1.8, 2.444, 3.233, 4.172",\
                 "0.2701, 0.3153, 0.437, 0.6291, 0.9097, 1.299, 1.81, 2.455, 3.242, 4.179",\
                 "0.3055, 0.3508, 0.4726, 0.6648, 0.9454, 1.335, 1.846, 2.49, 3.279, 4.217",\
                 "0.3518, 0.4005, 0.5263, 0.7201, 1.001, 1.39, 1.901, 2.545, 3.334, 4.272",\
                 "0.3773, 0.4332, 0.5678, 0.766, 1.049, 1.438, 1.949, 2.593, 3.382, 4.319",\
                 "0.3736, 0.4394, 0.5893, 0.7945, 1.079, 1.47, 1.981, 2.626, 3.413, 4.348",\
                 "0.3373, 0.4142, 0.5847, 0.8019, 1.092, 1.483, 1.996, 2.64, 3.426, 4.364",\
                 "0.2657, 0.3542, 0.5491, 0.7829, 1.081, 1.478, 1.991, 2.636, 3.423, 4.36",\
                 "0.1581, 0.258, 0.4798, 0.7342, 1.043, 1.447, 1.966, 2.613, 3.399, 4.337",\
                 "0.0105, 0.1241, 0.3735, 0.653, 0.9745, 1.386, 1.914, 2.567, 3.356, 4.294");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.139, 0.183, 0.306, 0.4854, 0.7389, 1.097, 1.585, 2.215, 3, 3.942",\
                 "0.1389, 0.1829, 0.3059, 0.4853, 0.7384, 1.097, 1.585, 2.215, 2.998, 3.944",\
                 "0.1372, 0.1814, 0.3044, 0.4843, 0.7392, 1.098, 1.584, 2.217, 3.002, 3.943",\
                 "0.1459, 0.1867, 0.3037, 0.4829, 0.7382, 1.098, 1.584, 2.215, 2.998, 3.943",\
                 "0.1612, 0.2016, 0.3104, 0.4824, 0.7352, 1.096, 1.585, 2.215, 3.001, 3.942",\
                 "0.166, 0.2036, 0.31, 0.4816, 0.7352, 1.092, 1.58, 2.215, 3.001, 3.943",\
                 "0.168, 0.2052, 0.3102, 0.4818, 0.7332, 1.093, 1.579, 2.209, 2.997, 3.937",\
                 "0.171, 0.2072, 0.3112, 0.4814, 0.7328, 1.091, 1.577, 2.209, 2.991, 3.932",\
                 "0.174, 0.2106, 0.3136, 0.4824, 0.7332, 1.092, 1.578, 2.209, 2.992, 3.932",\
                 "0.1794, 0.2148, 0.316, 0.4844, 0.7344, 1.092, 1.579, 2.212, 2.993, 3.932");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.1478, 0.1969, 0.3515, 0.6469, 1.13, 1.826, 2.745, 3.904, 5.319, 7.01",\
                 "0.1471, 0.1969, 0.3518, 0.6474, 1.131, 1.826, 2.746, 3.905, 5.315, 7",\
                 "0.1484, 0.1969, 0.352, 0.6485, 1.13, 1.826, 2.745, 3.901, 5.319, 7.009",\
                 "0.1631, 0.2086, 0.3584, 0.6496, 1.131, 1.826, 2.745, 3.904, 5.319, 7.009",\
                 "0.19, 0.2338, 0.374, 0.6588, 1.136, 1.827, 2.745, 3.902, 5.318, 7",\
                 "0.224, 0.2694, 0.4006, 0.671, 1.14, 1.831, 2.747, 3.897, 5.311, 6.995",\
                 "0.2622, 0.3128, 0.4398, 0.6954, 1.154, 1.834, 2.748, 3.904, 5.32, 7.002",\
                 "0.3034, 0.3598, 0.4888, 0.728, 1.175, 1.847, 2.753, 3.905, 5.315, 7.002",\
                 "0.348, 0.4102, 0.5478, 0.7726, 1.204, 1.877, 2.771, 3.915, 5.318, 7.002",\
                 "0.3974, 0.4622, 0.6104, 0.8262, 1.24, 1.907, 2.806, 3.945, 5.333, 7.005");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : positive_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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.387, 0.4309, 0.5502, 0.717, 0.9231, 1.177, 1.492, 1.88, 2.35, 2.908",\
                 "0.3987, 0.4426, 0.5618, 0.7287, 0.9347, 1.189, 1.504, 1.892, 2.361, 2.92",\
                 "0.4464, 0.4901, 0.6093, 0.7762, 0.9823, 1.237, 1.552, 1.939, 2.409, 2.968",\
                 "0.5412, 0.5846, 0.7034, 0.8709, 1.077, 1.332, 1.647, 2.035, 2.505, 3.063",\
                 "0.6674, 0.7114, 0.8323, 1.004, 1.212, 1.468, 1.784, 2.171, 2.641, 3.2",\
                 "0.8184, 0.8643, 0.9885, 1.165, 1.379, 1.638, 1.954, 2.342, 2.812, 3.371",\
                 "0.9907, 1.04, 1.172, 1.358, 1.58, 1.843, 2.162, 2.551, 3.021, 3.579",\
                 "1.182, 1.235, 1.375, 1.575, 1.813, 2.087, 2.411, 2.802, 3.273, 3.831",\
                 "1.391, 1.447, 1.598, 1.813, 2.07, 2.362, 2.699, 3.096, 3.569, 4.128",\
                 "1.619, 1.681, 1.841, 2.068, 2.345, 2.66, 3.018, 3.431, 3.911, 4.472");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.4132, 0.4598, 0.5847, 0.7802, 1.063, 1.454, 1.966, 2.611, 3.4, 4.339",\
                 "0.4218, 0.4683, 0.5934, 0.7887, 1.072, 1.463, 1.975, 2.619, 3.409, 4.346",\
                 "0.4546, 0.5011, 0.626, 0.821, 1.104, 1.495, 2.008, 2.654, 3.44, 4.376",\
                 "0.5117, 0.5577, 0.6817, 0.8761, 1.159, 1.55, 2.063, 2.709, 3.496, 4.433",\
                 "0.5684, 0.6151, 0.7413, 0.937, 1.22, 1.61, 2.123, 2.769, 3.556, 4.494",\
                 "0.6167, 0.6649, 0.7949, 0.9932, 1.277, 1.667, 2.179, 2.825, 3.612, 4.549",\
                 "0.6499, 0.7008, 0.8371, 1.042, 1.328, 1.717, 2.23, 2.874, 3.662, 4.6",\
                 "0.6649, 0.7186, 0.8619, 1.077, 1.37, 1.763, 2.275, 2.92, 3.705, 4.643",\
                 "0.6597, 0.7174, 0.8685, 1.092, 1.395, 1.797, 2.314, 2.958, 3.744, 4.681",\
                 "0.6333, 0.6947, 0.8546, 1.089, 1.401, 1.815, 2.343, 2.994, 3.78, 4.717");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.1447, 0.1904, 0.3149, 0.4922, 0.7436, 1.099, 1.587, 2.216, 3.001, 3.943",\
                 "0.1446, 0.1901, 0.3156, 0.4921, 0.7431, 1.1, 1.586, 2.216, 3.001, 3.942",\
                 "0.145, 0.1905, 0.3154, 0.4925, 0.7431, 1.099, 1.585, 2.216, 3.002, 3.943",\
                 "0.1486, 0.1944, 0.3198, 0.4966, 0.746, 1.1, 1.588, 2.218, 3.002, 3.943",\
                 "0.162, 0.2076, 0.3346, 0.5092, 0.7542, 1.106, 1.588, 2.218, 3.001, 3.941",\
                 "0.1808, 0.2262, 0.3536, 0.5318, 0.7718, 1.117, 1.596, 2.221, 3.002, 3.944",\
                 "0.2062, 0.2536, 0.3838, 0.565, 0.799, 1.135, 1.606, 2.227, 3.006, 3.944",\
                 "0.2356, 0.2846, 0.4218, 0.6176, 0.8502, 1.172, 1.627, 2.238, 3.009, 3.945",\
                 "0.264, 0.3178, 0.4614, 0.6742, 0.9224, 1.243, 1.683, 2.267, 3.022, 3.948",\
                 "0.2952, 0.3522, 0.5038, 0.7322, 1.002, 1.335, 1.773, 2.339, 3.068, 3.967");
        }

        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.007666, 0.01257, 0.02978, 0.06265, 0.1139, 0.1857, 0.2803, 0.3994, 0.5448, 0.7181");
          values("0.1491, 0.1974, 0.3505, 0.6465, 1.13, 1.826, 2.745, 3.901, 5.322, 7.013",\
                 "0.1496, 0.1969, 0.3504, 0.6464, 1.129, 1.826, 2.745, 3.901, 5.32, 7.001",\
                 "0.1492, 0.197, 0.3511, 0.6461, 1.131, 1.827, 2.746, 3.904, 5.313, 6.999",\
                 "0.1515, 0.1998, 0.3529, 0.6474, 1.131, 1.826, 2.746, 3.905, 5.313, 7.001",\
                 "0.1598, 0.2094, 0.3624, 0.6536, 1.131, 1.826, 2.746, 3.904, 5.313, 7.001",\
                 "0.1726, 0.2228, 0.3766, 0.663, 1.137, 1.829, 2.745, 3.903, 5.32, 7",\
                 "0.1906, 0.242, 0.3994, 0.6818, 1.146, 1.831, 2.745, 3.907, 5.314, 6.993",\
                 "0.2126, 0.2652, 0.4274, 0.7114, 1.171, 1.843, 2.749, 3.903, 5.321, 6.992",\
                 "0.237, 0.2904, 0.4556, 0.7456, 1.209, 1.876, 2.768, 3.908, 5.315, 7.006",\
                 "0.2634, 0.3198, 0.4862, 0.7816, 1.249, 1.925, 2.813, 3.937, 5.33, 6.999");
        }
      }
    }
  }

