ow
      case 33: { // page up
        step(-1);
        break;
      }
      case 36: { // home
        currentIndex = 0;
        step(0);
        break;
      }
      case 35: { // end
        currentIndex = slides.length - 1;
        step(0);
        break;
      }
      default: return;
    }
    d3.event.preventDefault();
  });
});

d3.select(window).on("resize", resize).on("hashchange", function hashchange() {
  var that = d3.select(this).on("hashchange", null);
  currentIndex = +location.hash.substri