Automatic workarounds: Exploiting the intrinsic redundancy of web applications