padding = 10000
for output in outputs:
output.colorvalue = 0
output.space = output.value - padding
for i in [0 ... length(inputs) - 1]:
inputs.space = inputs.value - padding
if inputs[j].sequence < 4294967295:
for j in [0 ... length(outputs) - 1]:
if [inputs.sequence / (2 ^ j)] % 2 == 1:
transfer = min(inputs.space,outputs[j].space)
if inputs.colored:
outputs[j].colorvalue += transfer
outputs[j].space -= transfer
inputs.space -= transfer
for output in outputs:
if outputs[j].colorvalue == outputs[j].value - padding:
outputs[j].colored = true
else:
outputs[j].colored = false