/*
 * 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_3) {
    area : 50.489600 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.1947, 0.194, 0.206, 0.2433, 0.3133, 0.4211, 0.5689, 0.7593, \
                  0.9948, 1.278");
        }

        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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.1291, 0.1282, 0.1371, 0.1624, 0.2061, 0.2736, 0.373, 0.5056, \
                  0.6725, 0.8748");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.1007, 0.09994, 0.1063, 0.1269, 0.1644, 0.221, 0.2981, 0.3969, \
                  0.5189, 0.6652");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.03518, 0.03506, 0.03986, 0.05611, 0.08773, 0.1365, 0.2034, 0.2899, \
                  0.3968, 0.5254");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.006626 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.056 ;
      max_transition : 7.4 ;
      min_capacitance : 0.007626 ;
      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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.2027, 0.2017, 0.2007, 0.2001, 0.1998, 0.1997, 0.1996, 0.1995, 0.1995, 0.1994",\
                 "0.2038, 0.2029, 0.202, 0.2013, 0.2011, 0.2009, 0.2008, 0.2007, 0.2006, 0.2006",\
                 "0.2157, 0.2151, 0.2145, 0.2142, 0.2142, 0.2141, 0.2141, 0.2141, 0.214, 0.214",\
                 "0.2448, 0.2446, 0.2445, 0.2443, 0.2443, 0.2444, 0.2444, 0.2444, 0.2444, 0.2444",\
                 "0.2955, 0.2955, 0.2954, 0.2954, 0.2954, 0.2954, 0.2954, 0.2954, 0.2954, 0.2954",\
                 "0.3688, 0.3689, 0.3685, 0.3684, 0.3686, 0.3687, 0.3687, 0.3687, 0.3687, 0.3687",\
                 "0.466, 0.4661, 0.4658, 0.4658, 0.4658, 0.4659, 0.466, 0.466, 0.466, 0.466",\
                 "0.5884, 0.5885, 0.5883, 0.5882, 0.5882, 0.5884, 0.5883, 0.5884, 0.5884, 0.5884",\
                 "0.7373, 0.7372, 0.7371, 0.737, 0.7371, 0.7371, 0.7371, 0.7371, 0.7372, 0.7372",\
                 "0.914, 0.9142, 0.9141, 0.914, 0.9141, 0.9142, 0.9141, 0.9141, 0.9141, 0.9141");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.1466, 0.1464, 0.1463, 0.1465, 0.1475, 0.1492, 0.1502, 0.1521, 0.1552, 0.163",\
                 "0.1462, 0.1462, 0.1458, 0.1462, 0.147, 0.149, 0.1502, 0.151, 0.1552, 0.1638",\
                 "0.1555, 0.1552, 0.1553, 0.1556, 0.1563, 0.158, 0.1588, 0.1614, 0.1639, 0.1735",\
                 "0.1873, 0.1872, 0.1877, 0.1881, 0.1889, 0.1906, 0.1923, 0.1938, 0.1963, 0.2034",\
                 "0.249, 0.249, 0.2485, 0.2498, 0.2513, 0.2521, 0.2542, 0.2557, 0.2578, 0.2673",\
                 "0.3445, 0.3446, 0.3448, 0.3442, 0.3465, 0.3493, 0.35, 0.3511, 0.3538, 0.3628",\
                 "0.4754, 0.4757, 0.476, 0.4755, 0.4759, 0.4797, 0.4832, 0.4851, 0.4852, 0.4987",\
                 "0.644, 0.6445, 0.6448, 0.6449, 0.6444, 0.646, 0.651, 0.655, 0.6575, 0.67",\
                 "0.8526, 0.8533, 0.854, 0.8539, 0.8532, 0.8541, 0.8565, 0.8635, 0.8692, 0.8865",\
                 "1.103, 1.104, 1.105, 1.105, 1.104, 1.104, 1.106, 1.11, 1.12, 1.149");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.348, 0.3445, 0.3412, 0.3399, 0.3395, 0.3391, 0.3389, 0.3387, 0.3387, 0.3386",\
                 "0.3477, 0.3443, 0.3408, 0.3396, 0.339, 0.3389, 0.3387, 0.3386, 0.3384, 0.3383",\
                 "0.3535, 0.35, 0.3465, 0.3451, 0.3447, 0.3444, 0.3442, 0.344, 0.344, 0.3439",\
                 "0.3743, 0.3704, 0.3663, 0.3647, 0.3642, 0.3639, 0.3637, 0.3635, 0.3634, 0.3633",\
                 "0.4141, 0.4098, 0.4046, 0.4029, 0.402, 0.4015, 0.4013, 0.401, 0.4009, 0.4009",\
                 "0.4751, 0.4701, 0.4647, 0.4615, 0.4604, 0.46, 0.4595, 0.4593, 0.4591, 0.4589",\
                 "0.5584, 0.5526, 0.5454, 0.5417, 0.5401, 0.5392, 0.5389, 0.5385, 0.5383, 0.5381",\
                 "0.6648, 0.6582, 0.6494, 0.6448, 0.6425, 0.6415, 0.6409, 0.6405, 0.6402, 0.64",\
                 "0.7956, 0.7885, 0.7777, 0.7719, 0.769, 0.7676, 0.7669, 0.7663, 0.766, 0.7658",\
                 "0.9513, 0.9435, 0.9316, 0.9242, 0.9205, 0.9186, 0.9178, 0.9169, 0.9166, 0.9163");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.2971, 0.2963, 0.2977, 0.3007, 0.3042, 0.3075, 0.3096, 0.3129, 0.3165, 0.3254",\
                 "0.2964, 0.2956, 0.2967, 0.3, 0.3037, 0.3068, 0.31, 0.3126, 0.3157, 0.3254",\
                 "0.3031, 0.302, 0.3033, 0.3067, 0.3103, 0.3137, 0.3161, 0.3183, 0.3222, 0.3294",\
                 "0.3275, 0.3262, 0.327, 0.3298, 0.3331, 0.336, 0.3395, 0.341, 0.3442, 0.3536",\
                 "0.373, 0.3709, 0.3715, 0.3736, 0.377, 0.3799, 0.3831, 0.3857, 0.388, 0.3984",\
                 "0.4417, 0.4396, 0.4375, 0.4403, 0.4425, 0.4458, 0.4479, 0.4512, 0.4538, 0.467",\
                 "0.5356, 0.532, 0.5292, 0.5291, 0.5324, 0.5361, 0.539, 0.5405, 0.5433, 0.5577",\
                 "0.6549, 0.6508, 0.6468, 0.6455, 0.6457, 0.6506, 0.6552, 0.6582, 0.6611, 0.6796",\
                 "0.8021, 0.7978, 0.7922, 0.7893, 0.7889, 0.7914, 0.7964, 0.8019, 0.806, 0.8329",\
                 "0.9788, 0.9733, 0.9657, 0.961, 0.9613, 0.9617, 0.9652, 0.9732, 0.9812, 1.029");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.22, 0.235, 0.289, 0.397, 0.539, 0.712, 0.913, 1.142, 1.403, \
                  1.695");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.262, 0.273, 0.33, 0.429, 0.559, 0.717, 0.905, 1.124, 1.375, \
                  1.659");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.1662, 0.2063, 0.3076, 0.4513, 0.6372, 0.8768, 1.183, 1.566, 2.032, 2.588",\
                 "0.1777, 0.2175, 0.3187, 0.4624, 0.6482, 0.8879, 1.194, 1.577, 2.043, 2.599",\
                 "0.2179, 0.2575, 0.3582, 0.501, 0.6865, 0.9261, 1.232, 1.615, 2.081, 2.637",\
                 "0.2526, 0.297, 0.4015, 0.5441, 0.7292, 0.9687, 1.275, 1.657, 2.123, 2.68",\
                 "0.2565, 0.3027, 0.4072, 0.5491, 0.7335, 0.9721, 1.278, 1.66, 2.127, 2.683",\
                 "0.2296, 0.2769, 0.3817, 0.5233, 0.7074, 0.9456, 1.251, 1.633, 2.099, 2.655",\
                 "0.1719, 0.221, 0.3277, 0.4697, 0.6534, 0.8915, 1.197, 1.579, 2.044, 2.599",\
                 "0.0819, 0.1333, 0.2421, 0.3847, 0.5688, 0.807, 1.112, 1.494, 1.96, 2.515",\
                 "-0.0426, 0.0112, 0.1232, 0.267, 0.4518, 0.6902, 0.9955, 1.378, 1.843, 2.399",\
                 "-0.2037, -0.1463, -0.0311, 0.1147, 0.3001, 0.5388, 0.8443, 1.227, 1.693, 2.248");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.1697, 0.2139, 0.3307, 0.5219, 0.8112, 1.216, 1.749, 2.421, 3.241, 4.219",\
                 "0.1789, 0.2232, 0.3399, 0.5312, 0.8205, 1.226, 1.758, 2.43, 3.249, 4.227",\
                 "0.2088, 0.2545, 0.372, 0.5637, 0.8531, 1.258, 1.79, 2.462, 3.282, 4.259",\
                 "0.2286, 0.2815, 0.4061, 0.6003, 0.8899, 1.295, 1.828, 2.498, 3.32, 4.295",\
                 "0.22, 0.2849, 0.424, 0.6233, 0.9144, 1.319, 1.853, 2.524, 3.341, 4.32",\
                 "0.178, 0.2568, 0.4179, 0.6286, 0.9241, 1.33, 1.863, 2.534, 3.353, 4.329",\
                 "0.0989, 0.1931, 0.3825, 0.6087, 0.9135, 1.325, 1.859, 2.53, 3.349, 4.327",\
                 "-0.0205, 0.0916, 0.313, 0.5605, 0.8764, 1.298, 1.839, 2.511, 3.331, 4.306",\
                 "-0.1835, -0.05, 0.2067, 0.4814, 0.8103, 1.243, 1.796, 2.476, 3.297, 4.274",\
                 "-0.3942, -0.2364, 0.0591, 0.3679, 0.7126, 1.157, 1.722, 2.416, 3.246, 4.225");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.09368, 0.1345, 0.2485, 0.4214, 0.6778, 1.053, 1.56, 2.209, 3.009, 3.971",\
                 "0.09314, 0.1341, 0.2483, 0.4211, 0.6791, 1.052, 1.559, 2.212, 3.013, 3.97",\
                 "0.09188, 0.1326, 0.2464, 0.4196, 0.677, 1.05, 1.559, 2.212, 3.013, 3.97",\
                 "0.1056, 0.1459, 0.2499, 0.4186, 0.6774, 1.052, 1.56, 2.211, 3.012, 3.97",\
                 "0.1147, 0.1502, 0.2496, 0.4176, 0.674, 1.048, 1.556, 2.212, 3.013, 3.97",\
                 "0.121, 0.154, 0.2502, 0.4162, 0.6726, 1.047, 1.553, 2.205, 3.01, 3.968",\
                 "0.128, 0.1588, 0.2524, 0.4166, 0.6726, 1.047, 1.554, 2.204, 3.003, 3.966",\
                 "0.137, 0.1656, 0.2558, 0.4184, 0.6736, 1.046, 1.555, 2.204, 3.003, 3.957",\
                 "0.1468, 0.1732, 0.2602, 0.4218, 0.675, 1.048, 1.555, 2.207, 3.004, 3.958",\
                 "0.1576, 0.184, 0.2664, 0.4248, 0.6762, 1.05, 1.555, 2.206, 3.006, 3.959");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.1036, 0.1543, 0.3178, 0.6414, 1.166, 1.907, 2.883, 4.109, 5.61, 7.4",\
                 "0.1038, 0.1546, 0.3176, 0.6406, 1.164, 1.907, 2.878, 4.115, 5.61, 7.401",\
                 "0.1086, 0.1573, 0.3197, 0.641, 1.164, 1.908, 2.88, 4.113, 5.608, 7.401",\
                 "0.1295, 0.1752, 0.3287, 0.6448, 1.166, 1.907, 2.885, 4.11, 5.612, 7.4",\
                 "0.1592, 0.2076, 0.3484, 0.6536, 1.169, 1.907, 2.884, 4.112, 5.607, 7.401",\
                 "0.1966, 0.2492, 0.3826, 0.6732, 1.177, 1.909, 2.886, 4.111, 5.615, 7.396",\
                 "0.241, 0.297, 0.4308, 0.7038, 1.201, 1.923, 2.887, 4.118, 5.61, 7.394",\
                 "0.2952, 0.3506, 0.49, 0.744, 1.234, 1.958, 2.908, 4.119, 5.618, 7.407",\
                 "0.3556, 0.4136, 0.5598, 0.7952, 1.273, 1.999, 2.951, 4.15, 5.625, 7.408",\
                 "0.424, 0.4854, 0.6396, 0.8608, 1.315, 2.046, 3.007, 4.203, 5.662, 7.421");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.3551, 0.3952, 0.4987, 0.6448, 0.8318, 1.072, 1.378, 1.761, 2.227, 2.783",\
                 "0.3647, 0.4048, 0.5084, 0.6545, 0.8414, 1.081, 1.388, 1.77, 2.236, 2.793",\
                 "0.395, 0.4351, 0.5385, 0.6847, 0.8718, 1.112, 1.418, 1.801, 2.267, 2.823",\
                 "0.4181, 0.4581, 0.5616, 0.7077, 0.8948, 1.135, 1.441, 1.824, 2.29, 2.846",\
                 "0.4212, 0.4611, 0.5644, 0.7112, 0.8984, 1.138, 1.445, 1.827, 2.294, 2.849",\
                 "0.3989, 0.4389, 0.5432, 0.6903, 0.8778, 1.118, 1.424, 1.807, 2.273, 2.829",\
                 "0.3492, 0.3893, 0.4934, 0.6411, 0.8293, 1.07, 1.376, 1.759, 2.225, 2.78",\
                 "0.269, 0.3093, 0.4138, 0.5619, 0.7506, 0.9914, 1.298, 1.681, 2.147, 2.702",\
                 "0.1561, 0.1968, 0.3015, 0.4509, 0.64, 0.8812, 1.188, 1.57, 2.037, 2.592",\
                 "0.0072, 0.0487, 0.1546, 0.3049, 0.4949, 0.7362, 1.043, 1.426, 1.892, 2.448");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.4436, 0.4881, 0.6064, 0.7997, 1.09, 1.496, 2.029, 2.702, 3.522, 4.5",\
                 "0.4556, 0.5, 0.6184, 0.8116, 1.102, 1.508, 2.041, 2.714, 3.534, 4.512",\
                 "0.511, 0.5553, 0.6737, 0.8669, 1.158, 1.563, 2.097, 2.769, 3.59, 4.568",\
                 "0.6144, 0.6586, 0.7768, 0.97, 1.26, 1.667, 2.2, 2.873, 3.693, 4.67",\
                 "0.7539, 0.7974, 0.9159, 1.109, 1.4, 1.805, 2.339, 3.011, 3.831, 4.805",\
                 "0.9259, 0.9704, 1.088, 1.281, 1.571, 1.977, 2.51, 3.182, 4.003, 4.981",\
                 "1.13, 1.174, 1.293, 1.486, 1.776, 2.181, 2.714, 3.385, 4.204, 5.184",\
                 "1.367, 1.412, 1.531, 1.724, 2.014, 2.419, 2.952, 3.623, 4.442, 5.418",\
                 "1.639, 1.684, 1.804, 1.998, 2.287, 2.693, 3.226, 3.896, 4.715, 5.691",\
                 "1.947, 1.993, 2.115, 2.309, 2.599, 3.004, 3.536, 4.207, 5.025, 6");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.1005, 0.1422, 0.2558, 0.4266, 0.6812, 1.053, 1.561, 2.212, 3.014, 3.969",\
                 "0.1004, 0.1419, 0.2553, 0.4272, 0.6815, 1.052, 1.561, 2.208, 3.013, 3.97",\
                 "0.1005, 0.1424, 0.2557, 0.4268, 0.6815, 1.053, 1.561, 2.212, 3.014, 3.97",\
                 "0.1013, 0.1426, 0.2567, 0.4276, 0.6818, 1.053, 1.56, 2.211, 3.011, 3.968",\
                 "0.1028, 0.1442, 0.2584, 0.4284, 0.682, 1.054, 1.561, 2.209, 3.011, 3.967",\
                 "0.1046, 0.1466, 0.2602, 0.4298, 0.6834, 1.053, 1.558, 2.208, 3.013, 3.97",\
                 "0.1078, 0.1492, 0.2634, 0.4334, 0.6854, 1.055, 1.562, 2.208, 3.008, 3.968",\
                 "0.1106, 0.152, 0.266, 0.4356, 0.6866, 1.055, 1.56, 2.209, 3.007, 3.961",\
                 "0.1148, 0.1564, 0.2694, 0.439, 0.6904, 1.057, 1.561, 2.21, 3.008, 3.962",\
                 "0.1196, 0.1612, 0.274, 0.4434, 0.6918, 1.058, 1.562, 2.21, 3.01, 3.964");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.007626, 0.01487, 0.04028, 0.08881, 0.1644, 0.2705, 0.4101, 0.5859, 0.8006, 1.056");
          values("0.1067, 0.1567, 0.3198, 0.6406, 1.166, 1.907, 2.88, 4.114, 5.612, 7.4",\
                 "0.1066, 0.1566, 0.3188, 0.6407, 1.166, 1.907, 2.879, 4.117, 5.611, 7.4",\
                 "0.1066, 0.1566, 0.3188, 0.6417, 1.166, 1.907, 2.882, 4.109, 5.608, 7.399",\
                 "0.1071, 0.1573, 0.3194, 0.6416, 1.165, 1.907, 2.879, 4.116, 5.612, 7.4",\
                 "0.1078, 0.1582, 0.3206, 0.6422, 1.165, 1.907, 2.879, 4.117, 5.608, 7.404",\
                 "0.1092, 0.16, 0.3218, 0.642, 1.164, 1.908, 2.884, 4.11, 5.61, 7.396",\
                 "0.1118, 0.1626, 0.3238, 0.6438, 1.165, 1.904, 2.885, 4.107, 5.608, 7.398",\
                 "0.1154, 0.1662, 0.3274, 0.6454, 1.167, 1.905, 2.88, 4.116, 5.619, 7.396",\
                 "0.12, 0.1706, 0.3308, 0.6468, 1.167, 1.906, 2.879, 4.108, 5.609, 7.397",\
                 "0.1248, 0.1752, 0.3362, 0.6486, 1.166, 1.907, 2.881, 4.11, 5.609, 7.414");
        }
      }
    }
  }

