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

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.4506, 0.4523, 0.477, 0.547, 0.6746, 0.8693, 1.138, 1.485, 1.914, \
                  2.431");
        }

        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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.2916, 0.2927, 0.3105, 0.357, 0.4367, 0.5534, 0.7225, 0.956, \
                  1.254, 1.617");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.2558, 0.2561, 0.2684, 0.306, 0.3729, 0.4734, 0.6119, 0.7903, \
                  1.01, 1.274");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.09185, 0.09241, 0.1016, 0.1296, 0.1854, 0.2724, 0.393, 0.549, \
                  0.7426, 0.9756");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.006493 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.9147 ;
      max_transition : 2.6 ;
      min_capacitance : 0.007493 ;
      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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.5286, 0.5247, 0.5208, 0.5187, 0.5176, 0.5171, 0.5166, 0.5162, 0.5159, 0.5156",\
                 "0.5314, 0.5277, 0.5238, 0.5216, 0.5207, 0.5203, 0.5198, 0.5193, 0.5191, 0.5189",\
                 "0.5545, 0.5511, 0.5482, 0.5467, 0.5462, 0.5459, 0.5456, 0.5452, 0.5452, 0.5449",\
                 "0.607, 0.6056, 0.6045, 0.6042, 0.6043, 0.6045, 0.6046, 0.6044, 0.6044, 0.6047",\
                 "0.7034, 0.7031, 0.7034, 0.7032, 0.7029, 0.7031, 0.7032, 0.7031, 0.7031, 0.7034",\
                 "0.8439, 0.8444, 0.8445, 0.8437, 0.8441, 0.8442, 0.8441, 0.8442, 0.8441, 0.8442",\
                 "1.03, 1.03, 1.03, 1.029, 1.029, 1.03, 1.03, 1.03, 1.03, 1.03",\
                 "1.262, 1.262, 1.262, 1.261, 1.261, 1.261, 1.261, 1.262, 1.262, 1.262",\
                 "1.543, 1.543, 1.543, 1.543, 1.543, 1.543, 1.543, 1.543, 1.543, 1.543",\
                 "1.876, 1.876, 1.876, 1.876, 1.875, 1.876, 1.876, 1.875, 1.876, 1.876");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.3794, 0.3796, 0.3799, 0.3807, 0.3817, 0.3834, 0.3846, 0.3917, 0.3945, 0.4053",\
                 "0.3805, 0.3808, 0.3808, 0.3815, 0.3824, 0.3834, 0.3868, 0.3917, 0.3994, 0.4086",\
                 "0.3991, 0.3991, 0.3997, 0.3998, 0.4002, 0.4016, 0.4055, 0.4104, 0.4115, 0.4251",\
                 "0.4571, 0.4577, 0.4586, 0.4595, 0.4598, 0.4615, 0.4633, 0.472, 0.4726, 0.4828",\
                 "0.5693, 0.5703, 0.568, 0.5735, 0.5727, 0.5732, 0.5749, 0.582, 0.587, 0.5967",\
                 "0.7426, 0.7426, 0.7428, 0.7405, 0.7482, 0.7492, 0.7471, 0.7531, 0.7608, 0.7732",\
                 "0.9816, 0.9811, 0.9822, 0.9816, 0.9816, 0.9901, 0.9902, 0.9912, 0.9989, 1.005",\
                 "1.291, 1.291, 1.291, 1.292, 1.289, 1.291, 1.303, 1.306, 1.312, 1.31",\
                 "1.672, 1.673, 1.674, 1.677, 1.672, 1.673, 1.678, 1.692, 1.698, 1.703",\
                 "2.132, 2.133, 2.134, 2.136, 2.135, 2.132, 2.132, 2.142, 2.164, 2.168");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.96, 0.9443, 0.9203, 0.907, 0.8995, 0.896, 0.8941, 0.8919, 0.8905, 0.8894",\
                 "0.9602, 0.944, 0.9206, 0.9074, 0.9, 0.897, 0.8937, 0.8924, 0.8909, 0.8899",\
                 "0.9721, 0.9561, 0.9325, 0.9194, 0.911, 0.9078, 0.9053, 0.9039, 0.9018, 0.9009",\
                 "1.014, 0.9981, 0.9737, 0.959, 0.9514, 0.9475, 0.9454, 0.9437, 0.9418, 0.9414",\
                 "1.093, 1.077, 1.051, 1.035, 1.027, 1.023, 1.02, 1.018, 1.016, 1.016",\
                 "1.213, 1.196, 1.168, 1.151, 1.142, 1.136, 1.133, 1.131, 1.129, 1.128",\
                 "1.377, 1.358, 1.328, 1.308, 1.298, 1.292, 1.288, 1.286, 1.284, 1.283",\
                 "1.585, 1.566, 1.531, 1.509, 1.496, 1.489, 1.485, 1.482, 1.48, 1.478",\
                 "1.837, 1.816, 1.779, 1.754, 1.739, 1.731, 1.726, 1.722, 1.721, 1.719",\
                 "2.135, 2.114, 2.076, 2.048, 2.029, 2.019, 2.013, 2.01, 2.007, 2.006");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.7816, 0.7794, 0.7799, 0.7861, 0.7955, 0.8044, 0.8105, 0.8215, 0.8297, 0.8422",\
                 "0.7823, 0.7801, 0.7802, 0.787, 0.7958, 0.8038, 0.8105, 0.8198, 0.833, 0.8394",\
                 "0.7953, 0.7929, 0.7933, 0.7999, 0.8092, 0.8165, 0.8243, 0.8325, 0.8462, 0.8488",\
                 "0.8413, 0.8389, 0.8385, 0.8443, 0.8528, 0.8616, 0.8666, 0.8748, 0.8908, 0.8961",\
                 "0.9303, 0.9271, 0.924, 0.9289, 0.9368, 0.9452, 0.9508, 0.9628, 0.9738, 0.9813",\
                 "1.066, 1.06, 1.056, 1.059, 1.064, 1.072, 1.078, 1.086, 1.098, 1.111",\
                 "1.249, 1.242, 1.234, 1.234, 1.242, 1.244, 1.253, 1.258, 1.27, 1.283",\
                 "1.483, 1.475, 1.466, 1.457, 1.461, 1.47, 1.475, 1.478, 1.488, 1.497",\
                 "1.767, 1.757, 1.744, 1.735, 1.73, 1.741, 1.752, 1.754, 1.76, 1.764",\
                 "2.104, 2.092, 2.077, 2.066, 2.061, 2.061, 2.069, 2.087, 2.086, 2.093");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.1516, 0.1555, 0.1724, 0.2096, 0.2698, 0.3455, 0.4333, 0.5336, \
                  0.6455, 0.7702");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.157, 0.161, 0.1804, 0.2174, 0.2685, 0.3317, 0.4055, 0.4903, \
                  0.5873, 0.6962");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.0859, 0.1019, 0.1423, 0.2011, 0.2774, 0.3745, 0.4976, 0.651, 0.8377, 1.06",\
                 "0.08942, 0.1053, 0.1457, 0.2045, 0.2807, 0.3779, 0.501, 0.6543, 0.841, 1.064",\
                 "0.1028, 0.1186, 0.1588, 0.2175, 0.2937, 0.3908, 0.5139, 0.6673, 0.854, 1.077",\
                 "0.1193, 0.1364, 0.1784, 0.2375, 0.3137, 0.4109, 0.5341, 0.6874, 0.8741, 1.097",\
                 "0.1276, 0.1463, 0.1916, 0.2514, 0.3277, 0.4248, 0.5478, 0.7011, 0.8878, 1.11",\
                 "0.1261, 0.146, 0.192, 0.2523, 0.3285, 0.4254, 0.5482, 0.7014, 0.8881, 1.11",\
                 "0.1149, 0.1359, 0.1827, 0.2432, 0.3191, 0.4158, 0.5385, 0.6916, 0.878, 1.101",\
                 "0.09237, 0.114, 0.1622, 0.2231, 0.2993, 0.3961, 0.5187, 0.6718, 0.8583, 1.081",\
                 "0.0577, 0.0812, 0.1303, 0.1918, 0.2682, 0.365, 0.4877, 0.6408, 0.8274, 1.05",\
                 "0.0108, 0.0357, 0.0865, 0.1487, 0.2254, 0.3222, 0.4449, 0.5981, 0.7846, 1.007");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.08521, 0.1032, 0.1491, 0.2213, 0.3288, 0.479, 0.6766, 0.9255, 1.23, 1.592",\
                 "0.08805, 0.106, 0.1519, 0.2241, 0.3317, 0.4819, 0.6793, 0.9286, 1.232, 1.595",\
                 "0.0983, 0.1166, 0.1628, 0.2351, 0.3426, 0.4928, 0.6906, 0.939, 1.244, 1.607",\
                 "0.1082, 0.1289, 0.1781, 0.2513, 0.3589, 0.5091, 0.7065, 0.9557, 1.26, 1.622",\
                 "0.1096, 0.134, 0.189, 0.2645, 0.3725, 0.5227, 0.7204, 0.9693, 1.274, 1.635",\
                 "0.09946, 0.1282, 0.1914, 0.2715, 0.3808, 0.5311, 0.7287, 0.9774, 1.282, 1.644",\
                 "0.0766, 0.1103, 0.1828, 0.2696, 0.3818, 0.5334, 0.7311, 0.9798, 1.283, 1.646",\
                 "0.0399, 0.07926, 0.1612, 0.2572, 0.3732, 0.5274, 0.7267, 0.9757, 1.279, 1.641",\
                 "-0.0116, 0.0343, 0.1265, 0.2328, 0.3538, 0.511, 0.7135, 0.9644, 1.268, 1.631",\
                 "-0.08, -0.0266, 0.0773, 0.195, 0.3226, 0.4829, 0.6887, 0.9432, 1.25, 1.612");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.04242, 0.05692, 0.1006, 0.1702, 0.2699, 0.4116, 0.6039, 0.8534, 1.159, 1.525",\
                 "0.04226, 0.05672, 0.1003, 0.1702, 0.2699, 0.4115, 0.604, 0.8533, 1.159, 1.524",\
                 "0.04136, 0.05608, 0.09974, 0.1702, 0.2693, 0.4112, 0.6036, 0.8524, 1.159, 1.525",\
                 "0.04546, 0.06012, 0.1021, 0.1705, 0.2694, 0.4109, 0.604, 0.8521, 1.158, 1.526",\
                 "0.05036, 0.0659, 0.1077, 0.1728, 0.2695, 0.4115, 0.6048, 0.8521, 1.158, 1.525",\
                 "0.0555, 0.07038, 0.1091, 0.1729, 0.2693, 0.4097, 0.6023, 0.8525, 1.159, 1.524",\
                 "0.05962, 0.0738, 0.1106, 0.1731, 0.2696, 0.4098, 0.6018, 0.8498, 1.157, 1.523",\
                 "0.06428, 0.07762, 0.1124, 0.1742, 0.2698, 0.4096, 0.6022, 0.85, 1.156, 1.522",\
                 "0.0694, 0.081, 0.1146, 0.1756, 0.2702, 0.4094, 0.602, 0.85, 1.156, 1.522",\
                 "0.0752, 0.0864, 0.1178, 0.1768, 0.2708, 0.4102, 0.6028, 0.8506, 1.157, 1.522");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.04562, 0.06428, 0.1209, 0.2313, 0.4134, 0.6735, 1.015, 1.447, 1.975, 2.603",\
                 "0.04562, 0.0644, 0.1209, 0.2313, 0.4137, 0.6735, 1.015, 1.448, 1.974, 2.603",\
                 "0.04696, 0.06536, 0.1213, 0.2313, 0.4131, 0.6727, 1.016, 1.447, 1.976, 2.605",\
                 "0.0546, 0.07236, 0.1251, 0.2325, 0.4137, 0.6736, 1.016, 1.447, 1.974, 2.602",\
                 "0.06534, 0.08428, 0.1344, 0.2361, 0.4147, 0.6732, 1.016, 1.448, 1.976, 2.603",\
                 "0.07892, 0.09842, 0.1494, 0.2439, 0.4171, 0.6736, 1.015, 1.445, 1.974, 2.605",\
                 "0.09558, 0.1145, 0.1682, 0.2568, 0.4243, 0.6771, 1.016, 1.448, 1.976, 2.601",\
                 "0.1146, 0.1329, 0.1889, 0.2738, 0.4354, 0.6866, 1.022, 1.448, 1.974, 2.603",\
                 "0.1374, 0.1552, 0.2106, 0.2958, 0.4478, 0.6976, 1.035, 1.456, 1.975, 2.604",\
                 "0.1642, 0.1816, 0.2348, 0.3214, 0.4642, 0.7102, 1.05, 1.471, 1.986, 2.605");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.1946, 0.2095, 0.2491, 0.3082, 0.3849, 0.4822, 0.6052, 0.7584, 0.9451, 1.168",\
                 "0.1974, 0.2123, 0.2519, 0.311, 0.3877, 0.485, 0.608, 0.7612, 0.9479, 1.17",\
                 "0.2085, 0.2234, 0.2629, 0.322, 0.3988, 0.4961, 0.6191, 0.7723, 0.959, 1.181",\
                 "0.2235, 0.2384, 0.278, 0.3371, 0.4137, 0.5111, 0.6341, 0.7873, 0.974, 1.196",\
                 "0.2349, 0.2497, 0.2892, 0.3483, 0.425, 0.5222, 0.6453, 0.7985, 0.9851, 1.208",\
                 "0.2394, 0.2543, 0.2937, 0.3527, 0.4295, 0.5268, 0.6498, 0.803, 0.9897, 1.212",\
                 "0.2358, 0.2505, 0.29, 0.3491, 0.4259, 0.5233, 0.6463, 0.7994, 0.9861, 1.209",\
                 "0.2226, 0.2374, 0.2767, 0.3357, 0.4126, 0.5099, 0.6329, 0.7861, 0.9728, 1.195",\
                 "0.1988, 0.2137, 0.2528, 0.3118, 0.3887, 0.4861, 0.6091, 0.7623, 0.9489, 1.171",\
                 "0.1638, 0.1788, 0.2183, 0.2774, 0.354, 0.4513, 0.5743, 0.7275, 0.9141, 1.136");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.2229, 0.2401, 0.286, 0.3588, 0.4672, 0.6182, 0.8164, 1.066, 1.369, 1.732",\
                 "0.2266, 0.2439, 0.2897, 0.3627, 0.4711, 0.622, 0.8201, 1.069, 1.374, 1.737",\
                 "0.2448, 0.2621, 0.3078, 0.3808, 0.4892, 0.6401, 0.8383, 1.088, 1.392, 1.755",\
                 "0.283, 0.3002, 0.346, 0.4188, 0.5271, 0.6781, 0.8764, 1.125, 1.43, 1.793",\
                 "0.3381, 0.3553, 0.4009, 0.4737, 0.582, 0.7327, 0.9311, 1.181, 1.485, 1.848",\
                 "0.4075, 0.4244, 0.4699, 0.5424, 0.6504, 0.8012, 0.9995, 1.249, 1.553, 1.915",\
                 "0.4891, 0.506, 0.5514, 0.6238, 0.7318, 0.8824, 1.08, 1.33, 1.634, 1.997",\
                 "0.5828, 0.5996, 0.6451, 0.7174, 0.8251, 0.9756, 1.173, 1.422, 1.727, 2.089",\
                 "0.6883, 0.705, 0.751, 0.8234, 0.9311, 1.081, 1.279, 1.528, 1.832, 2.194",\
                 "0.8065, 0.8238, 0.8703, 0.9428, 1.05, 1.2, 1.398, 1.647, 1.951, 2.313");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.04488, 0.06064, 0.104, 0.1741, 0.2721, 0.4122, 0.6048, 0.8527, 1.159, 1.525",\
                 "0.04476, 0.06044, 0.1039, 0.1739, 0.2719, 0.4118, 0.6037, 0.8535, 1.158, 1.525",\
                 "0.0449, 0.06042, 0.104, 0.1741, 0.2718, 0.4123, 0.605, 0.8521, 1.158, 1.526",\
                 "0.045, 0.06062, 0.1042, 0.174, 0.2721, 0.412, 0.6048, 0.8523, 1.158, 1.526",\
                 "0.04522, 0.06104, 0.1043, 0.1741, 0.2723, 0.4129, 0.6051, 0.8524, 1.159, 1.526",\
                 "0.04594, 0.06142, 0.1049, 0.175, 0.2724, 0.412, 0.6041, 0.853, 1.159, 1.524",\
                 "0.04656, 0.06224, 0.1057, 0.1757, 0.2729, 0.4128, 0.6038, 0.8518, 1.158, 1.525",\
                 "0.0472, 0.0634, 0.1062, 0.1764, 0.2738, 0.4132, 0.605, 0.8522, 1.157, 1.523",\
                 "0.0482, 0.064, 0.1072, 0.177, 0.2742, 0.4138, 0.6056, 0.8522, 1.158, 1.523",\
                 "0.0492, 0.0652, 0.108, 0.1778, 0.275, 0.4142, 0.6056, 0.8518, 1.158, 1.524");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.007493, 0.01375, 0.03574, 0.07771, 0.1431, 0.2349, 0.3556, 0.5077, 0.6934, 0.9147");
          values("0.04464, 0.0641, 0.1209, 0.2312, 0.4131, 0.6727, 1.016, 1.448, 1.974, 2.605",\
                 "0.04452, 0.06404, 0.1209, 0.2313, 0.4133, 0.6736, 1.015, 1.446, 1.976, 2.605",\
                 "0.0446, 0.0639, 0.1208, 0.2313, 0.4138, 0.6734, 1.016, 1.449, 1.976, 2.606",\
                 "0.04468, 0.06406, 0.1209, 0.2313, 0.4131, 0.6732, 1.016, 1.447, 1.976, 2.606",\
                 "0.04486, 0.06414, 0.1211, 0.2314, 0.4131, 0.6727, 1.017, 1.448, 1.976, 2.606",\
                 "0.045, 0.0646, 0.1214, 0.2315, 0.4136, 0.6724, 1.016, 1.447, 1.975, 2.603",\
                 "0.046, 0.0648, 0.1222, 0.2324, 0.414, 0.6726, 1.014, 1.446, 1.975, 2.605",\
                 "0.0468, 0.0664, 0.1234, 0.2326, 0.414, 0.6724, 1.015, 1.447, 1.972, 2.603",\
                 "0.0482, 0.0674, 0.1248, 0.2332, 0.4136, 0.6738, 1.014, 1.445, 1.971, 2.6",\
                 "0.05, 0.0694, 0.1268, 0.2342, 0.4144, 0.6742, 1.016, 1.445, 1.972, 2.598");
        }
      }
    }
  }

