static int64 asNumber(cchar *version)
{
    char    *tok;
    int64   major, minor, patch;

    major = stoi(stok(sclone(version), ".", &tok));
    minor = stoi(stok(tok, ".", &tok));
    patch = stoi(stok(tok, ".", &tok));
    return (((major * VER_FACTOR) + minor) * VER_FACTOR) + patch;
}
NVD is only using a subset of CWE for mapping instead of the entire CWE, and the weakness type is not covered by that subset.