int index(int index) { var i = 0; while (i < _ranges.length && _ranges[i].length <= index) { index -= _ranges[i].length; i++; } return _ranges[i].low + index; }