/*
 * 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__invz_3) {
    area : 64.915200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "9.91548e-05" ;
    }

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.2597, 0.258, 0.2687, 0.3045, 0.3737, 0.4817, 0.6313, 0.825, \
                  1.065, 1.354");
        }

        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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1849, 0.1838, 0.1922, 0.2165, 0.2593, 0.3226, 0.4169, 0.5462, \
                  0.71, 0.9112");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1289, 0.1277, 0.134, 0.1545, 0.1923, 0.2494, 0.3277, 0.4282, \
                  0.5525, 0.7016");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.04731, 0.04691, 0.05102, 0.06688, 0.09904, 0.1487, 0.2172, 0.3056, \
                  0.4149, 0.5466");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.008486 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.347 ;
      max_transition : 4.4 ;
      min_capacitance : 0.009486 ;
      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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.2721, 0.2719, 0.2718, 0.2717, 0.2718, 0.2719, 0.2719, 0.2718, 0.2719, 0.2719",\
                 "0.2729, 0.2727, 0.2725, 0.2724, 0.2725, 0.2726, 0.2726, 0.2726, 0.2726, 0.2727",\
                 "0.2856, 0.2856, 0.2855, 0.2854, 0.2855, 0.2856, 0.2856, 0.2856, 0.2857, 0.2857",\
                 "0.3176, 0.3177, 0.3176, 0.3174, 0.3175, 0.3176, 0.3176, 0.3176, 0.3177, 0.3176",\
                 "0.3718, 0.3717, 0.3716, 0.3715, 0.3714, 0.3714, 0.3715, 0.3715, 0.3715, 0.3716",\
                 "0.4497, 0.4496, 0.4495, 0.4494, 0.4495, 0.4496, 0.4495, 0.4495, 0.4496, 0.4496",\
                 "0.5527, 0.5525, 0.5524, 0.5522, 0.5524, 0.5525, 0.5526, 0.5526, 0.5526, 0.5526",\
                 "0.6819, 0.6818, 0.6816, 0.6813, 0.6813, 0.6813, 0.6814, 0.6815, 0.6815, 0.6815",\
                 "0.8386, 0.8387, 0.8384, 0.838, 0.8382, 0.8383, 0.8383, 0.8383, 0.8383, 0.8383",\
                 "1.025, 1.025, 1.025, 1.024, 1.024, 1.024, 1.024, 1.024, 1.025, 1.025");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.2033, 0.2034, 0.204, 0.2039, 0.2039, 0.2053, 0.2068, 0.2117, 0.2175, 0.2203",\
                 "0.2021, 0.202, 0.2022, 0.2025, 0.2034, 0.2042, 0.2079, 0.2103, 0.2143, 0.2214",\
                 "0.2097, 0.2099, 0.2101, 0.2104, 0.2109, 0.2111, 0.2133, 0.2178, 0.2247, 0.2265",\
                 "0.2409, 0.2411, 0.2421, 0.2417, 0.2425, 0.2424, 0.2464, 0.2488, 0.2528, 0.261",\
                 "0.3029, 0.303, 0.3021, 0.3048, 0.305, 0.305, 0.3076, 0.3111, 0.3147, 0.3215",\
                 "0.3995, 0.3999, 0.3992, 0.399, 0.4024, 0.4033, 0.4052, 0.4065, 0.4115, 0.4133",\
                 "0.5331, 0.5336, 0.5339, 0.5333, 0.5334, 0.5387, 0.5412, 0.5393, 0.544, 0.5497",\
                 "0.7057, 0.7065, 0.7069, 0.7064, 0.7056, 0.7075, 0.7148, 0.7172, 0.7175, 0.7193",\
                 "0.9198, 0.9201, 0.9216, 0.9211, 0.9215, 0.9203, 0.9243, 0.9342, 0.9346, 0.9396",\
                 "1.177, 1.178, 1.178, 1.179, 1.178, 1.177, 1.179, 1.185, 1.196, 1.198");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.4547, 0.4511, 0.4495, 0.45, 0.4509, 0.4517, 0.4521, 0.4524, 0.4525, 0.4527",\
                 "0.4541, 0.4506, 0.4487, 0.4493, 0.4505, 0.451, 0.4513, 0.4516, 0.4518, 0.4519",\
                 "0.4581, 0.4546, 0.4528, 0.4532, 0.4545, 0.455, 0.4555, 0.4556, 0.4558, 0.456",\
                 "0.4766, 0.4731, 0.4709, 0.4713, 0.4723, 0.473, 0.4731, 0.4735, 0.4736, 0.4737",\
                 "0.5134, 0.5097, 0.5066, 0.5072, 0.5075, 0.5082, 0.5087, 0.509, 0.5091, 0.5093",\
                 "0.572, 0.5679, 0.5636, 0.5629, 0.5639, 0.5643, 0.5645, 0.5648, 0.5651, 0.5652",\
                 "0.6514, 0.6462, 0.6412, 0.6399, 0.6401, 0.6407, 0.6411, 0.6413, 0.6415, 0.6417",\
                 "0.7538, 0.748, 0.7416, 0.7392, 0.7394, 0.7395, 0.7398, 0.74, 0.7402, 0.7403",\
                 "0.8801, 0.8741, 0.8665, 0.8631, 0.8623, 0.8623, 0.8624, 0.8627, 0.8629, 0.8631",\
                 "1.031, 1.024, 1.015, 1.01, 1.009, 1.009, 1.009, 1.009, 1.009, 1.009");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.3961, 0.3976, 0.4032, 0.4096, 0.4155, 0.4191, 0.4256, 0.4291, 0.4342, 0.4403",\
                 "0.3947, 0.3963, 0.4018, 0.4083, 0.4142, 0.418, 0.4238, 0.4281, 0.4328, 0.4406",\
                 "0.4009, 0.4025, 0.4078, 0.4145, 0.4203, 0.4242, 0.4278, 0.4356, 0.441, 0.4428",\
                 "0.4236, 0.4246, 0.4299, 0.4363, 0.4419, 0.4461, 0.4498, 0.4579, 0.4634, 0.4658",\
                 "0.4662, 0.4668, 0.4719, 0.4773, 0.4832, 0.4864, 0.493, 0.4968, 0.5015, 0.5094",\
                 "0.5315, 0.531, 0.5338, 0.5406, 0.5455, 0.5491, 0.5556, 0.5577, 0.5627, 0.567",\
                 "0.6206, 0.6196, 0.6208, 0.6248, 0.6322, 0.6362, 0.6406, 0.6451, 0.6477, 0.6534",\
                 "0.7344, 0.7328, 0.7332, 0.7366, 0.7402, 0.7489, 0.7536, 0.756, 0.7589, 0.7639",\
                 "0.8755, 0.8732, 0.8725, 0.8746, 0.878, 0.8817, 0.8897, 0.895, 0.9011, 0.9036",\
                 "1.045, 1.041, 1.039, 1.04, 1.043, 1.045, 1.051, 1.062, 1.067, 1.07");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.136, 0.144, 0.175, 0.238, 0.316, 0.412, 0.525, 0.651, 0.794, \
                  0.953");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.166, 0.174, 0.206, 0.263, 0.336, 0.426, 0.534, 0.656, 0.795, \
                  0.953");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.1128, 0.1373, 0.1984, 0.2831, 0.3933, 0.5369, 0.7215, 0.9529, 1.235, 1.572",\
                 "0.1196, 0.1441, 0.2052, 0.2898, 0.4, 0.5436, 0.7282, 0.9596, 1.242, 1.578",\
                 "0.1451, 0.1692, 0.2295, 0.3137, 0.4237, 0.5672, 0.7518, 0.9832, 1.266, 1.602",\
                 "0.1735, 0.1997, 0.2608, 0.3443, 0.454, 0.5974, 0.7819, 1.013, 1.296, 1.632",\
                 "0.1854, 0.2119, 0.2725, 0.3556, 0.465, 0.6079, 0.7924, 1.024, 1.306, 1.642",\
                 "0.1811, 0.2077, 0.2681, 0.3509, 0.4597, 0.6026, 0.7868, 1.018, 1.3, 1.636",\
                 "0.1611, 0.1882, 0.2488, 0.3311, 0.4397, 0.5824, 0.7665, 0.9976, 1.279, 1.616",\
                 "0.125, 0.1525, 0.2136, 0.2961, 0.4046, 0.5472, 0.7313, 0.9625, 1.244, 1.58",\
                 "0.0715, 0.0999, 0.1616, 0.2445, 0.353, 0.4956, 0.6798, 0.911, 1.193, 1.529",\
                 "-0.0009, 0.0284, 0.0916, 0.1748, 0.2835, 0.4261, 0.6103, 0.8415, 1.124, 1.46");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.1112, 0.1377, 0.2086, 0.3275, 0.5093, 0.7642, 1.1, 1.522, 2.036, 2.651",\
                 "0.1172, 0.1437, 0.2145, 0.3335, 0.5152, 0.7702, 1.106, 1.527, 2.043, 2.657",\
                 "0.1377, 0.1648, 0.2361, 0.3552, 0.5368, 0.7916, 1.127, 1.55, 2.065, 2.679",\
                 "0.1564, 0.187, 0.2615, 0.3816, 0.5634, 0.8182, 1.153, 1.576, 2.092, 2.706",\
                 "0.164, 0.2001, 0.2801, 0.4016, 0.584, 0.8387, 1.174, 1.596, 2.112, 2.727",\
                 "0.157, 0.1997, 0.2894, 0.4144, 0.5971, 0.8522, 1.187, 1.609, 2.126, 2.741",\
                 "0.1339, 0.1837, 0.2858, 0.4168, 0.602, 0.8573, 1.193, 1.615, 2.13, 2.745",\
                 "0.0936, 0.1503, 0.2668, 0.406, 0.5954, 0.8536, 1.189, 1.612, 2.127, 2.741",\
                 "0.0348, 0.0991, 0.2304, 0.3802, 0.5745, 0.8373, 1.176, 1.599, 2.114, 2.728",\
                 "-0.0436, 0.0283, 0.1756, 0.3384, 0.5379, 0.8055, 1.15, 1.576, 2.092, 2.707");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.05494, 0.07944, 0.1441, 0.2421, 0.3915, 0.6106, 0.9088, 1.289, 1.757, 2.315",\
                 "0.05462, 0.07944, 0.1441, 0.2421, 0.3911, 0.6101, 0.9083, 1.289, 1.757, 2.315",\
                 "0.05346, 0.07792, 0.1429, 0.2409, 0.3911, 0.6103, 0.9079, 1.289, 1.757, 2.315",\
                 "0.06098, 0.084, 0.1425, 0.2398, 0.3907, 0.6102, 0.9086, 1.289, 1.757, 2.311",\
                 "0.06406, 0.08466, 0.1422, 0.2391, 0.3887, 0.6082, 0.908, 1.29, 1.756, 2.316",\
                 "0.06512, 0.0851, 0.1415, 0.2379, 0.3888, 0.607, 0.9048, 1.287, 1.755, 2.314",\
                 "0.0672, 0.0864, 0.1414, 0.237, 0.3872, 0.6068, 0.9056, 1.285, 1.752, 2.31",\
                 "0.069, 0.0882, 0.1424, 0.2372, 0.387, 0.6064, 0.9058, 1.286, 1.752, 2.309",\
                 "0.072, 0.0902, 0.1436, 0.2376, 0.3874, 0.608, 0.9062, 1.286, 1.753, 2.309",\
                 "0.076, 0.0938, 0.1452, 0.239, 0.3876, 0.6078, 0.9058, 1.287, 1.753, 2.309");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.05884, 0.0887, 0.1853, 0.379, 0.6925, 1.135, 1.719, 2.454, 3.35, 4.423",\
                 "0.05854, 0.08848, 0.1856, 0.3794, 0.6919, 1.136, 1.72, 2.45, 3.347, 4.418",\
                 "0.06086, 0.08994, 0.186, 0.38, 0.6924, 1.135, 1.719, 2.454, 3.353, 4.424",\
                 "0.07108, 0.0985, 0.1905, 0.3804, 0.6935, 1.134, 1.718, 2.455, 3.347, 4.418",\
                 "0.08568, 0.1128, 0.1978, 0.3842, 0.6943, 1.136, 1.719, 2.45, 3.345, 4.413",\
                 "0.1023, 0.1324, 0.2116, 0.389, 0.6956, 1.136, 1.718, 2.451, 3.344, 4.422",\
                 "0.12, 0.1544, 0.2326, 0.4002, 0.7018, 1.137, 1.717, 2.45, 3.348, 4.415",\
                 "0.1388, 0.1774, 0.2586, 0.416, 0.7136, 1.146, 1.719, 2.45, 3.347, 4.417",\
                 "0.1614, 0.2018, 0.288, 0.4358, 0.7282, 1.162, 1.73, 2.453, 3.344, 4.417",\
                 "0.184, 0.228, 0.32, 0.4608, 0.7446, 1.182, 1.753, 2.468, 3.35, 4.411");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.2355, 0.2607, 0.3248, 0.4119, 0.5231, 0.6669, 0.8516, 1.083, 1.365, 1.702",\
                 "0.2417, 0.2668, 0.331, 0.418, 0.5291, 0.673, 0.8577, 1.089, 1.371, 1.708",\
                 "0.2611, 0.2861, 0.3503, 0.4374, 0.5485, 0.6924, 0.8771, 1.109, 1.391, 1.727",\
                 "0.2783, 0.3031, 0.3674, 0.4546, 0.5658, 0.7095, 0.8942, 1.126, 1.408, 1.744",\
                 "0.287, 0.312, 0.3761, 0.4632, 0.5745, 0.7184, 0.9031, 1.135, 1.417, 1.753",\
                 "0.2844, 0.3093, 0.3736, 0.461, 0.5723, 0.7163, 0.901, 1.132, 1.415, 1.751",\
                 "0.2679, 0.293, 0.3572, 0.4449, 0.5564, 0.7004, 0.8852, 1.117, 1.399, 1.735",\
                 "0.2364, 0.2614, 0.3259, 0.4139, 0.5256, 0.6698, 0.8546, 1.086, 1.368, 1.705",\
                 "0.1887, 0.2137, 0.2784, 0.3667, 0.4786, 0.6228, 0.8077, 1.039, 1.321, 1.658",\
                 "0.1226, 0.1477, 0.2126, 0.3014, 0.4136, 0.5579, 0.7428, 0.9744, 1.256, 1.593");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.277, 0.3046, 0.3774, 0.4983, 0.6814, 0.9373, 1.273, 1.695, 2.212, 2.826",\
                 "0.2842, 0.3118, 0.3845, 0.5054, 0.6885, 0.9445, 1.281, 1.703, 2.219, 2.833",\
                 "0.3165, 0.3441, 0.4168, 0.5376, 0.7207, 0.9766, 1.313, 1.735, 2.25, 2.866",\
                 "0.3753, 0.4029, 0.4756, 0.5964, 0.7795, 1.035, 1.371, 1.794, 2.309, 2.926",\
                 "0.453, 0.4805, 0.5532, 0.674, 0.857, 1.113, 1.448, 1.872, 2.389, 3.004",\
                 "0.5491, 0.5766, 0.6492, 0.7698, 0.9528, 1.208, 1.545, 1.968, 2.484, 3.099",\
                 "0.6623, 0.6898, 0.7627, 0.8829, 1.066, 1.321, 1.657, 2.08, 2.596, 3.211",\
                 "0.7928, 0.8201, 0.8933, 1.014, 1.197, 1.452, 1.788, 2.21, 2.726, 3.34",\
                 "0.9417, 0.9696, 1.043, 1.163, 1.346, 1.601, 1.937, 2.359, 2.875, 3.489",\
                 "1.11, 1.137, 1.211, 1.331, 1.514, 1.769, 2.105, 2.527, 3.042, 3.657");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.05976, 0.0856, 0.1512, 0.2457, 0.3937, 0.6118, 0.9081, 1.29, 1.756, 2.313",\
                 "0.05974, 0.0856, 0.1511, 0.246, 0.393, 0.6118, 0.908, 1.29, 1.756, 2.314",\
                 "0.05984, 0.08552, 0.151, 0.2455, 0.3932, 0.6118, 0.9089, 1.29, 1.757, 2.313",\
                 "0.05986, 0.08566, 0.1513, 0.2459, 0.3935, 0.6113, 0.9079, 1.29, 1.755, 2.312",\
                 "0.0602, 0.08614, 0.1515, 0.246, 0.3933, 0.6117, 0.9072, 1.29, 1.756, 2.314",\
                 "0.06096, 0.08662, 0.1528, 0.2464, 0.3936, 0.6104, 0.907, 1.289, 1.757, 2.312",\
                 "0.062, 0.0876, 0.1538, 0.2478, 0.3942, 0.6114, 0.9072, 1.287, 1.755, 2.314",\
                 "0.0632, 0.0888, 0.1552, 0.249, 0.395, 0.6118, 0.9086, 1.287, 1.754, 2.311",\
                 "0.0646, 0.09, 0.1562, 0.25, 0.3962, 0.6134, 0.908, 1.289, 1.754, 2.31",\
                 "0.0662, 0.0916, 0.1588, 0.2522, 0.397, 0.6128, 0.9088, 1.289, 1.756, 2.311");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.009486, 0.01872, 0.05113, 0.113, 0.2095, 0.3448, 0.5228, 0.7472, 1.021, 1.347");
          values("0.06042, 0.0898, 0.1855, 0.3794, 0.6926, 1.137, 1.72, 2.45, 3.347, 4.419",\
                 "0.06066, 0.0897, 0.1855, 0.3793, 0.6927, 1.137, 1.721, 2.45, 3.346, 4.418",\
                 "0.06032, 0.08984, 0.1856, 0.3793, 0.6923, 1.135, 1.719, 2.455, 3.352, 4.425",\
                 "0.06066, 0.08982, 0.1856, 0.3798, 0.6922, 1.135, 1.719, 2.455, 3.352, 4.416",\
                 "0.061, 0.09006, 0.1859, 0.3795, 0.6934, 1.134, 1.717, 2.455, 3.347, 4.415",\
                 "0.0614, 0.0908, 0.1864, 0.3792, 0.6924, 1.135, 1.719, 2.453, 3.347, 4.422",\
                 "0.0624, 0.0924, 0.1872, 0.3802, 0.692, 1.134, 1.716, 2.452, 3.349, 4.42",\
                 "0.0632, 0.0934, 0.1882, 0.3802, 0.6926, 1.134, 1.715, 2.449, 3.342, 4.409",\
                 "0.0648, 0.095, 0.1898, 0.3806, 0.6934, 1.135, 1.715, 2.447, 3.347, 4.412",\
                 "0.0658, 0.0966, 0.1912, 0.3812, 0.6932, 1.135, 1.716, 2.449, 3.343, 4.408");
        }
      }
    }
  }

