4. patterns