code: function getKeys(keys) {
  
          var keyArrays = {};
  
          // Coerce all keys into individual key arrays
          for (var name in layout.keys) {
              keyArrays[name] = asKeyArray(name, keys[name]);
          }
  
          return keyArrays;
  
      }
docs: Converts the rather forgiving key mapping allowed by
  Guacamole.OnScreenKeyboard.Layout into a rigorous mapping of key name
  to key definition, where the key definition is always an array of Key
  objects.
  
  @private
  @param {Object.<String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>} keys
  A mapping of key name to key definition, where the key definition is
  the title of the key (a string), the keysym (a number), a single
  Key object, or an array of Key objects.
  
  @returns {Object.<String, Guacamole.OnScreenKeyboard.Key[]>}
  A more-predictable mapping of key name to key definition, where the
  key definition is always simply an array of Key objects.