Public
Edited
Dec 13, 2023
Insert cell
Insert cell
Insert cell
Insert cell
patterns = input.split("\n\n").map((p) => p.split("\n"))
Insert cell
Insert cell
reflects = (pattern) => {
return _.zip(pattern, pattern.slice(1))
.map(([a, b], i) => [a, b, i])
.filter(([a, b, i]) => {
return a === b && isActualReflect(pattern, i);
})
.map(([a, b, i]) => i);
}
Insert cell
isActualReflect = (pattern, r) => {
let ii = 0;
let err = 0;
for (let i = r; i >= 0; i--) {
ii++;
if (r + ii >= pattern.length) break;
const count = _.zip(pattern[i], pattern[r + ii]).filter(
([a, b]) => a !== b
);

console.log(pattern[i], pattern[r + ii], count);
if (count.length === 1) err++;
}
return err === 1;
}
Insert cell
lefts = patterns
.flatMap((pattern) => [...reflects(transposed(pattern))])
.map((x) => x + 1)

Insert cell
tops = patterns
.flatMap((pattern) => [...reflects(pattern)])
.map((x) => 100 * (x + 1))
Insert cell
_.sum([...tops, ...lefts])
Insert cell
transposed = (pattern) =>
_.zip(...pattern.map((x) => Array.from(x))).map((x) => x.join(""))
Insert cell
transposed(patterns[0])
Insert cell
patterns[0]
Insert cell
part1 = ""
Insert cell
Insert cell
Insert cell
part2 = ""
Insert cell
Insert cell
Insert cell
input = textarea || select.value
Insert cell
testInput = `#.##..##.
..#.##.#.
##......#
##......#
..#.##.#.
..##..##.
#.#.##.#.

#...##..#
#....#..#
..##..###
#####.##.
#####.##.
..##..###
#....#..#`
Insert cell
problemInput = `#.#.##.##.#
#..#..####.
#.#####..##
#.##..####.
##.#..####.
..#...#..#.
##...#....#
....##....#
##.##.#..#.
#..#.##..##
##.###.##.#
...#.#.##.#
.#.#.#.##.#
##.###.##.#
#..#.##..##

##.#...#.#.
##.##..#.#.
.#.##......
..######..#
..######..#
.#.##......
##.##..#.#.
##.#...#.#.
...##...#..
...#.###..#
#..#######.
..#.##.###.
..###.##.#.
..##.##.##.
..#.#..##..

#.....###..###.
.###....#..#...
.#..#.#..##..#.
##.##.#..##..#.
.#....#.#..#.#.
.###.#..#..#..#
#.###..######..
#..#...######..
..#.##.##..##.#
..#.##.##..##.#
#......######..

.##.#######
.##....##.#
#..#.#.#.##
#####....##
####.....##
#..#.#.#.##
.##....##.#
.##.#######
####.#.###.
#..#####..#
......#####
........###
#..###.###.

#..##..
#..#...
###.#..
##..###
####.##
..#.#..
..#.###
.##.##.
.##.##.
..#.###
..#.#..

##.##.#####
#.####.#.##
..#..#....#
#########..
########.##
...##...#.#
.#....#...#
########..#
..####.....
#......###.
#......###.
..####.....
########..#
.#....#...#
...##...#..
########.##
#########..

...#.#..#....#.
#.##..##.####.#
.##.#.##.#..#.#
#.#.#..##.##.##
..#.######..###
...#.###......#
.##...##......#
##..#.##.####.#
.###......##...
##..#..#..##..#
####.#..##..##.
.###..#.######.
#....##...##...
#.....#...##...
.###..#.######.

#..####
.##.#..
.##.#.#
#..####
#..####
.##.#.#
.##.#..
#..####
.##...#
#..###.
..###..

##.##.....#.#
##.##.......#
......#.##...
##.#.#..#.#..
##.#..#######
##...###..#..
##.##.#..#.##
####.#...#..#
###.....####.
...##....#...
...##.#.##.##
....#..#...##
###...#......

#####.##..#
#.#..######
.#.#...####
.#.#...####
#.#..######
###.#.##..#
...#.######
##.#...####
....#..####
.#.#....##.
.....#.#..#

.#....#.#..##
.#....#....##
..#..#.......
.##..##...###
##########..#
.#.##.#.###.#
..#..#...#.##
#.####.##..#.
.#....#..##..
#......###.##
.#.##.#..###.
...##...####.
.#....#...#..
##.##.####.##
##....##...##
#.####.####..
###..#####.##

.##.####....#
.##.#..####.#
#####...#.###
.......#.....
####.#...##..
.##....####.#
.##....######
.##....######
.##....####.#
####.#...##..
.......#.....
#####...#.###
.##.#..####.#
.##.####....#
.###..#...##.

#####.#.#.#..#.#.
#..###.###.##.###
....#...#..##..#.
#..####..#....#..
#..###..#.####.#.
#####.#.#..##..#.
#####.#.#####.##.
.##..###..####..#
#..#.#..########.
#..##.#####..####
####...#..#..#..#

########.....
...##.....##.
.........####
#.#..#.#####.
#.#######..#.
#.####.#.#..#
###..#####.#.
#.#..#.#..##.
..####....#.#
..####...#...
#.#..#.#.#..#
#.####.#.....
#.####.#.....

###....#.##.#.#
..#....#....###
#####.#..#.#.##
##.#.#..##..#..
..###..##...#..
#####.##...####
.....#...##.##.
###....####..##
##.###.##.###..
..##.####.#...#
###.##...#..###
..##.#..##.#...
..##.##.##.#...
###.##...#..###
..##.####.#...#

.#......#.#######
............####.
....##.....##..##
.###..###........
....##....#..##..
##.#..#.##.######
...####...#######
..######..##.##.#
.########..#.##..
###....#####.##.#
#...##...##......
...#..#...#..##..
##.####.##.......
.##....##.#..##..
#.##..##.#.#.##.#
.#.#..#.#.##.##.#
.##.##.##.##.##.#

....#.#.#..#.#.
####.#..#.#.#..
#..##.#.#..####
####..###......
....###.#.###..
....#.##....#.#
#..##.###.####.
....##.#...#...
#..#.#.#.#..###
####.#.#...##..
####.#.#...##..
#..#.#.#.#..#.#
....##.#...#...
#..##.###.####.
....#.##....#.#
....###.#.###..
####..###......

..#####....#####.
##..##########..#
.##.#..####..#.##
..######..######.
..######..######.
.##.#..####..#.##
##..##########..#
..#####....#####.
.....########....
..#..##....##..#.
.###.##.##.##.###
.#.#####..#####.#
..#....#..#.#..#.

.###.##.###
.###.##.###
####....#.#
#...####...
####....###
.#...##...#
..###..###.
#..#.##.#..
#....##....

#.#.#.#....#.
###..##.##.##
...##.#....#.
..##.#.####.#
##.#.#.#..#.#
.#..##..##..#
#.#...#....#.
...##.#....#.
...##.#....#.
#.#...#....#.
.#...#..##..#
##.#.#.#..#.#
..##.#.####.#

#......
.#.####
#.#####
.##...#
..#....
###.##.
##.####
.#..##.
.##....
##..##.
##..##.

##..#.#..#..###
##.#......#....
####....#.#####
.#.##.##.......
#..#.#..####..#
#..#.#..####..#
.#.##.##.......

.#..###.#
..#...##.
#####.#.#
....#.###
#.###.#.#
###.####.
##..#..#.
.#.#.....
.#.#.....
##..#..#.
###.####.
#.###.#.#
....#.###
#####...#
..#...##.
.#..###.#
.#..###.#

#.#.#.....###.##.
#.#.#.....###.##.
#...#.#.#####..#.
..#....#.####....
#.#.##.##..###..#
#.#....#.#.#.####
.##.#####........
.#.#.##..#####..#
.#.......#.######
..##.###.##.#####
####.#..##..#....
##..#.#.##.##.##.
#.#..#.#....##..#

#...#.####.#.#.##
#..#.#.#..##..#.#
.###...###..#....
####..###.###..##
##..##...###.##..
#.#.##.##..#.#..#
#.#.##.##.##.#..#
.##.#.##...###...
.##.#.##...###...
#.#.##.##.##.#..#
#.#.##.##..#.#..#

..........##.
.##.#.#.####.
####..###.###
####.#..#..##
.##.##.#...#.
....####...#.
.##...###..##
####.###.#.##
....###.#...#
#..#.##....#.
#..#.##.#..#.

.###...#.....
.###...#.....
..####.#####.
...#.##.##.##
#.###...###..
####.#.#.###.
#.#.#.##...##
#.#.#.##...##
####.###.###.
#.###...###..
...#.##.##.##
..####.#####.
.###...#.....

.###..#.#
.#.#..#.#
.#.###..#
##....###
##....###
.#.###..#
.#.#..#.#
.###..#.#
..###.#.#
.##.#.#.#
####..###
###..##.#
#.#.###.#
###..####
#.#.#.#.#
......#..
#..#####.

#...#..#..###..##
.#.##.#.##.......
.##.#.#...#......
#..#.#...###.##.#
#.#...###.#######
####.##..#...##..
##..#.####.######
..#.#..#.####..##
...######.###..##
####....###......
.#####.#.##..##..
.##..#..#........
####...###...##..

###.##..#
###.##..#
###.####.
##..#####
#....#..#
#..##.##.
..#..####

####......#######
####..##..#######
.##.#.##.#.##..##
###...##...######
..##..##..##.....
.#..#....#..#..#.
####..##..#######
#..###..###..##..
.####.##.####..##
.#..........#..#.
#..#..##..#..##..

....#..#..#..#..#
....#..#..#..#..#
#.#.#.###.#..#.##
..#..###...##...#
.#......##....##.
##..#...#.#..#.#.
#.#######.##.#.##
##...##.#..##..#.
####..#..######..
.##..#..##.##.##.
...#...#..####..#
#####.###......##
.#####.#.######.#
.#.....#.#.##.#.#
.###.......##....
.#...#....#..#...
.#.#..##..#..#..#

###...###
..#.#.#..
#.#...#.#
###.#.#.#
...##.#..
####..#.#
..#..#..#
###....#.
....#.#..
....#.#..
###....#.

..#..###.##
##.##.###..
..##....##.
..##..##.##
##..##.####
#####.#....
##.#....###

.#.#.##.#..
#....#.##..
#.#.###.###
#.##.###.##
.#.##...###
#..........
...##....##
#...#......
###.#.#....
###.#.#....
#...#......
.#.##....##
#..........
.#.##...###
#.##.###.##

..####...#.####.#
#......##..#..#..
#.#..#.#####..###
##....#####.##.##
..####......##..#
..#..#..#.#.##.#.
#..##..##.######.
..####..###....##
###..#######..###
.#.##.#.#..#..#..
.######.##.#..#.#

..##..###..
..#####....
...#.#.#.##
...#.#.####
..#####....
..##..###..
##......##.
##.#..#.###
###..##....
...##..##.#
##.###.#.#.
###.#.#....
..##...#..#
####.###.##
....#..#.##

#....##....
..##....##.
#.##....##.
.#...##...#
#..........
#####..####
#....##....

..#..#.
##.#.##
#..#...
#...##.
...#...
...#...
#...##.
#..#...
##.#.##
..#..#.
....#..
#.#..##
##....#
...#...
...##..

.####.####.
.###.......
..#####..##
...#.##..#.
#.#.###..##
.#..##....#
..#....##..
#.#.#.#..#.
#.#.#.#..#.

...#..####....#..
....#.###...##...
###....#...#.#...
...###...##....##
##.##..#..###.#..
#..#.#...#.#...##
..#....#...#..#..
..#....#...#..#..
#....#...#.#...##
##.##..#..###.#..
...###...##....##
###....#...#.#...
....#.###...##...
...#..####....#..
....#..###.#..###
#.....###....##..
....####....##...

#.#.#.#..#.#...#.
#..#.#.#..#...###
##.#..#.#.....#.#
###..#..#..#...##
##..#....#...#.#.
.##.#....#...##..
.##......#...##..
##..#....#...#.#.
###..#..#..#...##
##.#..#.#.....#.#
#..#.#.#..#...###
#.#.#.#..#.#...#.
.####...#..##.#..
####.##.#####.##.
.####.#####..#.#.
#...###.......###
#...###.......###

.#.##.#..##...#
###..###.##.#..
#.####.##..#.##
#.#..#......#..
#.#..#......#..
#.####.##..#.##
###..###.##.#..

...#.##.##.##.#..
##....######....#
##..#.##..##.#..#
###.#.######.#.##
..#...#.##.#...#.
...#.#.####.#.#..
..###.##..##.###.
....#...##...#...
..#..##....##..#.
.#.#.#..##..#.#.#
##....#.##.#....#
##.#####..#####.#
##....#....#....#
...###.####.###..
..#####....#####.
##...#.####.#...#
########..#######

####.##...##.##.#
#..##.######..#..
#..##.######.##..
..#.#..##########
.#.#..#.###.##.##
#.#.#..##...###.#
#....#..#.#.#....
#....#..#.#.#....
#.#.#..##...###.#
.#.#..#.###.##.##
..#.#..##########
#..##.######.##..
#..##.######..#..

##.#..#
######.
.#..#..
.....##
.....##
.#..#..
######.
##.#..#
.###.#.
..#.##.
....##.
.###.#.
##.#..#

##....###.#..##..
.#...##.##.##..##
#...##.###..#..#.
#..####...#######
#..####.#.#######
#...##.###..#..#.
.#...##.##.##..##
##....###.#..##..
###.#.###..#....#
#...##.#..#..##..
......#..#..#..#.
.#.....##...#..#.
..#...##.##......

.####.#
...#.##
#...###
#.##...
.##....
....#..
.#..#..
.....##
.##..##
#...###
#...###

##.#.##
#..#.#.
#.#..##
#.##.##
##..#..
..#.###
.#.####
.#..###
.#..###

#.##..###.#
...####.##.
.#.###.###.
#.....###..
..####.####
....#..#.##
....#..#.##
..####.####
#.....###..
.#.###.###.
...####.##.
#.##..###.#
#.##..###.#
...####.##.
.#.###.###.
#......##..
..####.####

.###...#...##
..##.#...#..#
....#.##.####
..#....###.#.
..###.##.####
..####..#...#
..##..#...#..
.......##..##
...#.#.####..
###.#.##.##..
..#.###.#.#.#
####.....#.##
###...#####.#
...#####.####
##.#.#####.##
##.#.#####.##
...#####.####

#..###.#..##.
.....#.....##
####....####.
....#.....###
#####.##.#.#.
.##..#####.##
.....##..####
#######..#.##
.##..##..#...
#####.#..###.
#..#.###..###
#..#.###..###
#####.##.###.
.##..##..#...
#######..#.##

..#..##.....#
###.#.##.###.
#.###.#######
####.#..#....
####.#..#....
#.###.#######
###.#.##.###.
..#..##.....#
#.######..##.
.#.##....##..
##.#.....##..
##.#.....##..
.#.##....##..
#.######..###
..#..##.....#

........####...#.
........####...#.
#...######.##.##.
.####.##.#...##.#
##..###.#......##
#....##.###.#....
#######....#.#.##
.####.#..#.###..#
.####.##...#.##.#

#####.#.#
#..##.##.
.....#...
#####..#.
.##.....#
....#.###
....#.###
.##.....#
#####..#.
.....#...
#..##.##.
#####.#.#
.##..#...
..#...#..
.##.##..#
....##...
####...#.

###....
#.###.#
###...#
.#.#.##
###.###
###.###
.#.#.##
###...#
#.###.#
###....
.#####.
#..#...
.####.#
.####.#
#..#..#
.#####.
###....

......#..####..#.
##..##.#.####.#.#
..##...##....##..
......#..####..#.
#.##.##..#..#..##
##..##.#.####.#.#
.........#####...
.#..#..###..###..
#....###..##..###
#######........##
#########....####
########..##..###
.......##.##.##..
######.##....##.#
......###....###.
......#..####..#.
##..##.#..##..#.#

..#..####..#.
..#..#..#..#.
##.##....##.#
...########..
###..###...##
##.##....##.#
..#..####..#.
##....##....#
..##########.
##.########.#
...##.##.##..

..####..####..##.
.###.####.###.##.
##.##....##.##..#
.####....####....
#.#.#.##.#.#..##.
#####.##.########
#...#....#...#..#

..##..#.##.##.##.
..##..###########
#....#..##.##.##.
.####.##.##..##.#
##..##..########.
######.##..##..##
#....##..#.##.#..
#....###..#..#..#
.....##.##....##.

.....#...##..####
.....#...#...####
.....#...#...####
.....#...##..####
.#..####...#...#.
#########.##..###
#####.##...##.#.#
..#.#.##.##...##.
....###..##.##.##
#.###..##.#..##.#
.....########..##
##..###.##..#####
.####.#.#..#...##
##..#..#.###.#.#.
#.##...##.#.....#
.#.#.....#.......
#...#####.######.

#......###.##.#
.##.##.#.#.##.#
######...######
.###.###..####.
###..####..##..
###..####..##..
.###.###..####.
######...######
.##.##...#.##.#
#......###.##.#
#.#####..##..##

#.##.#.#...
..##..##...
#.##.#.####
.#####.....
#....##..##
..##.......
.####......
#....#.#.##
##..###.#..
.####.#.###
..##..#....
#....#.....
.####.###..

#..###..#.####..#
#####.##..##..##.
####.#.##....##.#
####....#....#...
.##...#..####..#.
#####..#......#..
#..#.....####....

#####.#..##.##.
........#......
......##.###...
#####....#..#.#
.##....#######.
####.#..#.##...
.##.#.######.##
....#....###..#
#..#####....##.
.##.##..######.
......#.#.##.#.
####..#..####..
.##...#..##..##
#..##.#.###.#.#
#..###..#..#.##
.##.#..##..#.#.
.##.#...#..#.#.

.#.#..#.#.##.#.
##########..###
####..####..###
.###..###.##.##
##############.
#.##..##.####.#
##..##..######.

##..#.####.#.
....#.#..#.#.
....#.#..#.#.
##..#.####.#.
.##.#..##..#.
.#.#.#.##.#.#
#.#.#......#.
#..######.###
..#.##....##.
.#.####..####
....#..##..#.

....#####....
#######.####.
.#####.##..##
#.##.#..#..#.
#.###.#..####
..#...##.####
.#.#..#.#####
.#.#..#.#####
..#...##.####
#.###....####
#.##.#..#..#.
.#####.##..##
#######.####.
....#####....
....#####....

.......##
.##..##..
.##..##..
.......##
#....##.#
#..##.#.#
#####...#
####..###
....#.#..
#..#..#.#
........#
#####.###
....#..#.

#...##.
#....##
#####..
#.###.#
.###..#
.#.#..#
#.###.#
#####..
#....##
#...##.
#...##.

#.......####..###
.#.#..#.#........
##.#..#.####..###
...####...#....#.
#.#....#.#......#
#...##...#..##..#
##.####.##......#
###....###..##..#
.########.##..##.

#..#...####
#..##.#####
#..##.#..#.
#..##.#..#.
#..##.#####
#..#...####
##########.
.....#..#..
#..#.#.#.##
#...#.#.##.
#..#.#.###.
....####...
.....#.#..#
.....##.##.
.##.##.##.#
.....######
.##.#..##..

##.#....#..#.#.
####.##.#...##.
..##..###.##.##
........##..##.
...###.#..#...#
..#.##..#.#####
..####..##.####
...#...##.#.#..
..###.###.#....
##...##.#.#....
###..#.###...##
#####..####.##.
...#...##.#.###
..#....########
...#.#######.##
..##.#.#...##..
..##.#.#...#...

..#.##.#...
.#.#.......
########.##
..#..###..#
....#..###.
....#..###.
..#..###..#
#######..##
.#.#.......
..#.##.#...
.#.#.#.#.##
.#...#.#.#.
#####.#.##.
##...###..#
##...###..#

.#.....###.#.....
#.###...#.#......
...#...##....#..#
...#...##....#..#
#.###...#.#......
.#......##.#.....
#.#..########....
..##.##.#####.##.
#...##.#.##.#.##.
#....#..#....#..#
.#.###.##...#####
...##..#.........
.#..####.##.#....
......#.##...####
#..#######..#.##.

..##...#.#..#.#
...#.#.#......#
.##..###......#
.##..##.#....#.
#.#...##..##..#
#..#..###.##.##
#.##..#.##..##.
####..##......#
#.###.##.####.#
####.#..#....#.
.####..#......#
...##.##.####.#
#.####.#..##..#
.##.####..##..#
..#.####..##..#

.##..###..#.....#
.##.###.....#.##.
.##.###.....#.##.
.##..#.#..#.....#
.##......###..#.#
#..#.###.###..##.
......####.####.#
#..#.####..#..#..
.##.....##.##.###

....##...
##.####.#
##..##..#
##.####.#
##......#
####..##.
###.##.##
##......#
###....##
...#..#..
##..##..#
...#..#..
..######.
###....##
##.####.#
...####..
..######.

.#....#..
.##..##..
.######..
#.#..#.##
#...#..##
#.####.##
#..##..##
.##..##..
.#.##.#..
.#....#..
.##..##..
#.#..#.##
##....###
###..####
.#....#..

.....#.##.#
........#.#
...###..###
#.#.###.#.#
...#.#....#
..#.##.###.
..###....#.
###.##.###.
###.##.###.

..###.#..#.###...
..###......###...
#....#....#....##
.#..#.####.#..#..
#.##..#..#..##.##
...#.######.#..##
....##....##.....
...##########....
##..###..###..###
#.#.#......#.#.##
.#.##########.#..
#..###....###..##
..#....##....#...

.#....##.##..##.#
.#.####.#..##..#.
.#.##..#........#
..##.###..#..#..#
..#...###.#..#.##
#..#...##.####.##
#.#...#.###...##.
##.##..###.##.###
...#.##..........
...#.##..........
##.##..###.##.###

.###.##.###.#..##
..#.#..#.#...##.#
....#..#.....#.#.
..##....##..#.#.#
..##....##..#.#.#
....#..#.....#.#.
..#.#..#.#...##.#
.###.##.###.##.##
#....##....#####.
.##......##.#.##.
.##......##..###.
.##.#..#.##.###.#
#####..#####.####
...######...#.#.#
#..##..##..##.###

.....#.....
..#.#.#####
###..##....
##..#.#.##.
..######..#
...#..#....
#####..####
##.#....##.
...#..##..#
####.#..##.
##..##.....
...##.##..#
..###..#..#
#####...##.
......##..#
###...##..#
....#.##.##

..####.#.#....###
##...##..###.##.#
###.##.#..#....#.
###.##.#..#....#.
##...##..###.##.#
..####.#.#..#.###
.......######.#..
..#.##.....#.....
..#.##.##.#.####.

##..#.#.###.#
##..#.#.###.#
#.#..###..##.
...#.#...##.#
###.#.##..#.#
.#..####.#.##
.#####.##..#.
.######.#####
#..........#.
#..........#.
.######.#####
.#####.##..#.
.#..####.#.##
###.#.##.##.#
...#.#...##.#

...##.##.#.####
.#.#...#..#.##.
.#..#..####....
#####.#.#.##..#
.....###.#.#..#
......##.#.#..#
#####.#.#.##..#

#....######..##
#####.....#.#..
..##..#.#..#.##
..##..##..###..
..##.....##.###
#....###.###.##
##..##.#.#.##..

##..##.###..###
##..##.###..###
......#.####..#
..##.###.#.####
#....###...#.##
##..####..#.#..
.####.#.....#.#

###.####.##.#
........#..#.
..####.......
##....##....#
#.#..#.#.##.#
##.##.###..##
##.##.##....#
#.####.#....#
.#.##.#..##..

####....#.#..###.
.##.#..##...#..##
.##.#..##...#..##
####....#.#..###.
#####.#.#.##.....
..#.....#....###.
#..#.#...##.#..##
#..#####.##...#.#
######.#...#.#...

.#..#.#...#..
##..##.####..
..##...#..#..
.#..#...#..#.
.####....##..
#....##..####
.####.#.###..
......#.##.##
..##..#...#..
#....#.####..
..##....#####

#...#.#..##.#
#...#.#..##.#
###..##......
#########...#
.#..#.#.##...
#..####...#..
#..##..#..##.
#....##.....#
#....##.....#
#..##..#..##.
#..####...#..
.#..#...##...
#########...#
###..##......
#...#.#..##.#

#.#...#
...####
#.#.#..
####...
#....##
##.##..
##.##..

.##......##..
#..#.....##..
....##...##..
#..#.#...##..
#..##.#.####.
#..#.#...##..
.##...#..##..
#..###.##..##
....##.#....#
....#.....#..
#..#.##.####.
######...##..
####..#.#..#.
....#####..##
.##.#.##....#
#..##.#......
#..#.###....#

...#....#....#.
#.#......#.#..#
.#...##...#.#..
#.###..###.#...
#.#......#.##.#
##...##...#..#.
.#..#..#..#....
#..........#.#.
.#.#.##.#.#.#..
.#.#.##.#.#.#..
#..........#.#.

##.####.##.####.#
..#.##.####.##.#.
.#.####.##.####.#
#..#..#....#..#..
#..#..#....#..#..
##.#..#.##.#..#.#
#.##..##..##..##.
####..######..###
###.##.####.##.##
....##......##...
#.##..##..##..##.
#...##......##...
#.##..##..##..##.

#....#####.##..##
......#..##.#####
########.#.###.##
#.##.###.......##
..##...##..##....
......####.#.####
.......#..###....
####.#.#.###...##
###########..#...
.........#...#.##
......#.#....#...

.##.##.#.
#.#.##.##
#.......#
#.......#
#.#.##.##
.##.##.#.
.###..###
#..#..##.
.#.####..
####.....
#....#...
....#...#
.####.###
.#...#...
#.#######
#...#..##
#.#.#..##

.##.#####..
..#.#.##...
###.###.#..
###.##...#.
.#.#...##..
...#...#.#.
##.###....#
##.##.....#
...#...#.#.
.#.#...##..
###.##...#.
###.###.#..
..#.#.##...
.##.#####..
..#......##
##.#.#####.
##.#.#####.`
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more