This guide https://bitcoin.org/en/developer-guide#p2pkh-script-validation mentions "The operation executed next, OP_HASH160, pushes onto the stack a hash of the data currently on top of it—in this case, Bob’s public key. This creates a hash of Bob’s public key."
Does the HASH160 operation pops the duplicated public key? If not, why keeping a duplication on the stack? what's the point?