Day 2
authorGreg Burri <greg.burri@gmail.com>
Wed, 2 Dec 2020 09:01:20 +0000 (10:01 +0100)
committerGreg Burri <greg.burri@gmail.com>
Wed, 2 Dec 2020 09:01:20 +0000 (10:01 +0100)
main.jl

diff --git a/main.jl b/main.jl
index 630b024..0c257ac 100644 (file)
--- a/main.jl
+++ b/main.jl
@@ -248,6 +248,1085 @@ md"**Result for part 1:** $(day1_part1(input_day1))"
 # ╔═╡ c7dcdae0-33b1-11eb-2cab-fbc06c8ef76b
 md"**Result for part 2:** $(day1_part2(input_day1))"
 
+# ╔═╡ 5d9712b0-3472-11eb-1423-719331dfe52f
+md"## Day 2"
+
+# ╔═╡ b9144990-3473-11eb-0ba9-59f3fe6ddbc0
+struct Password
+       policy_range :: UnitRange
+       policy_char :: Char
+       p :: String
+end    
+
+# ╔═╡ 10f5ffa0-3474-11eb-2a36-d5c6f78f18c6
+function parse_day2(input :: String) :: AbstractArray{Password}
+       line_regexp = r"^(\d+)-(\d+) ([a-z]): ([a-z]+)$"
+       result = Array{Password, 1}()
+       for line ∈ split(input, '\n')
+               m = match(line_regexp, line)
+               push!(
+                       result,
+                       Password(
+                               UnitRange(parse(Int64, m.captures[1]), parse(Int64, m.captures[2])),
+                               m.captures[3][1],
+                               m.captures[4]
+                       )
+               )
+       end
+       result
+end
+
+# ╔═╡ 6695038e-3472-11eb-1846-3b1c041be59d
+function nb_of_valid_passwords_part1(passwords :: AbstractArray{Password})
+       sum(
+               function (password)
+                       m = 0
+                       for c in password.p
+                               m += c == password.policy_char
+                       end
+                       if m ∈ password.policy_range 1 else 0 end
+               end,
+               passwords
+       )
+end
+
+# ╔═╡ bbda1c1e-347a-11eb-0e7a-756906c4c9f4
+function nb_of_valid_passwords_part2(passwords :: AbstractArray{Password})
+       sum(
+               password ->
+                       (password.p[password.policy_range.start] == password.policy_char) ⊻
+                       (password.p[password.policy_range.stop] == password.policy_char),
+               passwords
+       )
+end
+
+# ╔═╡ a0cfb670-3474-11eb-1a05-c12914658a0a
+let
+       test1_input = "1-3 a: abcde
+1-3 b: cdefg
+2-9 c: ccccccccc"
+       
+       test1_part1_result = nb_of_valid_passwords_part1(parse_day2(test1_input))       
+       test1_part2_result = nb_of_valid_passwords_part2(parse_day2(test1_input))
+       
+       md"
+Test 1, part 1: $(test1_part1_result == 2)     
+       
+Test 1, part 2: $(test1_part2_result == 1)
+       "
+end
+
+# ╔═╡ 2b112350-347a-11eb-1725-5f70e3623379
+input_day2_raw = "1-13 r: gqdrspndrpsrjfjx
+5-16 j: jjjjkjjzjjjjjfjzjjj
+14-16 r: rrrnrrrrrcnrgxrr
+1-3 k: bkktwhgktv
+3-5 q: dxqqqzmqvs
+11-14 s: sssssssssssssv
+1-3 d: cdzdq
+13-16 q: scdqpdgpkvbwwqbv
+9-10 d: ddrdddlddd
+15-17 v: jvvvvvvgcvvvvrcvnv
+2-3 s: xssx
+8-15 j: jwjjjjkhjjjltjmjjjr
+7-15 m: wqspfmtpjftmplwp
+1-11 s: swdgzhgsxtssndzfm
+3-4 b: bgjrg
+1-12 x: jxgxxxpjwpsht
+5-15 x: xxjxwshpxjxxxxsnxvz
+4-11 r: bjnrpswfprrng
+12-14 j: wjjzmwnmmvzsjhnnkj
+3-4 d: dddv
+2-4 b: bfxx
+15-16 r: rrrrrrrrrrrlrrphrr
+6-11 j: jsljjjjjjjj
+6-7 m: mpttcmmmmng
+6-7 g: gsggggg
+2-10 b: nbtbqbbfpb
+4-6 h: hhqhrzkcrhh
+13-14 b: bbbbbbbbbbnbbbb
+5-6 g: gggggg
+5-6 x: rsxvxx
+3-6 q: wxqzqqqtzsq
+1-2 h: sjhj
+6-18 t: jtptcwtbfgffpkdwthbf
+5-9 w: wwwwcwwww
+15-16 g: wqdwztbmrqdmgmvc
+8-15 t: ttttgztvtttnttb
+9-11 r: rrvrrrrnhrzr
+8-9 l: lllllllqwl
+10-11 h: hhhhhhhhhhd
+3-5 g: gggrwqc
+5-12 f: ffcdxfglcffsf
+6-7 f: fffffzk
+3-5 b: btbbbb
+2-8 z: wblnvfzzwzzbchx
+13-14 r: rrrrrfrrrrrrlf
+2-9 r: wgbmfvksl
+5-12 m: xrmmfhmqdhmmvhvrzmwq
+3-4 j: jwpd
+6-8 v: mvfwgskpxgvcsr
+1-3 c: ctpr
+2-8 d: dzdfsddd
+10-14 c: ccccczcccccqlchvclcc
+2-8 s: sscwcfssssssdt
+2-11 l: xlsslrlclfls
+7-8 r: rrrjrrrrtdcr
+7-9 z: zzzzzzzpzz
+12-14 r: rrrrrrrrrrrprrr
+13-14 g: hdczwngvjtgmhn
+1-7 q: qqdqqqqvq
+5-6 q: qqqqql
+11-16 p: wgwrzltpskwgxprm
+4-12 d: dvddddddwddz
+15-16 q: qqqqqqqqqqqqqqqqq
+1-5 m: mmrjmmqsjkm
+13-14 m: mlmxmmmdmgmmmw
+4-5 q: qcqvmhqdq
+2-3 m: brdzbfzj
+3-4 s: snshj
+5-9 k: kzpkkbkvqjktrk
+12-13 t: fltttttttjtpstttt
+7-8 c: kcccfccccxtcc
+2-6 q: nnjqqd
+2-9 n: msnvnrxgldqnxnngsn
+2-4 c: scccwp
+12-13 c: ccbccqdcccfcvdccc
+6-7 f: fmdffffxcbbpffl
+2-6 r: rbrrrvr
+7-10 j: jzjtjjqfvjj
+3-7 j: jjrjjjjj
+2-13 m: mmmlmqddkmtmmm
+19-20 l: drpwllkdlsjslmllsdrv
+3-5 v: vxmrwwvh
+5-13 z: zzzzkzzzzzzzkzzzf
+5-6 g: gggggfg
+4-6 c: crfvlc
+14-18 x: xxxxxxxxxjxxxzxdqc
+4-7 p: plzqjtp
+2-4 v: nmdbhftxvbv
+5-8 s: knfcsbbsxssssxd
+2-13 p: mpwpnbrnlxmqvfbltcq
+7-11 v: vbvvvkfvvvg
+14-17 x: xxrxxxbxxwmhxxpxqxv
+5-7 f: qffndfmqfsrv
+7-8 v: vvvqvvbvv
+9-10 j: jjjdjjjslljjjjjch
+4-6 l: lllplgr
+3-4 n: nnqn
+4-5 c: ccccc
+1-2 q: lwhqw
+6-7 d: dddmddqd
+6-7 g: gggggzxg
+2-10 j: jsjjjjjjjsjj
+13-15 b: dxbbbbbbbbbbbmbbbmbl
+5-10 q: qqqqwqqqqxq
+12-13 j: jjjjjzjjjjbjxjjb
+5-10 t: ttfttphtttttmthttp
+3-4 t: tttj
+7-8 n: nnknnpphfwnn
+9-10 x: xxxxxxxxcx
+14-17 h: hhkhhzxhhhhhhjhhxhh
+4-5 w: whxtwwftw
+10-12 q: xqgqsqqvqqlqqqdqpqrq
+1-3 l: jsvlzrm
+8-16 z: sbzzqzxzzzskzzxgrzcz
+7-10 k: kkkkjklkkt
+9-11 f: ffffwfffwflnwf
+1-8 c: cmccwcqzzhxccr
+6-9 h: vnfxddhrhbdqkqr
+8-9 t: tzttdtttvvtb
+6-9 q: qqqqqqqqqqqqq
+15-17 k: kkkkkkkkkkkkkklkqk
+3-10 p: pprppppppfp
+5-11 d: nhgkdjgvmdddt
+7-9 d: rdddddddpd
+1-3 r: rrwrr
+5-16 t: gttwtrqqmwwljhfn
+6-9 q: qqqswdzllqqf
+7-13 b: mxpxbjgvsncqwv
+7-8 d: dddddrddds
+3-4 z: zzqzz
+10-18 z: zzzqzzzzbzzwzzpzzzz
+8-9 p: pppppppppp
+13-16 f: fffffffffffffxtf
+8-9 w: fwgwwwlsfpww
+4-5 g: grgmcpdqggwckq
+16-17 g: gggggwgggggggggln
+3-13 j: jjmjjjjjjjjjbjjjjjj
+9-13 x: xxxxxxxxxxxxx
+5-12 b: bbrmbhbbsgbbbpbbz
+14-18 z: zzzszzszzzzzzzzzzzh
+1-13 k: pkkkkkhgfkfbtkkpkf
+3-14 v: vvvpdlvvvvdfvvjvvsv
+12-13 m: mmmmrmbmmmmmmrmmm
+12-14 v: vvvvvvvvvcrlvkvv
+18-19 p: mxpppgpwcphkzppktppk
+4-10 x: xxxxxxxxxxxxx
+4-5 k: kklkkk
+11-13 m: mmmvmmwmzwmmmnvgmm
+7-11 p: qdppjspwtcpppp
+4-8 l: lllllllll
+12-16 j: jjvjtjjsstfjjnjjk
+15-17 h: phhhhhhhhhhrhhhhh
+4-7 j: sqfjjjj
+3-20 m: wzmqhwmjmclzmmmdlzqm
+8-13 m: jpmmbmtgmnprgt
+8-13 h: hhhhjjhchhbhqshh
+15-20 b: mbbbgbbzmkbbkbbpffqb
+2-3 t: tdlt
+10-16 l: llllkgllrnllllll
+2-4 p: phpf
+3-5 d: ddddd
+5-6 h: hhhhhhh
+2-3 j: cjjrj
+7-10 g: hgwtggfgbcpgd
+3-4 d: dddk
+4-6 t: mltdtf
+8-9 h: zhljxshhh
+2-3 p: vqjgbsp
+6-7 x: gcxvjxp
+15-17 s: sswgssdsgssjlssss
+1-3 m: qvswmm
+1-7 v: svbrvsjv
+3-5 j: vjhjdq
+15-16 b: bbbnbbbmbbbbbbbdbbmb
+6-19 k: spkgcpkhlkkthkgkfzkj
+1-2 c: dxqxnrrlfnnc
+7-11 j: qjjjjjkdrjjjjj
+5-11 g: ztdgvvgwhrlgnq
+3-4 c: fcmqglp
+4-5 q: qqqqqqq
+6-7 c: cccccrc
+7-11 n: nnnnbnnnnnn
+9-13 x: xxxxxbdtqxdwxsx
+9-15 j: ljjjjjjjjjjjjjz
+2-11 j: pjjhzmtwlgjwpkjjdwq
+5-6 k: kkkkkk
+12-13 q: qqqqqqqqqqqmg
+3-14 j: nwkjjlbbrnqvqm
+3-4 h: hhhhshhhhhhmrh
+2-4 l: djkxl
+1-9 t: tttttfttl
+9-10 g: ckggggtggggggv
+3-12 l: cqlclvwhpxwlnzzsqgs
+8-14 d: ddddddddnddfdh
+1-5 v: vvvvxm
+2-5 q: mqqqqlqk
+3-4 j: tkjpj
+13-16 w: wwwwwwwwwwwwwwxww
+13-18 m: mmmmmmmmmmmmmzmmmmm
+2-4 x: xxfxx
+1-2 d: ddvddddkdddd
+3-5 c: cctdc
+2-10 q: tqjkqqpsctx
+2-18 n: nlnnhnxnnnnnnnnnnln
+3-7 k: rkkkbkk
+3-4 n: ngnn
+3-11 d: dqdbwtbghbdj
+3-5 q: fqqqq
+5-10 x: xxxxfgxxjbxbhxx
+5-6 m: mmtmcn
+4-6 x: xxxkxk
+17-19 b: bbbbbbbbbbbbbmbbbjbb
+5-6 k: kkkkhk
+10-12 k: kkkkkkkkkpkgk
+3-4 z: zzzz
+18-19 p: plcppppksppcnptppvmp
+3-6 t: tdtrltmn
+3-4 q: qqqq
+10-19 v: vvzrvvvvvvvvvvvvvvhv
+11-16 d: kjdtddddkdvcdddpd
+12-16 l: lllllllllllllllll
+4-10 b: dbvbqfqlrb
+10-11 k: kbkvkhlkqrv
+1-9 x: sbqnkxdmxpc
+5-10 l: ldlllkllrln
+9-13 j: bpjjjjjjjkjzjnj
+11-12 j: jjjjjjjjdjjj
+2-8 l: jllzbhjlqlwcltllq
+4-5 s: gsssd
+2-4 s: kswn
+1-18 p: bpppppppppppppppptp
+9-11 v: vhvvvvvvvvvv
+2-5 v: vvkvvv
+8-11 p: plplqpjhdzlfpppppl
+11-18 g: ggggglgvgcgggggggg
+9-11 r: rrrrwrrrmrzp
+3-12 g: tggggmggwnpzvgpnp
+13-17 t: tnvvttxttttvtftptgt
+5-16 c: cccqccccjvcccccccczc
+2-4 f: tfbfrjftf
+2-4 s: ssssx
+3-9 v: vvspvvvjv
+3-4 h: hhxh
+15-17 l: lllllllllqllmlvwblll
+4-9 j: rjljjjjfjjskdkwttbjt
+9-10 m: jmmmmmvmhh
+1-8 w: wwwlcwgwwwp
+1-8 j: mllsjncl
+3-4 b: tfbkbssb
+1-7 g: qvdbrjkdgggb
+1-3 l: wlbll
+4-6 v: jvzqbvvvg
+2-3 w: vjlwx
+10-12 c: ccvcccrccjfhgccdw
+10-18 b: bbtbbbbbggbbbbbbbvb
+8-9 j: jjjjjjjjjpjg
+5-15 c: ccbccccccccccvccc
+16-17 t: ttttgtttttttttttthtx
+13-15 t: tvsmjtjttktztrt
+9-12 c: jzrpnzdncldmxqjmvccb
+6-7 v: jjdvpdhv
+4-5 c: ccccccccccccc
+6-7 t: ttzttttt
+10-11 q: qgxqqqqqqqqqq
+14-15 h: hhhhhhhhhhhhhhh
+3-8 b: bbbbmbbbbb
+11-12 r: rhlrsrrrrjrr
+2-6 v: vrvvvhv
+4-5 n: nnnhn
+3-5 p: pqhmnjp
+7-13 h: qhhcwhhhhqhhfq
+10-11 d: dddddddddxh
+10-11 d: gdcdcdddcddtddsddd
+1-5 f: bffspf
+5-8 s: skssblsg
+8-11 m: mmmcmmmwmzmmmvm
+6-8 q: kqqkmqhqq
+2-8 q: nqnqbdgm
+6-11 b: bbbbmbbqbbb
+5-14 q: qqqqpbqqqqqqqgqq
+2-5 p: prprwh
+13-14 k: kkkkkkkkkkkkkkkk
+2-7 v: vnvvdlwvd
+2-3 t: hpsqzxrltrwbttwgbz
+1-5 n: srnlwnnkjnnwhnf
+2-3 r: dtlcv
+2-5 h: hhthhdcm
+2-11 d: rdxfbdhqpbdjjlhf
+1-4 b: bxbshbjr
+4-10 s: sthspqlnsst
+1-10 h: mhwpfrbhhbn
+16-18 g: gggggggglgjgggqcgzgg
+3-4 d: dddd
+12-16 h: dhhhhhhhshhhmnlhhhh
+15-19 q: qmqkqqzqtqdqnqqzqqz
+14-15 p: kgjpqpppppqpdpph
+4-6 z: zzlzzztbbzzr
+11-14 l: blllwlqmhlllldllll
+2-4 q: qqrqc
+5-6 r: qrrvrrr
+2-4 f: fffv
+13-15 v: vkvvvpvvvvvvvhvvvv
+3-8 k: kzqkkkkkk
+4-10 w: wvkwwcwxkwv
+2-6 t: tvtttttttt
+3-4 t: tttt
+11-12 p: pzpzppplplppppk
+6-12 p: pppppdpppppgp
+5-9 w: wwwwwwwzwwww
+4-6 m: mmmmmhmmq
+4-9 j: xsqjsllnjj
+6-9 c: zmcdccgtfccbccfc
+4-5 p: vwpzhpp
+15-16 v: pjtmwtrxmjnjfkvgrv
+9-10 p: pppppppspp
+2-10 f: vffzxnfnxfcfcsmtrncz
+5-7 v: blwvvvvfvvh
+12-16 z: zzzzzzzzzzzzzzzr
+5-6 z: zkvhpz
+9-13 w: wwnwwwwwwwwww
+5-6 p: wmlhpptppmfvngh
+9-11 r: rrrrrgsrrdrmrrrr
+2-5 b: bbbbzb
+13-15 r: rcrrrrrlrrrrqgfrrnr
+5-7 k: klkmkkk
+3-4 f: zfffgdnfff
+3-4 q: qjbjhzltvl
+17-19 w: wwwwwwmwwwwwwwwwqwqw
+7-9 l: nlrldrlvlnvllllvf
+8-9 m: mmmmmpmmm
+11-16 k: kkmkkkwkkkkbkkkkd
+11-14 s: mvsdsnsncsssrs
+6-17 j: jjjjjgzjjsjjjjjjjjd
+19-20 p: ppppppppppppppppppkp
+1-16 k: nkkkkkkktkkxkkxz
+2-4 c: xkcccvvcv
+3-4 v: vvvvvkn
+11-13 q: qqqqqqqqqqsqj
+10-13 g: gxggggggggggg
+3-4 x: xxpx
+4-7 d: dvbddcdhdd
+17-18 g: gggggggggggggggglbgg
+18-19 m: mmmmmmmmmmmmmmmmsmtm
+4-6 g: xbtgrgbgggmgcrx
+8-13 w: wtwcwnwwwcwssxwpbw
+2-3 v: vcsv
+4-5 g: gggpt
+2-3 g: tggtpgkg
+3-4 p: pglt
+9-12 v: vvvvvvvvvvvvn
+11-15 f: fhffffffffnfffq
+2-5 s: snssk
+2-3 m: mmmm
+10-14 x: xxmjbxbxkbwjxxxxj
+5-14 l: lmlmlczxfsllzpkljt
+6-12 n: nnnxpjtbjjdnrnsvxnwt
+5-9 s: ssssfsssb
+3-11 f: bffrlbwzfpf
+3-4 t: twtt
+1-4 r: rkxrsrlrr
+7-8 x: xxxxxxlf
+9-15 d: nddbddddxdddrdntdd
+16-18 v: vrxvwgbqtlkzprlvwvrk
+9-10 l: lllllllllzlll
+3-18 l: mfllwjggswwjjgrnrl
+5-7 j: jjjtjxjvqjjltjj
+5-14 n: nnnnnnnnnnnnnnqn
+3-12 l: pllqlhpllpklcds
+2-5 f: fsgfrpfflq
+4-8 q: xqsfqqqrqhqjsqndz
+1-5 c: hcttt
+13-14 r: rrrrrrrrrrrrrgrr
+4-6 d: dddddt
+3-4 d: tdqgdk
+14-15 s: snskdsjxpsgmbsssssf
+3-5 m: mhlcxmmmw
+2-12 c: ccmccchbrrscv
+14-16 c: ccccccrccccccccmc
+8-17 w: pwqmtwwwwrwxwtmmww
+5-8 h: hhhhmhhmlb
+10-12 b: bbbqwbbbbbbb
+6-7 n: nxnnnnl
+7-10 v: vcvgvtgvvkwvtlvcv
+10-11 t: ttttttktttttttt
+2-5 t: tzdtkpsf
+4-5 r: rrrmhr
+9-10 w: wcdwxgxrwwwk
+1-6 g: jggggcg
+1-7 v: vvvvvvvmv
+12-15 q: rqqqqkqqqjqqbqqqqqrq
+3-10 w: vwwgwwwzwwwwxwwxsw
+3-4 c: mmhfccccjclccrdccc
+1-5 m: mmmmm
+4-5 h: vhhxh
+13-14 z: zzbzzzzzzzzzbcz
+9-11 k: bkkskkkkkkk
+1-6 j: jxvjrm
+4-6 f: ffffff
+3-5 m: mmmmmm
+1-3 x: xxxxxxxxxxx
+16-17 f: fffffffffffvfffrxf
+3-4 f: fwff
+2-11 j: zvbdwnthjfh
+9-10 f: gffffffffff
+1-3 z: zmrnxvs
+5-16 k: llkdkrkvkkhkktkktlkd
+9-13 z: mvjzzzkhzvzxzqmf
+4-5 d: flgsdd
+2-6 p: mftwthqkqqkp
+2-4 f: vfff
+7-12 w: swwwwwwwfwwwwqwfvw
+10-13 c: csdkvcctnccncczc
+12-15 q: qqqqqqhvqqqmqqcfqq
+2-8 v: gvkfgbzvvmfmg
+3-14 m: txwnzwhmcrnnltc
+8-13 v: zsvmsddwnkvrkgmx
+12-13 f: fffffffffffff
+1-16 g: trrkggqglgbbgljx
+13-14 c: ccxcccccccmccd
+9-12 x: xxxxxxxxcxxlxx
+10-14 q: qqqfcqwqqpqqqs
+11-16 l: xllllllllllllbll
+12-13 v: vvvvvvvvvvvvvv
+17-18 g: gggggxggggggggggpcg
+1-5 x: xxrxxklxgw
+4-5 f: fffqt
+10-11 l: llllbklllsgxllr
+6-9 r: crfmrsjhpf
+4-8 h: hhhchhhx
+6-12 v: cvlvvvtbqcsvvzvlztv
+2-3 x: bsgfvxdl
+2-5 j: njzjjj
+13-14 s: ssssssssssssfw
+8-11 l: jllfllllllmlllll
+2-11 p: pxppppppphq
+6-9 f: crtfxvfmwwdvt
+3-5 n: nnnnnn
+3-4 h: hhhh
+3-5 d: kldhd
+18-19 x: xxxxxxxxxxxxxxfxxbs
+4-5 k: kkkct
+9-12 n: nxlnnpnnwnnb
+2-4 g: gqggz
+15-16 z: zzzzzzzzzzzzzzzz
+8-10 p: kpcppjbrzqpfcpgppp
+5-6 g: qggggrg
+7-8 c: cccfncccccc
+2-8 k: hgnsbkckkkqktkstks
+3-14 x: xxlxjxxxxxxxxvxfbx
+1-8 l: lllllllll
+1-2 p: ptbmvp
+10-15 k: jkkkkktkkkkkkkkkknzg
+6-11 k: kkkkdgkkkkk
+7-8 m: mmmmmmmm
+13-19 z: zzzzzzzkzzzzkzzzvzxz
+2-4 g: tghm
+3-8 b: bbbbbvdb
+6-8 d: dddddrvxdddfdd
+5-10 m: mnmnsmmmmxmd
+1-8 r: cgcnqrvfb
+16-17 l: mhjqbmhszwllqqllr
+2-4 s: csssts
+7-10 j: jjjjjjzjqt
+1-12 x: xmxtxxxxxtxxzdxx
+5-6 w: wwnwmwrw
+10-11 p: lpjpgpqpkpprdpppp
+8-9 k: zhkkbkfkk
+1-2 j: klhz
+6-13 d: dmstddpddtddddddd
+1-8 h: khvcwhhhhlj
+8-11 s: bsssbzsfdrsssss
+1-18 s: xsssssssssssssssstss
+8-15 l: xjllsmjtlllmsxll
+1-5 m: mmmmmm
+17-18 k: kkkkkkkkwkkkkkkkbmk
+1-7 t: tttttgtdclpkx
+4-14 k: tgvzgdwkgtcdrd
+2-3 z: tzprzcdzhnnll
+2-4 j: rntmnjxbwq
+5-6 r: rrnjnr
+5-9 g: lrggvfggp
+4-5 s: sssdl
+4-18 h: hhhhhghphbshhhhhhhhh
+4-6 s: sfpjvsk
+1-10 m: fwgstfsjmtp
+4-8 w: wpwwwwwmwsh
+2-19 l: lnllllllllllllllllwl
+4-15 v: vmwhvvwvvvvsvtdvvkv
+5-6 p: lpppslppjppp
+5-7 p: ppzppcmdppt
+14-18 f: mffxfftfwffdffffffff
+4-7 v: kvvdvjvvkmh
+1-7 p: rdkzpkfdpzrxq
+2-3 h: cdhhngnnjslfjbh
+3-6 q: qqzqqwqt
+5-10 s: kpcsszfcwsh
+11-12 g: gggggggggggw
+14-15 w: wwwwwwwwwwwwwsp
+6-10 h: bhkzhhhsbhhh
+3-4 l: fcnvfxtln
+2-7 j: jzsjfrjjjmxqjxjjss
+6-9 s: nvdhnsbhsdwxhlj
+1-2 v: vvrp
+2-5 h: qhnbhfbsdhs
+3-4 x: xqvzps
+3-4 m: mcmm
+9-11 l: srdlflnwlrl
+1-8 x: cxjgmlgwvqdpnbzn
+3-4 q: qqqk
+4-5 r: wsdlmbdv
+1-3 d: tbtdddp
+3-8 g: gsggsggvgggpgrgx
+5-7 t: ktzrvktqpllxwzt
+1-2 s: spss
+6-19 d: dtjdmqdldddbdcnzkqpd
+9-11 f: fffffffffzf
+1-12 g: wggnvsgcrgmx
+5-7 f: qfpzfmkfmfjc
+14-15 j: jhjjjjjjxqjdvvfj
+6-7 v: vvtvvqs
+4-11 q: qqqxqcqjqqmqqgt
+1-3 l: gbkhxlzld
+1-4 s: pssz
+13-16 x: xxxxxxxxxxxxfsxpp
+3-6 p: mlptcpvcrppn
+13-15 x: xxxxxxxxxxxxxxxxx
+13-14 f: ffffffffffffff
+2-5 j: jjpwj
+2-7 r: xrrzrvrkjr
+8-9 m: mmhlmhmmmpzpmmhgmvz
+3-4 g: zgggdwgggdl
+6-9 t: tttttxjzttttr
+1-4 h: njzthhch
+3-14 x: xprxtxbpxxxxlg
+9-15 q: qqqqqjqqqqqqhqqqqq
+4-6 w: wwfwwwrb
+6-8 w: wwwwwwww
+10-11 k: kkkkkkkkksl
+3-4 n: nnqfvfn
+11-13 c: ccccccccccccc
+5-9 n: vnvnmnnnqfnq
+13-14 f: ffpzrfflffffffqffff
+17-18 p: ppppppppppthpppppzp
+3-8 m: hsmzgwdmm
+4-7 z: zlzhtzcnzzzz
+6-13 b: bvbbbhbbbbbbgbb
+11-16 x: lpxtdgxvzbxpcwxc
+10-14 d: dddddddddrddddddd
+2-5 j: lhjnv
+2-3 p: pdkp
+3-10 l: lnllqjpgqfl
+1-4 t: ttttttt
+4-8 q: qxzqqqfczksrwmmzx
+1-4 l: lllll
+5-19 z: ttzhzcbczmjxzrjzpwz
+4-7 s: sgssssjs
+12-13 s: sssssssssssbq
+9-12 h: hhhlchhhvhwb
+5-13 n: fncqnnnnwkhnn
+10-13 g: ggggjggggrgcqgg
+8-12 q: qqxqvqqmqrpdrxqq
+5-6 l: ldwlvnllwq
+12-15 v: cvvvkvvvvvvvvrvvvl
+6-11 x: kxmthvnkgxq
+6-9 n: nfdfnkmnln
+3-5 x: nqcxt
+2-7 p: tpgkbpwxhpzldtmrqd
+8-9 r: rrrsrrzrrmrr
+3-10 x: fmmjlxbqlz
+1-10 g: cngggggqghf
+10-11 r: frrrrrrrrgj
+2-5 q: sqgqq
+7-8 x: cxxxwxsvjgxx
+8-16 t: ttttttgpttqttttt
+4-8 n: ndznlllnqwpmnnfwvxb
+4-15 j: jjbszvrjjjjfjjjwjjcj
+4-5 c: ccvrlc
+17-19 f: ffffkpfffjxffwffcff
+3-4 z: qfzzz
+7-9 s: szssssjsm
+13-18 q: lngqqpvqqdjvcqdqvlq
+7-8 b: bbbbbbbb
+2-4 n: lnqr
+11-13 k: kkkkkgkkkqxkhfk
+2-4 g: tggqzdxp
+3-5 t: ttvtft
+2-4 v: pzbbr
+1-4 h: thhhh
+2-5 m: mqxdt
+8-9 k: kkkkkkkkk
+2-6 w: jqfwlhv
+17-18 x: xhxxxkxxxxxxxxxxxbxx
+9-10 p: ppwppdpxvvjzpp
+10-16 h: hmhjpxmhvnhqhjfmb
+11-15 k: kkxkkkkkkgckkkcs
+5-9 b: cwcbjsqbdwmbw
+10-11 z: zzzzzzzzzzz
+14-16 w: wptvwbwdwwwwwwww
+8-10 c: xccclcchcrvtqc
+7-12 r: rhnrrrrrrrkqrrtm
+3-5 h: hhrhph
+7-10 c: wblrcccpctnhvdc
+15-17 n: nnnnnnnnnnnnnnnnn
+5-13 s: ssssssssrssmslsssv
+8-19 k: pvqbhlzkwpnkcgkvkwk
+4-5 s: pkrxgskxsswbqwlfxsvw
+5-10 d: ddsbdcdsdd
+12-13 q: hwrkqrhqrrxmw
+5-15 b: blcbfqbgbnghjbnglbbb
+1-3 z: zzczzz
+3-14 s: jsxssskvsssptw
+8-13 n: nnnnknnnnnnnnnn
+3-11 c: ccccccccccbccccc
+1-6 n: nnnlbn
+9-12 k: qkkkkkkkkxwkkk
+19-20 w: wwwwwwwrwwwwwwwwwwww
+10-15 n: nnnnnnndnnndfnnnn
+8-14 c: cvndjxlcsccwxl
+1-3 v: vrvwv
+8-10 s: rshsssjssss
+2-10 n: nnjnnnnnnhnkm
+1-2 c: ccbcflcp
+3-6 v: jtntcsvvvhp
+3-5 q: qqqql
+17-19 p: ppppppppppppppppmpg
+10-11 k: kkkkkkkkktrk
+2-4 f: tgprtftkfx
+8-9 x: xxxxxxxld
+4-6 l: lhzllllzhv
+8-9 g: bhgkfgsggxg
+5-9 d: dkdddddmdwd
+2-13 s: sdffzhrpbnvtswxsbrcs
+7-8 q: qjqpdqvwqqdtxpq
+5-8 n: lncnfnzxtsn
+8-9 p: khtrxgvhtqwrfpqrd
+2-4 s: zhln
+5-6 q: bqqqddp
+7-13 g: gggjggggggggg
+10-12 w: wwwwwwwwwkww
+1-4 b: bwbbdbhbl
+9-18 j: jjjjjjjjjjjjjjjjjjj
+10-18 j: jjjvjjjtjjqjjjjfbjd
+11-13 m: mmdmmmmmdmmmqm
+6-9 n: nnnndtnvfnn
+2-3 q: qckq
+16-17 x: xcxxxxxxxxxxxxxpxx
+14-17 k: kkkkkkkkqkkkkkkck
+3-8 l: llkllllvl
+8-13 p: nkptlpntkcknppwpdhb
+6-12 s: ssssssssssss
+8-14 c: ccccccccccccccccsc
+6-9 p: cpppdnppztxbpp
+8-12 w: vshmsmbckwjmw
+1-10 g: qqtfmmxnbg
+1-6 m: mmkmmmfmw
+5-8 v: vvvwxvvdqv
+7-8 f: ffffffff
+2-10 k: kkkkkkkkkk
+1-4 g: wjhxhq
+3-4 w: znpwwmwcwjgs
+5-9 d: ddddrdddwl
+6-8 j: kjjhvzrbrwcjjm
+2-5 j: jhjjxjjsj
+2-6 t: ccwdcm
+4-12 q: qlqrsgqqhqqf
+13-16 w: mwwwwwhwwwwwwwwwww
+9-10 g: ggggggggggmtgwj
+1-3 x: xxxx
+1-3 n: jxtqjbhpkgrcrdrptvd
+14-15 w: wwhwwwwwwwwwwww
+7-10 d: wddddzvdddkdm
+1-4 p: lzph
+6-9 w: wwwzwswwr
+17-18 t: kjtktrtfgkhpzthvsjt
+12-13 j: jjjjjjjjjjjxs
+8-9 r: srrzrmrxnhrrr
+1-5 s: spzsshkzfmkdss
+1-7 z: zzsmzzhzzxzzzzz
+1-2 d: ddvx
+2-9 h: hhhhhhhhhhh
+6-8 p: ppppppppx
+4-8 v: bqvvxmvtvhfvv
+3-4 z: zzzz
+2-4 r: rrrrrrr
+4-5 r: mhrrrrrrq
+5-6 b: nkhgfjrzqldbbbbmpx
+7-8 n: nnnsnwnncdnn
+13-15 p: pppntwcpppppppv
+5-11 r: tmkrdcmrpcrrkrl
+3-4 v: vvgf
+4-5 j: jjvtcj
+3-5 p: ppppp
+1-3 r: mrrr
+13-14 v: vvvvvsvvnvvvhxvvv
+10-14 z: ltwsklmfdpvxmxgq
+16-17 b: bbbbbbbbbbbbbbbqqbbb
+3-8 q: qbpqpvqll
+9-10 x: xxxxqtxxzxxxx
+8-12 d: pdddnddcbcdx
+2-3 m: fmmmsfmvcmkc
+9-10 x: slxtnxxtjnnxjnq
+5-13 h: hhshhhhvhffhhn
+6-14 t: wwwmqttttkpmqtrt
+1-5 b: mbbbb
+10-12 k: kfkkpkrkkkkkkkh
+5-6 m: mnlmbvmm
+5-6 x: xxxxvl
+5-7 b: dbbbpbc
+2-19 t: qhdtkxjzdcwjqjkglpzr
+1-4 h: hhgqhnhhhhfhhh
+1-10 b: bqbbbbzbbbbbbwb
+2-3 b: dbbkgnxmbtpg
+3-8 r: rrrjrgrrwq
+4-7 s: ssrfwfgvskmssws
+13-14 m: smdmmmmmgmfmmjs
+13-15 h: hhhshhwhjhhhhhhhh
+12-13 n: nnnnnnnnnnnnnn
+6-14 n: ndnnpqwrlgfrmn
+3-16 m: rldkmmmkhmsmbnqbmgs
+2-3 m: rmmmmm
+5-9 x: xxxxfxxstxxs
+4-8 b: bgbbbbgbbbb
+9-11 c: kwcclccccscxp
+10-17 v: vvvvvvvvvvvvvvvvvv
+13-18 n: nrnnnnnnnnnnfnnnnpn
+3-4 c: hbcc
+13-14 w: wwgwwwwwwwwwwc
+4-6 z: fwmzzzz
+12-15 h: vhhfhhhhhwhrhhlkmhhh
+1-5 v: jqvvhvvbt
+4-5 n: vnnscn
+5-6 n: qnrvnnndnffnkknfrdt
+6-7 w: wwwwwvznwwwwww
+6-12 h: hvhhhdhhhhhr
+4-5 m: vtmmmmdmp
+8-9 f: ffffffffffffffffdf
+5-11 z: zzzzjzhzgjwzzhlz
+8-10 d: mdnnfwswns
+4-15 c: rptccckzhgcvlccbh
+4-5 r: brrrgtd
+4-15 x: rxsfxqhhzxdsxqxgw
+8-9 c: ccccclcccccccc
+2-9 l: mwltgglzztlpllgf
+12-13 g: nnjgzggjkgzgd
+4-6 j: jjfjjnj
+11-14 m: mmfqpmkmmmmmmmrm
+6-7 c: cccccqccmccccc
+6-9 f: ffzgcfcpfwztjk
+6-9 r: sjgrxnrvnqmmlxdrsp
+3-11 c: cchwcfcckcn
+7-10 p: jpzdflzgkxnbhj
+5-6 b: bblblp
+7-8 p: ppppppllppp
+10-13 b: bbbbbvbbggbbb
+5-6 p: pppptp
+2-6 t: qttttjtt
+3-6 n: vwlhczrnwpnvrnl
+8-9 r: jrrdrrrjwrrrrrs
+3-4 n: nnwqn
+4-8 b: mbscbwxn
+10-12 v: tqbvxmlqvvvv
+1-9 l: qcllllncllcllllrn
+6-10 b: gbbxfblbbx
+11-13 g: gggqgggtgggtgrgsg
+2-3 f: fjkz
+5-11 t: tttttttttttt
+5-18 j: zjdxgjjpshjjkjbtjvg
+9-11 k: kjkfkwkkrkgk
+1-8 w: hwhcwwbffvcdwzwbww
+7-16 l: rrljlvlmmlssllkllqj
+1-4 d: hddldvddddf
+7-9 b: bgbbbrmblb
+2-5 v: ltvvvv
+5-6 r: rgrrdvrrrrrrr
+8-9 n: wnnnnnnnn
+1-8 q: sfmbjqqwvqqq
+2-11 b: wblbmlrcwffl
+4-5 n: cfmnn
+15-16 g: gggggggggggggggq
+6-10 x: xxxxxxxxltxxx
+5-9 g: gggbgxgggpgn
+8-10 z: zzztjzzzqzp
+4-5 x: xxxfl
+6-10 v: vvvhvvvvvv
+6-8 v: tdrvsnvpvzxbwvv
+8-11 q: qqqqqqqqqqjqqq
+12-13 z: zjzzzvzjkzzzz
+1-8 b: bsqqmbnbcwhkphfh
+1-5 z: zdjzzrm
+3-4 m: vlmmtbmmxcdkmdmfb
+7-14 k: kkwpcjfkkkrknzkk
+1-3 f: cfbljmpfghhgxdbg
+6-7 n: mrnhnxn
+16-17 g: gggggggggggggggmr
+7-8 q: qqqkqhqqwkpzshq
+9-15 j: jjjjjjjjjjpjjjj
+5-6 t: tttttl
+4-15 h: hhhhhbsbphhhlzgh
+4-6 h: qhhlhh
+2-6 f: wfwdff
+1-7 c: rczccfx
+3-8 b: jkznbbbqlk
+8-14 r: srtchmrjxmzznm
+4-8 s: ssgskspsdsmclrmxzp
+9-12 j: kjjjfcjjljjqjj
+3-5 l: lllvllll
+15-16 s: sssssssssssssszs
+5-6 z: zzzzmfjz
+13-14 v: vnvvgvvvvwvvfrvspv
+7-8 t: ttttttkst
+17-18 f: ffffffffffffffffhx
+8-11 b: bbbkbswbbpbnbbbbx
+7-14 s: ssjfssssssjsdp
+6-8 s: sssssqsps
+5-8 h: hhdhphhmhhhh
+8-9 r: prrmrpsrrrvrzrrrsrn
+4-17 t: ttttjttjttthtktttt
+7-9 v: tvvwvpvrbnvvvv
+8-12 j: plfsgrjjgjrjwcgc
+2-7 r: krqzzprxrldwg
+4-11 k: sfpkkkcwkwk
+2-3 z: zzhp
+6-9 h: xkjwshvmhbjhfjvkwcmh
+4-8 d: dvndvmdzn
+3-6 r: wrrrrr
+6-8 g: kggdgfgzz
+3-5 j: jjjjj
+2-9 x: qkksvkxxvxbxx
+12-17 b: kjpbpbmddcnwbbbxb
+2-10 w: rwpbpbwrbmwgwwvghvg
+1-12 f: fbfqmffffftf
+1-8 z: qvbjgplznjztjvqjhv
+1-5 b: bbbbbbbbb
+7-11 p: kddppkdtqpjcfpp
+14-20 z: zzzzzmzzzzzzzzzzzzzz
+7-8 p: sjspdphq
+11-12 w: wpwwwwwwwwwd
+7-12 d: sdddddkdjddd
+6-8 g: gggfzzhglgxqpgbnbgbx
+10-13 c: hcccctjcccccccn
+14-16 k: kkkkkvkkkkkkkkpxk
+16-18 c: ccccccccclcccccccjc
+2-4 r: llrh
+11-13 g: ggggggggggggm
+1-4 z: zfwzzz
+4-6 s: ssssfs
+5-12 t: tttttntttttt
+2-6 n: gnghnp
+1-3 q: qqgq
+10-11 f: rdzfzffhtfffffff
+4-9 k: kpfhvkkkk
+3-10 t: twlkttptttt
+4-10 d: dkdvgkdddwd
+5-12 t: ttttnttghtthtvtt
+4-5 c: ctczwcccc
+17-18 l: llllllllllllllllmx
+2-8 t: knmttnttdjbtttvtkt
+1-2 j: jdjjjj
+12-16 j: wmqlfjlnxnvlrjkmj
+13-17 s: snsdsssssssssssss
+8-14 h: hhhhhfhhhwhphhscphd
+9-10 b: bbbgbbbbqcb
+15-16 z: fjjcjrwjtrcnltzz
+6-8 s: ssssxjshd
+2-4 k: kkkw
+3-6 s: xsfgbpss
+13-15 x: xxpxxxxdxxxgjxgxxx
+4-5 l: llqlllsl
+10-15 g: jggxgsggggggjtgg
+2-6 b: prpbjbkbbkcb
+7-9 h: hhhhhkfhh
+8-11 f: fzhftffvffwffnl
+11-15 x: xxxcxxxxxngxxxcxx
+11-12 k: skkkkkkkkkxhn
+5-15 n: cnnnnqqbnnnncznnp
+1-3 v: vqvxlfwpjvxtpkvlhxjv
+3-8 b: gfbbbsfbb
+3-4 z: qzzzbczk
+8-17 t: cpttttttpttttttttt
+11-17 l: lprllfllllnlllllnll
+7-8 f: ffffffrd
+2-6 z: hghjzzwpwz
+6-13 m: thzmtmcsmtctf
+2-4 c: dctc
+10-17 s: sssssssspzssssssl
+6-10 j: jjjjljljjjjjzj
+5-7 b: bbxbvsxphgrmnqgzbbx
+1-11 l: rlnlllllllvlllll
+13-16 b: bbbbfbnbbbbbzgbwbb
+5-11 p: bpjpnpqpppjpmppphrk
+1-3 l: llll
+11-15 l: llgllllcllllllllfll
+2-7 x: kxsnzzx
+18-19 g: gglgggvqkjzgkgggzgg
+3-5 j: fqvjjcjjhb
+6-7 c: fccccccct
+13-16 m: mzmtcgmcmmmkdmlk
+5-9 w: wwsjwwwww
+1-2 m: jzmj
+16-18 m: mmmmmmvmmmmmmmmqwn
+11-12 w: wwwbrwcwwxwwmwwrdww
+3-4 v: nsvddwnvvvm
+5-8 m: mjmrbpmh
+2-3 t: xdrtzgdl
+2-6 n: fnwwgnnzwsp
+7-9 p: jpppppvppsqt
+1-8 k: gkkkkkkkk
+2-9 q: jqqqwfzxhqqqqsxqm
+2-4 t: jtwt
+6-20 d: hqdkcmkdndjrftmgjgqc
+2-9 r: crgmrqpwrrr
+9-15 p: pwmjlrgnrppwphg
+3-4 t: ttqttttnttttt
+1-5 v: hvvvv
+1-2 x: ggxxxxt
+17-18 m: mmmmmmmmmmmmmmmmcl
+4-10 d: dxtmsjvhczfjd
+8-10 x: xpbxsxpxgxqxxqxxk
+6-9 f: ffffmffdwkfrlffx
+8-10 m: ldmmgxxmbmnqftt
+12-13 p: ppxpxhppgppqqpvppp
+4-12 k: kkkkkkkgklkkjkkqvkk
+3-4 x: xxcp
+7-8 k: kkkkkkkr
+11-14 d: dddkpddvdddddg
+3-8 l: lsgmlqll
+12-13 z: znzzzzzzzzzzrz
+3-5 h: hhdphh
+3-4 h: hqhhh
+4-6 f: wfsfrffzf
+8-12 k: ktkdmhvkxktkhr
+2-6 d: dpdwdddd
+7-12 n: nnnnnnpnnnnxn
+1-3 v: vvvv
+3-11 q: gmqqqqmqshpq
+3-4 j: jjjjkjhjf
+2-4 b: glbxb
+13-14 s: ssssssssssrssds
+16-18 d: dddddddddddddddddd
+3-9 g: fgggzttsg
+11-12 r: grrrrrrqrrrrrrr
+2-5 q: cdqqv
+6-11 l: lfclllslllxllll
+2-3 d: dzdddg
+2-4 n: tkwm
+4-5 r: kdccjnrfrzrhplrz
+4-16 j: tfxsmxlrjptjjrxw
+16-17 p: stpsgsgwvqrzpblpsx
+8-12 r: rrdrgrrgrrhrwqjmp
+5-8 j: jjqjjkjjjjnv
+2-7 n: wzgnnnnnn
+1-3 v: vvvv
+4-5 l: hlgnx
+8-15 c: ccccpccczvcsccc
+3-15 f: ffnfffffffffffv
+4-5 w: wwjgww
+10-15 d: ddddbcrddmddddld
+7-11 w: wwwwwwwwwwz
+3-4 h: hhhh
+4-9 v: vvpgvvnvtv
+8-11 q: qqqqvqqqxqcqnmq
+2-5 s: lsnpdqqqsj
+8-9 g: ggsgggggz
+6-10 s: sssssbsbbtss
+12-16 z: zhzzzszzzzznnzbwz
+9-10 p: ppnpdpgldl
+10-11 r: rrrrrrrlrtfrr
+1-13 h: xhhrhhhhhhhhchhhhcp
+5-14 m: mmmmmmmmmmmmmqm
+8-9 h: hhhhchhhhhkt
+3-4 f: fflf
+7-13 s: ssssssssscsssjs
+2-3 t: twlcfmbmbxtt
+4-6 v: vdvhvf
+1-7 c: bccccccccccc
+13-14 r: wrrvrvrtrrrrrrrrrrr
+1-3 b: sjvfpdrbcnwr
+1-7 z: xzzzzwjz
+6-14 j: jfrxjjjrqcqjwmbfjjjm
+11-14 f: ffffffffffqffzqf
+6-8 z: zzzzzrzw
+1-5 j: jjjnjjjjj
+9-10 g: ggggggxggg
+7-9 r: rrrvrrbrdr
+9-18 j: jjjjjjjjnjjjjjjjjfjj
+14-18 q: kjtxqqqqltlpgqshdx
+8-12 k: kkkkkkwjkkkfkkk
+2-4 s: ssvs
+3-5 z: zzfjk
+9-10 m: rmmlmsmfmbj
+14-15 z: nlzzzzzzzzzdzzzzzz
+8-12 r: zrrrrprrxrrrrkrhk
+1-2 z: qlfzd
+1-6 j: kqjpjzpsgjjqz
+1-5 s: qfssks
+2-5 r: nrrzrr
+4-6 g: kggggg
+6-7 c: cccccdqcc
+2-6 x: vjkxbrfwnj
+16-18 s: kssssssswssssssssssb"
+
+# ╔═╡ 4a629040-347a-11eb-2aae-6f37a4c89168
+input_day2 = parse_day2(input_day2_raw)
+
+# ╔═╡ 5825aa50-347a-11eb-37ca-811e1b59d37a
+md"**Result for part 1**: $(nb_of_valid_passwords_part1(input_day2))"
+
+# ╔═╡ de3c2f00-347b-11eb-0aec-8b776a855f6a
+md"**Result for part 2**: $(nb_of_valid_passwords_part2(input_day2))"
+
 # ╔═╡ Cell order:
 # ╟─f0dd4400-3313-11eb-3295-af913c2212fb
 # ╟─0b7b8920-3314-11eb-2cfb-7d20c0967e67
@@ -256,3 +1335,13 @@ md"**Result for part 2:** $(day1_part2(input_day1))"
 # ╠═1e8e7230-33ae-11eb-0a77-035e6a4b9ba8
 # ╟─7a037310-33ac-11eb-34fb-9bf552883937
 # ╟─c7dcdae0-33b1-11eb-2cab-fbc06c8ef76b
+# ╟─5d9712b0-3472-11eb-1423-719331dfe52f
+# ╠═b9144990-3473-11eb-0ba9-59f3fe6ddbc0
+# ╟─10f5ffa0-3474-11eb-2a36-d5c6f78f18c6
+# ╠═6695038e-3472-11eb-1846-3b1c041be59d
+# ╠═bbda1c1e-347a-11eb-0e7a-756906c4c9f4
+# ╟─a0cfb670-3474-11eb-1a05-c12914658a0a
+# ╟─2b112350-347a-11eb-1725-5f70e3623379
+# ╟─4a629040-347a-11eb-2aae-6f37a4c89168
+# ╟─5825aa50-347a-11eb-37ca-811e1b59d37a
+# ╟─de3c2f00-347b-11eb-0aec-8b776a855f6a