MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code