async function pause(n: number) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve();
    }, n);