dfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffffffffffffffffffffffffdfffff