local base64 = (function ()
local encdata, decdata = (function (str)
local iter = str:gmatch("%S")
local enctbl, dectbl = { [0] = iter() }, {}
for c in iter do table.insert(enctbl, c) end
for k, v in pairs(enctbl) do dectbl[v] = k end
return enctbl, dectbl
end)("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
function encode (input)
local output = ""
for i = 1, 7 do
output = encdata[input % 64] .. output
input = math.floor(input / 64)
end
return output
end
function decode (input)
local output = 0
for i = 1, 7 do
output = output + 64 ^ (7 - i) * decdata[input:sub(i, i)]
end
return output
end
return { encode = encode, decode = decode }
end)()