How An Input Method Editor Works