data = {
const root = {value: [0, 1]};
const queue = [root];
let p, size = 0, n = 1 << 6;
while (++size < n && (p = queue.shift())) {
const k = p.value.length - 1;
const a = {value: p.value.slice(0, k).concat(p.value[k] + 1)};
const b = {value: p.value.slice(0, k).concat(p.value[k] - 1, 2)};
p.children = k & 1 ? [a, b] : [b, a];
queue.push(a, b);
}
return root;
}