Montag, Mai 26
rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen