/*
 * 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__and2_2) {
    area : 25.401600 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "0.0001564365" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "0.000156442" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "0.0002067835" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "0.0001864555" ;
    }

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

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

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

    pin(A1) {
      capacitance : 0.006541 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 2.8 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.07386, 0.07391, 0.07362, 0.0736, 0.07323, 0.07331, 0.07335, \
                  0.07345, 0.07339, 0.0734");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("-0.04653, -0.0465, -0.04644, -0.04633, -0.04642, -0.04624, -0.04634, \
                  -0.04635, -0.04642, -0.04654");
        }
      }
    }

    pin(A2) {
      capacitance : 0.006423 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 2.8 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.07171, 0.06869, 0.066, 0.06514, 0.065, 0.06497, 0.06489, 0.06501, \
                  0.06505, 0.065");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("-0.06506, -0.06505, -0.06486, -0.0648, -0.06475, -0.06471, -0.06478, \
                  -0.06483, -0.06491, -0.06492");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.7526 ;
      max_transition : 2.8 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.5964, 0.5776, 0.5472, 0.5305, 0.5208, 0.5147, 0.511, 0.5083, 0.5065, 0.5054",\
                 "0.596, 0.5769, 0.5459, 0.5303, 0.5201, 0.5142, 0.5105, 0.5074, 0.5059, 0.5047",\
                 "0.6161, 0.5968, 0.564, 0.5456, 0.5357, 0.5295, 0.5252, 0.5226, 0.5209, 0.5196",\
                 "0.706, 0.6827, 0.6411, 0.6147, 0.5992, 0.5893, 0.5829, 0.5789, 0.5761, 0.5741",\
                 "0.8736, 0.8451, 0.7895, 0.7489, 0.7215, 0.7044, 0.6938, 0.6861, 0.6807, 0.6771",\
                 "1.113, 1.08, 1.01, 0.9487, 0.9099, 0.8816, 0.8633, 0.8513, 0.8424, 0.8368",\
                 "1.421, 1.384, 1.301, 1.222, 1.167, 1.126, 1.099, 1.079, 1.065, 1.056",\
                 "1.799, 1.76, 1.664, 1.566, 1.493, 1.438, 1.4, 1.373, 1.353, 1.338",\
                 "2.249, 2.21, 2.103, 1.986, 1.895, 1.827, 1.775, 1.736, 1.708, 1.688",\
                 "2.776, 2.732, 2.619, 2.486, 2.376, 2.29, 2.223, 2.174, 2.138, 2.108");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.3625, 0.3455, 0.3234, 0.3112, 0.3066, 0.3039, 0.3068, 0.3095, 0.3144, 0.3187",\
                 "0.3624, 0.3455, 0.3242, 0.3112, 0.3063, 0.3056, 0.3052, 0.3084, 0.315, 0.3209",\
                 "0.3832, 0.3655, 0.3424, 0.3277, 0.3209, 0.3171, 0.3195, 0.3194, 0.3276, 0.3346",\
                 "0.4624, 0.4421, 0.4132, 0.3898, 0.3757, 0.3705, 0.3679, 0.3706, 0.376, 0.3814",\
                 "0.603, 0.5787, 0.5392, 0.5087, 0.486, 0.47, 0.4625, 0.4624, 0.4651, 0.4672",\
                 "0.8087, 0.7791, 0.7296, 0.6849, 0.6568, 0.6323, 0.6165, 0.6098, 0.6103, 0.6085",\
                 "1.077, 1.044, 0.9822, 0.9246, 0.8845, 0.8567, 0.8293, 0.8089, 0.8061, 0.8043",\
                 "1.409, 1.373, 1.299, 1.23, 1.174, 1.134, 1.109, 1.082, 1.066, 1.054",\
                 "1.809, 1.768, 1.68, 1.604, 1.533, 1.483, 1.441, 1.417, 1.394, 1.377",\
                 "2.275, 2.233, 2.132, 2.047, 1.964, 1.895, 1.848, 1.812, 1.791, 1.766");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "A1" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.6919, 0.6713, 0.6332, 0.6099, 0.5958, 0.5871, 0.5815, 0.5776, 0.575, 0.5734",\
                 "0.6924, 0.6715, 0.6336, 0.6103, 0.5963, 0.5877, 0.5821, 0.5783, 0.5759, 0.574",\
                 "0.7142, 0.693, 0.6532, 0.6289, 0.6147, 0.6057, 0.5998, 0.5957, 0.593, 0.5913",\
                 "0.8044, 0.7803, 0.7342, 0.7021, 0.6821, 0.6699, 0.662, 0.6568, 0.6532, 0.6509",\
                 "0.9788, 0.951, 0.8927, 0.8461, 0.8142, 0.7943, 0.7807, 0.7718, 0.7656, 0.7614",\
                 "1.232, 1.2, 1.128, 1.064, 1.018, 0.9863, 0.9652, 0.9504, 0.9407, 0.9331",\
                 "1.56, 1.525, 1.44, 1.357, 1.295, 1.25, 1.218, 1.195, 1.179, 1.167",\
                 "1.962, 1.923, 1.828, 1.727, 1.647, 1.588, 1.542, 1.51, 1.486, 1.469",\
                 "2.44, 2.399, 2.295, 2.175, 2.078, 1.999, 1.942, 1.899, 1.866, 1.842",\
                 "3, 2.957, 2.844, 2.709, 2.592, 2.497, 2.423, 2.367, 2.324, 2.291");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.3619, 0.3448, 0.3229, 0.3108, 0.3053, 0.3034, 0.3041, 0.3057, 0.3122, 0.3187",\
                 "0.3602, 0.3434, 0.3214, 0.3088, 0.3027, 0.3023, 0.3041, 0.3046, 0.3106, 0.317",\
                 "0.3736, 0.3564, 0.3336, 0.3198, 0.3133, 0.3105, 0.3112, 0.3128, 0.321, 0.3264",\
                 "0.4433, 0.4235, 0.3965, 0.3753, 0.3642, 0.3567, 0.3569, 0.3574, 0.3639, 0.3748",\
                 "0.5839, 0.5602, 0.5208, 0.4942, 0.472, 0.4568, 0.4526, 0.4492, 0.4547, 0.4573",\
                 "0.7928, 0.7648, 0.7147, 0.6725, 0.6456, 0.6235, 0.606, 0.6016, 0.6015, 0.6019",\
                 "1.066, 1.035, 0.9737, 0.9201, 0.8758, 0.8528, 0.8271, 0.8095, 0.8039, 0.8032",\
                 "1.404, 1.37, 1.296, 1.234, 1.178, 1.138, 1.114, 1.094, 1.076, 1.067",\
                 "1.812, 1.774, 1.691, 1.616, 1.549, 1.495, 1.459, 1.437, 1.414, 1.399",\
                 "2.291, 2.253, 2.161, 2.069, 1.994, 1.93, 1.877, 1.835, 1.821, 1.799");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.1051, 0.1175, 0.1502, 0.2004, 0.272, 0.3708, 0.5006, 0.6645, 0.8647, 1.103",\
                 "0.1089, 0.1213, 0.1539, 0.2041, 0.2758, 0.3745, 0.5044, 0.6682, 0.8684, 1.107",\
                 "0.1271, 0.1394, 0.1718, 0.2219, 0.2934, 0.3921, 0.5219, 0.6858, 0.886, 1.125",\
                 "0.1646, 0.1772, 0.2097, 0.2595, 0.3306, 0.4289, 0.5586, 0.7222, 0.9223, 1.161",\
                 "0.214, 0.2278, 0.2619, 0.3125, 0.3835, 0.4812, 0.6101, 0.7735, 0.9733, 1.212",\
                 "0.2721, 0.2872, 0.3239, 0.3765, 0.4485, 0.5459, 0.6743, 0.837, 1.036, 1.275",\
                 "0.3379, 0.3543, 0.3942, 0.4499, 0.5242, 0.6228, 0.7507, 0.9132, 1.112, 1.35",\
                 "0.4121, 0.4302, 0.4736, 0.532, 0.6084, 0.7094, 0.8403, 1.003, 1.201, 1.438",\
                 "0.495, 0.5138, 0.5607, 0.623, 0.702, 0.8054, 0.9383, 1.104, 1.304, 1.54",\
                 "0.5866, 0.6072, 0.6571, 0.7232, 0.8046, 0.9102, 1.045, 1.214, 1.418, 1.657");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.1079, 0.1217, 0.1621, 0.2354, 0.3498, 0.5107, 0.7228, 0.9896, 1.317, 1.705",\
                 "0.1104, 0.1242, 0.1647, 0.238, 0.3523, 0.5133, 0.7251, 0.9925, 1.319, 1.707",\
                 "0.1223, 0.136, 0.1762, 0.2492, 0.3632, 0.524, 0.7361, 1.004, 1.33, 1.719",\
                 "0.1417, 0.1557, 0.1958, 0.268, 0.3811, 0.5413, 0.7528, 1.02, 1.346, 1.736",\
                 "0.16, 0.1746, 0.2151, 0.2864, 0.3985, 0.5575, 0.7689, 1.035, 1.361, 1.75",\
                 "0.1737, 0.1892, 0.2309, 0.3025, 0.4138, 0.5719, 0.7817, 1.047, 1.373, 1.762",\
                 "0.1807, 0.1974, 0.2408, 0.3126, 0.425, 0.5825, 0.7915, 1.056, 1.381, 1.769",\
                 "0.18, 0.1981, 0.2434, 0.316, 0.4286, 0.5881, 0.7973, 1.061, 1.385, 1.772",\
                 "0.1709, 0.1903, 0.238, 0.312, 0.4247, 0.5861, 0.7974, 1.062, 1.385, 1.771",\
                 "0.1523, 0.1731, 0.2233, 0.2991, 0.4123, 0.5741, 0.7884, 1.056, 1.38, 1.766");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.0352, 0.04862, 0.08502, 0.152, 0.2612, 0.4214, 0.6357, 0.9049, 1.234, 1.63",\
                 "0.0352, 0.04846, 0.0851, 0.1519, 0.261, 0.4213, 0.6348, 0.9052, 1.236, 1.627",\
                 "0.03534, 0.04878, 0.08536, 0.1523, 0.2615, 0.4213, 0.6352, 0.9052, 1.236, 1.627",\
                 "0.03928, 0.05236, 0.08788, 0.1536, 0.2621, 0.4214, 0.6357, 0.9055, 1.235, 1.627",\
                 "0.04752, 0.06128, 0.09604, 0.1585, 0.264, 0.4217, 0.6357, 0.9052, 1.235, 1.628",\
                 "0.05752, 0.0728, 0.1089, 0.1691, 0.2699, 0.4238, 0.6357, 0.9064, 1.234, 1.631",\
                 "0.06826, 0.08556, 0.123, 0.1826, 0.283, 0.4318, 0.6384, 0.906, 1.235, 1.628",\
                 "0.08, 0.098, 0.1378, 0.1976, 0.2968, 0.4472, 0.6506, 0.9112, 1.236, 1.627",\
                 "0.0912, 0.1118, 0.1554, 0.2156, 0.3122, 0.4626, 0.6706, 0.9288, 1.246, 1.63",\
                 "0.1036, 0.1258, 0.1736, 0.2346, 0.3294, 0.4788, 0.6884, 0.9522, 1.269, 1.647");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.03826, 0.05552, 0.1172, 0.2408, 0.439, 0.717, 1.084, 1.548, 2.115, 2.791",\
                 "0.03796, 0.05558, 0.1174, 0.2405, 0.439, 0.7183, 1.085, 1.55, 2.113, 2.791",\
                 "0.038, 0.05554, 0.1174, 0.2408, 0.4388, 0.7185, 1.084, 1.549, 2.117, 2.786",\
                 "0.04048, 0.05826, 0.1191, 0.241, 0.439, 0.7185, 1.086, 1.548, 2.113, 2.789",\
                 "0.04532, 0.06286, 0.1214, 0.243, 0.4395, 0.7182, 1.086, 1.547, 2.115, 2.791",\
                 "0.05148, 0.06952, 0.1268, 0.2469, 0.4414, 0.7188, 1.084, 1.546, 2.114, 2.791",\
                 "0.05904, 0.07712, 0.1335, 0.253, 0.4477, 0.7218, 1.086, 1.549, 2.115, 2.784",\
                 "0.0676, 0.0864, 0.1416, 0.2594, 0.4564, 0.7318, 1.091, 1.549, 2.111, 2.783",\
                 "0.0758, 0.0954, 0.1516, 0.2668, 0.465, 0.7444, 1.105, 1.557, 2.114, 2.787",\
                 "0.0846, 0.1058, 0.1618, 0.2736, 0.473, 0.7568, 1.122, 1.576, 2.126, 2.789");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.1167, 0.13, 0.1643, 0.2152, 0.287, 0.3856, 0.5154, 0.6789, 0.8792, 1.118",\
                 "0.1208, 0.1341, 0.1683, 0.2192, 0.291, 0.3896, 0.5194, 0.6832, 0.8833, 1.122",\
                 "0.1398, 0.153, 0.1871, 0.2379, 0.3097, 0.4081, 0.5379, 0.7016, 0.9017, 1.14",\
                 "0.1807, 0.194, 0.2278, 0.2784, 0.3497, 0.4479, 0.5774, 0.7409, 0.941, 1.18",\
                 "0.2376, 0.2519, 0.2874, 0.3385, 0.4094, 0.507, 0.6359, 0.7991, 0.9988, 1.237",\
                 "0.3068, 0.3226, 0.3606, 0.4134, 0.4852, 0.5822, 0.7103, 0.8729, 1.072, 1.31",\
                 "0.3879, 0.4048, 0.4464, 0.5023, 0.5754, 0.673, 0.8006, 0.9623, 1.161, 1.398",\
                 "0.4811, 0.4999, 0.5444, 0.6037, 0.6788, 0.7783, 0.907, 1.068, 1.266, 1.504",\
                 "0.5874, 0.6076, 0.6553, 0.718, 0.7965, 0.8976, 1.028, 1.191, 1.389, 1.626",\
                 "0.7073, 0.7287, 0.78, 0.8467, 0.9278, 1.031, 1.164, 1.329, 1.53, 1.767");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.1155, 0.1292, 0.1696, 0.243, 0.3573, 0.5183, 0.7304, 0.998, 1.324, 1.714",\
                 "0.1165, 0.1303, 0.1707, 0.244, 0.3583, 0.5193, 0.7313, 0.9991, 1.325, 1.715",\
                 "0.1214, 0.1351, 0.1754, 0.2486, 0.3626, 0.5236, 0.7357, 1.003, 1.33, 1.719",\
                 "0.1321, 0.1461, 0.1864, 0.2589, 0.3721, 0.5324, 0.7445, 1.011, 1.338, 1.727",\
                 "0.1418, 0.1565, 0.1975, 0.2693, 0.3815, 0.5409, 0.7519, 1.019, 1.345, 1.733",\
                 "0.1444, 0.1603, 0.2027, 0.2753, 0.3871, 0.5452, 0.7553, 1.021, 1.347, 1.736",\
                 "0.1374, 0.1547, 0.1991, 0.2726, 0.3856, 0.5442, 0.7532, 1.018, 1.343, 1.73",\
                 "0.1195, 0.1377, 0.1845, 0.2594, 0.3736, 0.5342, 0.7444, 1.009, 1.332, 1.719",\
                 "0.0898, 0.1094, 0.1588, 0.2348, 0.3499, 0.5125, 0.7255, 0.9916, 1.315, 1.701",\
                 "0.0474, 0.0684, 0.1202, 0.1974, 0.3134, 0.4775, 0.6935, 0.9627, 1.289, 1.675");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.03938, 0.05344, 0.09, 0.1546, 0.2623, 0.4214, 0.6354, 0.9058, 1.235, 1.627",\
                 "0.03924, 0.05344, 0.09008, 0.1547, 0.2623, 0.4215, 0.6355, 0.9056, 1.234, 1.629",\
                 "0.03934, 0.0535, 0.09, 0.1546, 0.2627, 0.4219, 0.6362, 0.9052, 1.235, 1.629",\
                 "0.04214, 0.0561, 0.09192, 0.1559, 0.2624, 0.4214, 0.6346, 0.9062, 1.235, 1.628",\
                 "0.04966, 0.06444, 0.09976, 0.1608, 0.2644, 0.4218, 0.6345, 0.9059, 1.234, 1.629",\
                 "0.05996, 0.07542, 0.1118, 0.1697, 0.2696, 0.424, 0.6362, 0.9054, 1.235, 1.628",\
                 "0.0704, 0.0884, 0.1266, 0.1836, 0.281, 0.4294, 0.6376, 0.9056, 1.236, 1.627",\
                 "0.0816, 0.1006, 0.1424, 0.1992, 0.294, 0.4418, 0.6456, 0.9084, 1.235, 1.628",\
                 "0.0934, 0.1142, 0.1598, 0.217, 0.3094, 0.4568, 0.6608, 0.9202, 1.241, 1.629",\
                 "0.106, 0.129, 0.1774, 0.2356, 0.3268, 0.4728, 0.6794, 0.9398, 1.257, 1.637");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006188, 0.0244, 0.05917, 0.1134, 0.1894, 0.2894, 0.4154, 0.5693, 0.7526");
          values("0.03792, 0.0557, 0.1172, 0.2404, 0.4389, 0.7179, 1.087, 1.55, 2.117, 2.787",\
                 "0.03822, 0.05574, 0.1172, 0.2405, 0.439, 0.7185, 1.087, 1.55, 2.117, 2.787",\
                 "0.03814, 0.05554, 0.1174, 0.2405, 0.4389, 0.718, 1.087, 1.55, 2.117, 2.788",\
                 "0.0403, 0.05796, 0.1185, 0.241, 0.438, 0.7174, 1.086, 1.55, 2.115, 2.787",\
                 "0.04504, 0.06308, 0.1219, 0.2427, 0.4391, 0.7166, 1.084, 1.55, 2.113, 2.79",\
                 "0.05114, 0.07004, 0.1278, 0.2479, 0.4412, 0.7181, 1.084, 1.546, 2.116, 2.791",\
                 "0.05846, 0.07716, 0.1348, 0.2548, 0.4503, 0.7228, 1.085, 1.548, 2.112, 2.784",\
                 "0.0656, 0.0858, 0.1436, 0.2624, 0.4604, 0.7356, 1.094, 1.549, 2.113, 2.789",\
                 "0.0734, 0.0944, 0.1532, 0.2704, 0.4698, 0.75, 1.11, 1.56, 2.115, 2.788",\
                 "0.0824, 0.1044, 0.1634, 0.2784, 0.479, 0.763, 1.13, 1.581, 2.131, 2.791");
        }
      }
    }
  }

