cccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccccccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccbcccqqqqqqqqqqqqqqqqqqqqqqqqqcccbcccqqqqqqqqqqqqqqqqqqqqqqqqqccc