/*
 * 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_1) {
    area : 22.579200 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.03824, 0.03825, 0.03807, 0.03804, 0.03802, 0.03802, 0.0381, \
                  0.03801, 0.03803, 0.03808");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.02145, -0.02147, -0.02146, -0.02139, -0.02139, -0.02141, -0.02147, \
                  -0.02138, -0.02142, -0.02142");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.04039, 0.03758, 0.03556, 0.03486, 0.03441, 0.03419, 0.03412, \
                  0.034, 0.03394, 0.03385");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.03366, -0.03371, -0.0336, -0.03358, -0.03353, -0.03354, -0.03361, \
                  -0.03355, -0.03359, -0.03358");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.3582 ;
      max_transition : 3.6 ;
      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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.3469, 0.3399, 0.3255, 0.3153, 0.3085, 0.3044, 0.3017, 0.3, 0.2989, 0.2982",\
                 "0.3465, 0.3396, 0.3253, 0.3149, 0.3088, 0.3045, 0.302, 0.3003, 0.2989, 0.298",\
                 "0.3555, 0.3483, 0.3333, 0.3224, 0.3157, 0.3117, 0.309, 0.307, 0.3057, 0.3046",\
                 "0.4005, 0.3916, 0.3726, 0.3572, 0.3477, 0.3417, 0.3375, 0.3347, 0.3328, 0.3313",\
                 "0.4914, 0.4799, 0.4538, 0.4303, 0.4141, 0.4034, 0.3961, 0.3912, 0.3878, 0.3853",\
                 "0.6249, 0.6108, 0.5776, 0.5439, 0.5192, 0.5015, 0.4897, 0.4812, 0.475, 0.4707",\
                 "0.7995, 0.7836, 0.7435, 0.699, 0.6642, 0.6386, 0.6201, 0.6068, 0.5971, 0.5899",\
                 "1.016, 0.9983, 0.9521, 0.8981, 0.8516, 0.8166, 0.7905, 0.771, 0.7568, 0.7457",\
                 "1.276, 1.257, 1.205, 1.142, 1.084, 1.038, 1.003, 0.9759, 0.9557, 0.9403",\
                 "1.58, 1.56, 1.504, 1.433, 1.364, 1.306, 1.26, 1.225, 1.197, 1.176");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.2288, 0.2189, 0.2052, 0.1948, 0.1881, 0.1842, 0.1813, 0.1789, 0.1779, 0.1765",\
                 "0.2278, 0.2193, 0.205, 0.1949, 0.1887, 0.1845, 0.1815, 0.1795, 0.1785, 0.1765",\
                 "0.2355, 0.227, 0.2123, 0.2013, 0.1944, 0.1899, 0.187, 0.1844, 0.1834, 0.1815",\
                 "0.2743, 0.2647, 0.2464, 0.2316, 0.2219, 0.2149, 0.2106, 0.207, 0.2054, 0.2029",\
                 "0.3484, 0.3374, 0.3155, 0.2947, 0.2791, 0.2683, 0.261, 0.2565, 0.2522, 0.2491",\
                 "0.4603, 0.4473, 0.4193, 0.3939, 0.3719, 0.3541, 0.3419, 0.3335, 0.3275, 0.3217",\
                 "0.6092, 0.5946, 0.5606, 0.5278, 0.5007, 0.4771, 0.4577, 0.444, 0.4348, 0.4273",\
                 "0.7964, 0.7802, 0.7409, 0.7001, 0.6651, 0.6367, 0.6113, 0.5898, 0.575, 0.5643",\
                 "1.022, 1.005, 0.9612, 0.9123, 0.8698, 0.8336, 0.8043, 0.7773, 0.7554, 0.7392",\
                 "1.289, 1.271, 1.222, 1.166, 1.115, 1.074, 1.038, 1.004, 0.976, 0.952");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.3999, 0.3916, 0.3747, 0.3613, 0.3523, 0.3465, 0.3427, 0.3401, 0.3383, 0.3369",\
                 "0.3999, 0.3916, 0.3742, 0.3608, 0.352, 0.3465, 0.3425, 0.3399, 0.3381, 0.3367",\
                 "0.4098, 0.4017, 0.3832, 0.3695, 0.3602, 0.3546, 0.3507, 0.348, 0.3461, 0.3447",\
                 "0.4563, 0.4466, 0.4247, 0.4066, 0.3945, 0.3867, 0.3817, 0.3781, 0.3756, 0.3736",\
                 "0.5534, 0.5416, 0.5134, 0.4864, 0.4685, 0.4554, 0.4467, 0.4407, 0.4364, 0.4333",\
                 "0.6987, 0.6845, 0.6494, 0.6126, 0.5844, 0.5644, 0.55, 0.5397, 0.5325, 0.5272",\
                 "0.89, 0.8737, 0.8321, 0.7845, 0.7453, 0.7158, 0.6942, 0.6784, 0.6668, 0.6583",\
                 "1.127, 1.109, 1.062, 1.004, 0.9532, 0.913, 0.8826, 0.8597, 0.8421, 0.8294",\
                 "1.412, 1.393, 1.34, 1.274, 1.21, 1.158, 1.118, 1.086, 1.062, 1.044",\
                 "1.747, 1.727, 1.67, 1.595, 1.52, 1.455, 1.403, 1.361, 1.329, 1.303");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.2276, 0.2193, 0.2051, 0.1948, 0.1886, 0.1844, 0.1816, 0.1789, 0.1779, 0.1765",\
                 "0.2271, 0.2186, 0.2042, 0.1941, 0.1876, 0.1832, 0.1805, 0.1784, 0.1774, 0.176",\
                 "0.2321, 0.2235, 0.2088, 0.1981, 0.1916, 0.187, 0.184, 0.1817, 0.1807, 0.1787",\
                 "0.2656, 0.2562, 0.2385, 0.2248, 0.2158, 0.2095, 0.2054, 0.2026, 0.2005, 0.1991",\
                 "0.3392, 0.3282, 0.307, 0.2876, 0.2724, 0.2627, 0.2563, 0.2521, 0.2483, 0.2453",\
                 "0.4525, 0.4401, 0.4126, 0.3881, 0.367, 0.3506, 0.3391, 0.3313, 0.3264, 0.319",\
                 "0.6057, 0.5918, 0.5582, 0.5262, 0.4981, 0.4756, 0.4595, 0.4457, 0.4359, 0.4301",\
                 "0.7989, 0.7834, 0.7462, 0.7049, 0.6726, 0.6416, 0.6186, 0.5997, 0.586, 0.5742",\
                 "1.033, 1.017, 0.9756, 0.9254, 0.8848, 0.85, 0.8197, 0.7949, 0.7736, 0.7573",\
                 "1.311, 1.294, 1.25, 1.192, 1.141, 1.098, 1.061, 1.031, 1.007, 0.9823");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.1543, 0.1691, 0.2115, 0.2791, 0.3747, 0.5048, 0.675, 0.89, 1.152, 1.465",\
                 "0.1594, 0.1742, 0.2167, 0.2843, 0.38, 0.5101, 0.6805, 0.8953, 1.158, 1.471",\
                 "0.1829, 0.1976, 0.24, 0.3073, 0.4027, 0.533, 0.7032, 0.9181, 1.18, 1.493",\
                 "0.2316, 0.2462, 0.2883, 0.3553, 0.4505, 0.58, 0.7499, 0.9646, 1.226, 1.539",\
                 "0.2953, 0.3111, 0.3552, 0.4236, 0.5186, 0.6471, 0.8162, 1.03, 1.292, 1.604",\
                 "0.3686, 0.3859, 0.4332, 0.5049, 0.6024, 0.7312, 0.8993, 1.112, 1.373, 1.685",\
                 "0.4511, 0.47, 0.5212, 0.5968, 0.6983, 0.8305, 0.999, 1.211, 1.471, 1.782",\
                 "0.5431, 0.5634, 0.6184, 0.6989, 0.8041, 0.9403, 1.114, 1.328, 1.587, 1.897",\
                 "0.6448, 0.6668, 0.7261, 0.811, 0.9209, 1.061, 1.238, 1.458, 1.72, 2.031",\
                 "0.7568, 0.7802, 0.8439, 0.9343, 1.049, 1.193, 1.375, 1.599, 1.868, 2.184");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.1786, 0.1951, 0.246, 0.3358, 0.4731, 0.6664, 0.9213, 1.243, 1.636, 2.105",\
                 "0.1811, 0.1978, 0.2487, 0.3386, 0.476, 0.6693, 0.9243, 1.246, 1.639, 2.108",\
                 "0.1944, 0.2111, 0.2618, 0.3513, 0.4885, 0.6818, 0.9367, 1.258, 1.652, 2.12",\
                 "0.2194, 0.2363, 0.2865, 0.3751, 0.5114, 0.7037, 0.9585, 1.28, 1.672, 2.141",\
                 "0.2434, 0.2606, 0.3118, 0.4, 0.5351, 0.7261, 0.9797, 1.3, 1.692, 2.161",\
                 "0.2612, 0.2794, 0.3325, 0.4215, 0.5562, 0.7461, 0.9979, 1.317, 1.709, 2.176",\
                 "0.2702, 0.2895, 0.3451, 0.4357, 0.5718, 0.7626, 1.014, 1.332, 1.722, 2.189",\
                 "0.2693, 0.2901, 0.3482, 0.441, 0.5788, 0.7719, 1.025, 1.342, 1.731, 2.196",\
                 "0.2575, 0.2795, 0.3409, 0.4369, 0.5762, 0.7712, 1.028, 1.348, 1.738, 2.202",\
                 "0.2336, 0.2571, 0.3219, 0.4213, 0.5624, 0.7597, 1.019, 1.344, 1.737, 2.203");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.06686, 0.0833, 0.1332, 0.2251, 0.3716, 0.5861, 0.8747, 1.241, 1.688, 2.221",\
                 "0.06694, 0.08374, 0.1337, 0.2252, 0.3717, 0.5858, 0.8747, 1.241, 1.689, 2.222",\
                 "0.06728, 0.0838, 0.1342, 0.2255, 0.3718, 0.5859, 0.8751, 1.241, 1.688, 2.221",\
                 "0.073, 0.0893, 0.1378, 0.2277, 0.3726, 0.5863, 0.875, 1.242, 1.688, 2.222",\
                 "0.08786, 0.1044, 0.1524, 0.2373, 0.3776, 0.588, 0.8752, 1.241, 1.688, 2.221",\
                 "0.1069, 0.1241, 0.1729, 0.2571, 0.3918, 0.594, 0.877, 1.241, 1.688, 2.222",\
                 "0.128, 0.147, 0.1972, 0.2814, 0.415, 0.613, 0.8864, 1.243, 1.688, 2.221",\
                 "0.1506, 0.1714, 0.2244, 0.3092, 0.4426, 0.6416, 0.9116, 1.259, 1.694, 2.221",\
                 "0.1752, 0.198, 0.2552, 0.3392, 0.4722, 0.6708, 0.9444, 1.292, 1.717, 2.232",\
                 "0.2004, 0.2256, 0.2862, 0.3742, 0.5058, 0.7036, 0.9796, 1.333, 1.76, 2.265");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.08086, 0.1029, 0.1798, 0.3337, 0.584, 0.9411, 1.411, 2.001, 2.722, 3.582",\
                 "0.08116, 0.1033, 0.1798, 0.3343, 0.5844, 0.9404, 1.411, 1.999, 2.722, 3.582",\
                 "0.08112, 0.1031, 0.1801, 0.3343, 0.5844, 0.9393, 1.411, 2.002, 2.723, 3.584",\
                 "0.08464, 0.1065, 0.1817, 0.3348, 0.5838, 0.9407, 1.41, 2.002, 2.722, 3.584",\
                 "0.09182, 0.1141, 0.1883, 0.339, 0.5858, 0.9415, 1.41, 2, 2.722, 3.582",\
                 "0.1025, 0.1252, 0.199, 0.3476, 0.5912, 0.942, 1.411, 2.001, 2.72, 3.585",\
                 "0.1154, 0.1386, 0.213, 0.36, 0.6038, 0.9508, 1.414, 2.002, 2.72, 3.582",\
                 "0.1304, 0.1538, 0.2286, 0.374, 0.6186, 0.9688, 1.427, 2.007, 2.724, 3.581",\
                 "0.1466, 0.1712, 0.2472, 0.3916, 0.6352, 0.9902, 1.451, 2.027, 2.733, 3.588",\
                 "0.1634, 0.1892, 0.2662, 0.4102, 0.6532, 1.011, 1.479, 2.058, 2.759, 3.601");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.17, 0.1857, 0.2303, 0.2993, 0.3956, 0.5255, 0.6956, 0.9104, 1.173, 1.485",\
                 "0.1751, 0.1908, 0.2355, 0.3044, 0.4007, 0.5307, 0.7009, 0.9155, 1.178, 1.491",\
                 "0.1993, 0.2149, 0.2594, 0.3282, 0.4245, 0.5544, 0.7245, 0.9392, 1.201, 1.514",\
                 "0.2523, 0.2678, 0.3117, 0.38, 0.4756, 0.605, 0.7747, 0.9892, 1.251, 1.564",\
                 "0.3266, 0.343, 0.3886, 0.4574, 0.5527, 0.6814, 0.8503, 1.064, 1.325, 1.638",\
                 "0.4162, 0.4342, 0.4831, 0.5551, 0.652, 0.7802, 0.9479, 1.16, 1.421, 1.733",\
                 "0.5212, 0.5406, 0.5932, 0.6697, 0.77, 0.9004, 1.068, 1.279, 1.539, 1.849",\
                 "0.6417, 0.6627, 0.7197, 0.8009, 0.9052, 1.039, 1.209, 1.421, 1.679, 1.989",\
                 "0.779, 0.8017, 0.8628, 0.9492, 1.058, 1.196, 1.37, 1.585, 1.844, 2.153",\
                 "0.9344, 0.9586, 1.024, 1.116, 1.23, 1.372, 1.549, 1.769, 2.033, 2.344");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.1897, 0.2065, 0.2573, 0.3471, 0.4844, 0.6778, 0.9329, 1.254, 1.648, 2.117",\
                 "0.1909, 0.2076, 0.2584, 0.3483, 0.4857, 0.6789, 0.934, 1.256, 1.649, 2.118",\
                 "0.1949, 0.2115, 0.2622, 0.3518, 0.4891, 0.6824, 0.9372, 1.259, 1.652, 2.121",\
                 "0.2055, 0.2225, 0.2729, 0.3618, 0.4984, 0.6909, 0.9455, 1.267, 1.66, 2.129",\
                 "0.2147, 0.2323, 0.2842, 0.373, 0.5082, 0.6996, 0.9535, 1.274, 1.667, 2.135",\
                 "0.2138, 0.2325, 0.287, 0.3775, 0.5134, 0.7037, 0.9562, 1.275, 1.668, 2.135",\
                 "0.1994, 0.2195, 0.2767, 0.37, 0.5081, 0.7003, 0.9524, 1.271, 1.661, 2.128",\
                 "0.17, 0.1912, 0.2519, 0.3482, 0.489, 0.6844, 0.9396, 1.259, 1.648, 2.113",\
                 "0.1239, 0.1465, 0.2105, 0.3104, 0.454, 0.6528, 0.9124, 1.236, 1.627, 2.091",\
                 "0.0605, 0.0846, 0.1517, 0.255, 0.4022, 0.6038, 0.8677, 1.197, 1.593, 2.06");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.07408, 0.09148, 0.1416, 0.2304, 0.3746, 0.5872, 0.8753, 1.242, 1.688, 2.222",\
                 "0.07434, 0.09134, 0.1417, 0.2304, 0.3744, 0.5871, 0.8754, 1.241, 1.689, 2.221",\
                 "0.07434, 0.09192, 0.1421, 0.2306, 0.3748, 0.5874, 0.8754, 1.241, 1.688, 2.221",\
                 "0.07856, 0.09552, 0.145, 0.233, 0.3758, 0.5873, 0.8755, 1.242, 1.688, 2.221",\
                 "0.09266, 0.1097, 0.1583, 0.2409, 0.38, 0.5891, 0.8756, 1.242, 1.689, 2.221",\
                 "0.112, 0.1299, 0.1795, 0.26, 0.3918, 0.5948, 0.877, 1.242, 1.689, 2.22",\
                 "0.1342, 0.1534, 0.2042, 0.285, 0.4142, 0.6104, 0.8834, 1.243, 1.689, 2.221",\
                 "0.1576, 0.179, 0.2332, 0.315, 0.4418, 0.6352, 0.9036, 1.254, 1.691, 2.221",\
                 "0.1824, 0.2062, 0.2638, 0.3472, 0.4736, 0.6654, 0.9334, 1.279, 1.707, 2.227",\
                 "0.2106, 0.2354, 0.2974, 0.3844, 0.5092, 0.6994, 0.9684, 1.316, 1.741, 2.249");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.003465, 0.01212, 0.02864, 0.05439, 0.09051, 0.138, 0.1979, 0.271, 0.3582");
          values("0.08112, 0.1032, 0.18, 0.334, 0.5834, 0.9402, 1.411, 2, 2.723, 3.583",\
                 "0.08132, 0.1033, 0.1801, 0.3341, 0.5838, 0.9402, 1.41, 2.002, 2.722, 3.582",\
                 "0.0811, 0.1033, 0.1798, 0.3337, 0.5833, 0.9405, 1.411, 2.001, 2.722, 3.582",\
                 "0.08408, 0.1063, 0.181, 0.3348, 0.5836, 0.941, 1.411, 2.002, 2.723, 3.584",\
                 "0.09234, 0.1147, 0.1891, 0.3388, 0.5853, 0.9411, 1.41, 2.001, 2.721, 3.581",\
                 "0.1032, 0.1267, 0.2014, 0.3499, 0.5922, 0.9432, 1.409, 1.999, 2.722, 3.585",\
                 "0.1164, 0.1404, 0.2166, 0.3646, 0.6076, 0.9532, 1.414, 2.002, 2.723, 3.583",\
                 "0.1304, 0.1554, 0.2346, 0.3818, 0.627, 0.9772, 1.432, 2.009, 2.722, 3.582",\
                 "0.1446, 0.1718, 0.253, 0.4012, 0.6468, 1.001, 1.464, 2.035, 2.737, 3.589",\
                 "0.1614, 0.1886, 0.2726, 0.4228, 0.6696, 1.027, 1.495, 2.075, 2.772, 3.607");
        }
      }
    }
  }

