BEGIN {
    print "--[["
    print "These are default_keys dictionary"
    print "This file is automatically generated from default_keys.h - DON'T EDIT MANUALLY."
    print "--]]"
    print "local _keys = {"
}

$1 ~ /^[A-Fa-f0-9]+/ { sub(/\r/, ""); print "   '"substr($1,1,12)"'," }

END {
    print "}"
    print "---"
    print "--    The keys above have just been pasted in, for completeness sake. They contain duplicates. "
    print "--    We need to weed the duplicates out before we expose the list to someone who actually wants to use them"
    print "--    @param list a list to do 'uniq' on"
    print ""
    print "local function uniq(list)"
    print ""
    print "    local foobar = {}"
    print "    for _, value in pairs(list) do"
    print "        value = value:lower()"
    print "        if not foobar[value] then"
    print "            foobar[value] = true"
    print "            table.insert(foobar, value);"
    print "        end"
    print "    end"
    print "    return foobar"
    print "end"
    print "return uniq(_keys)"
}