function sashimize(veryLastBit, cookieName, cookieDuration, cookieDomain, assocHash, rawValue) {
    // we default on 'other' bit, the very last one we handle
    var flaggedBit = veryLastBit ;

    if (typeof(rawValue) != 'undefined') {
	if (typeof(myAssoc.getItem(rawValue)) != 'undefined') {
	    flaggedBit = myAssoc.getItem(rawValue) ;
	}
    } else {
	flaggedBit = undefined ;
    }

    var myBitmapSize = Math.floor((veryLastBit + 31) / 32) ;
    var myBitmap = new Array(myBitmapSize) ;

    for (var loop=0; loop < myBitmapSize; loop++) {
        myBitmap[loop] = 0 ;
    }

    if (!readCookie(cookieName)) {
        createCookieAsArray(cookieName, myBitmap, cookieDuration, cookieDomain) ;
    }

    myBitmap = readCookieAsArray(cookieName) ;

    var mySlot = Math.floor(flaggedBit / 32)
    var mySlotPos = flaggedBit % 32 ;

    myBitmap[mySlot] = myBitmap[mySlot] | (1 << mySlotPos) ;

    createCookieAsArray(cookieName, myBitmap, cookieDuration, cookieDomain) ;

    return myBitmap ;
}

