       :/ (assoc state :typing true :query "")
       :down (load-next-image state)
       :up (load-prev-image state)
+      :left (update-in state [:debug-offset] dec)
+      :right (update-in state [:debug-offset] inc)
+      :0 (assoc state :debug-offset 0)
       state)))
 
 (defn setup []

            :top 0
            :query ""
            :show-cards false
            :debug (atom nil)
            :debug-avail (atom [])
            :debug-selected (atom [])})))

(defn debug [state f text]
  (let [query (.toLowerCase (:query state))]
    (swap! (:debug-avail state) conj text)
    (when (and (not-empty query)
               (nil? (deref (:debug state)))
               (.contains (.toLowerCase text) query))
      (swap! (:debug-selected state) conj text)
      (reset! (:debug state) (.clone (f))))))

            [quil.core :as q]
            [quil.middleware :as m]
            [set-solver.core :refer :all]
            [set-solver.util :refer [constrain enumerate]])
  (:import [java.nio ByteBuffer ByteOrder]
           [org.opencv.core Mat Size Rect Point CvType]
           [org.opencv.imgcodecs Imgcodecs]
