local sprite = _G.app.activeSprite
local colors = {["#000000"] = "0", ["#b00258"] = "1", ["#1e2bff"] = "2", ["#ce2dff"] = "3", ["#007e28"] = "4", ["#808080"] = "5", ["#00a9ff"] = "6", ["#9eabff"] = "7", ["#615400"] = "8", ["#ff5600"] = "9", ["#ff81d7"] = "b", ["#31d200"] = "c", ["#e1d400"] = "d", ["#4ffda7"] = "e", ["#ffffff"] = "f"}
local function hex__3ergb(rgb)
  return {r = tonumber(rgb:sub(2, 3), 16), g = tonumber(rgb:sub(4, 5), 16), b = tonumber(rgb:sub(6, 7), 16)}
end
local function alist_len(alist)
  local len = 0
  for k, v in pairs(alist) do
    len = (1 + len)
  end
  return len
end
if sprite then
  local pal = Palette(alist_len(colors))
  local image = Image(sprite)
  do
    local acc = ""
    for it in image:pixels() do
      local raw = it()
      local x = it.x
      local y = it.y
      local r = app.pixelColor.rgbaR(raw)
      local g = app.pixelColor.rgbaG(raw)
      local b = app.pixelColor.rgbaB(raw)
      local _1_
      if (x == 15) then
        _1_ = "\n"
      else
        _1_ = ""
      end
      acc = (acc .. (colors[string.format("#%02x%02x%02x", r, g, b)] or "") .. _1_)
    end
    app.clipboard.text = acc
  end
  local len = 0
  for color, _ in pairs(colors) do
    pal:setColor(len, Color(hex__3ergb(color)))
    len = (1 + len)
  end
  sprite:setPalette(pal)
  return app.refresh()
else
  return nil
end