function baseConvert(val, frombase, tobase) {
    if (val == ".") {
        return 0;
    }
    if (typeof (val) == "number") {
        return Number.parseInt(String(val)).toString(tobase);
    } else {
        return Number.parseInt(Number.parseInt(val.toString(), frombase), tobase);
    }
}

function decodeId(k, s) {
    if (!k.startsWith("www.")) {
        k = "www." + k;
    }
    var t = "";
    for (var i = 0; i < k.length; i++) {
        var d = 36 - baseConvert(k[i], 36, 10);
        t = "";
        for (let j = 0; j < s.length; j++) {
            t = t + baseConvert(((baseConvert(s[j], 36, 10) + d) % 36), 10, 36);
        }
        s = t;
    }

    if (t.startsWith("sku")) {
        t = t.split("sku")[1];
    }

    return t;
}
