黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑