summaryrefslogtreecommitdiff
path: root/2023
diff options
context:
space:
mode:
authornekineki <nekineki@nekineki.net>2024-12-02 17:48:12 +0100
committernekineki <nekineki@nekineki.net>2024-12-02 17:48:12 +0100
commitae1a0ae37bdb52a55acd1f0b3442cf2a93cacc31 (patch)
tree247e3048102d22c3f082184bc716e58d16424b5e /2023
parent68c88b6a738bbec01f1fe498c33b9372139b02cc (diff)
add uncommited stuff from 2023
Diffstat (limited to '2023')
-rw-r--r--2023/Cargo.lock138
-rw-r--r--2023/Cargo.toml1
-rw-r--r--2023/day21.rs7
-rw-r--r--2023/day24.rs16
-rw-r--r--2023/day25.rs39
-rw-r--r--2023/in/day25.pzl1275
-rw-r--r--2023/in/day25.ref13
7 files changed, 1479 insertions, 10 deletions
diff --git a/2023/Cargo.lock b/2023/Cargo.lock
index 51c0f38..9f0be88 100644
--- a/2023/Cargo.lock
+++ b/2023/Cargo.lock
@@ -6,16 +6,69 @@ version = 3
name = "aoc2023"
version = "0.1.0"
dependencies = [
+ "nalgebra",
"num",
]
[[package]]
+name = "approx"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
+name = "bytemuck"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+
+[[package]]
+name = "matrixmultiply"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
+dependencies = [
+ "autocfg",
+ "rawpointer",
+]
+
+[[package]]
+name = "nalgebra"
+version = "0.32.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa"
+dependencies = [
+ "approx",
+ "matrixmultiply",
+ "nalgebra-macros",
+ "num-complex",
+ "num-rational",
+ "num-traits",
+ "simba",
+ "typenum",
+]
+
+[[package]]
+name = "nalgebra-macros"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "num"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -90,3 +143,88 @@ checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
dependencies = [
"autocfg",
]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.71"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rawpointer"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+
+[[package]]
+name = "safe_arch"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "simba"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae"
+dependencies = [
+ "approx",
+ "num-complex",
+ "num-traits",
+ "paste",
+ "wide",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "wide"
+version = "0.7.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242"
+dependencies = [
+ "bytemuck",
+ "safe_arch",
+]
diff --git a/2023/Cargo.toml b/2023/Cargo.toml
index db7ed2a..ba69845 100644
--- a/2023/Cargo.toml
+++ b/2023/Cargo.toml
@@ -9,6 +9,7 @@ edition = "2021"
opt-level = 3
[dependencies]
+nalgebra = "0.32.3"
num = "0.4"
[[bin]]
diff --git a/2023/day21.rs b/2023/day21.rs
index c533177..bcad5ac 100644
--- a/2023/day21.rs
+++ b/2023/day21.rs
@@ -73,9 +73,12 @@ fn main() {
m.push(r);
}
- let res1 = bfs(64, x0, y0, &m);
+ let res1 = 0;
+ // let res1 = bfs(64, x0, y0, &m);
- let mut res2 = 0;
+ let steps = 26501365;
+
+ let mut res2 = bfs(264, x0, y0, &m);
println!("res1: {}", res1);
println!("res2: {}", res2);
diff --git a/2023/day24.rs b/2023/day24.rs
index 69f0b74..09274c7 100644
--- a/2023/day24.rs
+++ b/2023/day24.rs
@@ -51,10 +51,10 @@ fn crosses_xy(s1: &Stone, s2: &Stone, coord_min: f64, coord_max: f64) -> bool {
fn main() {
let args: Vec<String> = env::args().collect();
- let filename = if args.len() == 1 {
- "in/".to_owned() + args[0].split('/').last().unwrap() + ".pzl"
+ let (filename, testinput) = if args.len() == 1 {
+ ("in/".to_owned() + args[0].split('/').last().unwrap() + ".pzl", false)
} else {
- args[1].clone()
+ (args[1].clone(), true)
};
let mut f = File::open(filename).expect("cannot open file");
let mut content = String::new();
@@ -70,10 +70,11 @@ fn main() {
});
}
- let coord_min = 200000000000000.0;
- let coord_max = 400000000000000.0;
- // let coord_min = 7.0;
- // let coord_max = 27.0;
+ let (coord_min, coord_max) = if testinput {
+ (7.0, 27.0)
+ } else {
+ (200000000000000.0, 400000000000000.)
+ };
let mut cross: Vec<bool> = Vec::new();
for i in 0..ss.len() {
@@ -81,7 +82,6 @@ fn main() {
cross.push(crosses_xy(&ss[i], &ss[j], coord_min, coord_max));
}
}
-
let res1 = cross.iter().filter(|x| **x).fold(0, |x, _| x + 1);
let mut res2 = 0;
diff --git a/2023/day25.rs b/2023/day25.rs
new file mode 100644
index 0000000..d622bdd
--- /dev/null
+++ b/2023/day25.rs
@@ -0,0 +1,39 @@
+#![allow(dead_code)]
+#![allow(unused_variables)]
+#![allow(unused_mut)]
+use std::env;
+use std::fs::File;
+use std::io::Read;
+use std::collections::HashMap;
+
+type Matrix<T> = Vec<Vec<T>>;
+
+fn str_to_num( let mut hm: HashMap<&str, usize> = HashMap::new();
+
+fn main() {
+ let args: Vec<String> = env::args().collect();
+ let filename = if args.len() == 1 {
+ "in/".to_owned() + args[0].split('/').last().unwrap() + ".pzl"
+ } else {
+ args[1].clone()
+ };
+ let mut f = File::open(filename).expect("cannot open file");
+ let mut content = String::new();
+ f.read_to_string(&mut content).expect("cannot read file");
+ let lines: Vec<_> = content.trim_end().split('\n').collect();
+
+ let mut m: Matrix<bool> = vec![vec![false; lines.len()]; lines.len()];
+ let mut hm: HashMap<&str, usize> = HashMap::new();
+
+ let mut n = 0;
+ for line in lines.iter() {
+ let (a, b) = line.split_once(": ").unwrap();
+ println!("{} {}", a, b);
+ }
+
+ let mut res1 = 0;
+ let mut res2 = 0;
+
+ println!("res1: {}", res1);
+ println!("res2: {}", res2);
+}
diff --git a/2023/in/day25.pzl b/2023/in/day25.pzl
new file mode 100644
index 0000000..5044927
--- /dev/null
+++ b/2023/in/day25.pzl
@@ -0,0 +1,1275 @@
+zvk: shb cxf qlp jkz
+mtl: jvv grn dpt gzc
+rgl: hfg
+rpt: zhq
+fnx: nrs xnq nhc czd
+dqb: hhg dkk
+mfg: szc xqh
+kvr: pnh
+xfj: mtz
+szp: hlv fqg knb tsg
+fds: hqv rcs gnk rrx frt
+frr: fhp ddk
+jzr: lxd brl cjz grp rgc
+xgc: bbj jzv pmm
+xdv: ckf
+fxx: qbb djb
+hzp: bql nxl ngz xpc
+lqz: zzq nrr dpt xpx dhd
+zlc: bdz zzx
+rkx: clp ptr
+rbm: mnp ljg fnb vhd
+tbv: xtr xdk zqf vjr
+tth: dvf
+cks: rgc fcs vgj spq
+hld: qpd
+rfr: bsk gls bgx nqq
+bjr: tks jfj xsp
+cqz: jlt pxr zzz
+rms: nrr nlc flm mzm
+jsq: fhv lvd vkf mtz fsk thv
+lgc: nkv
+jls: dgx lcf
+nbp: khr mlr qcd
+vxc: bdc zpm xxl bft
+gtv: rcz qzn fnq gjh spq
+mvj: zxn rgl xvn
+zgv: xlq rpt dgh
+zxz: vfb xrn zbz fjj kpm str
+sbq: dcg gjg pmj
+zhj: xft snk lhm bhc zhk
+qvn: mvm fqx
+qsv: jfj
+zdn: jjd ppn jgk
+qrk: mtg
+mcv: xcl
+hpb: fbv btm
+xnb: tcm rlm rvh
+tjg: pgj bqb qjd
+kld: rrn
+vbj: msm xst xrr
+dpt: hvp pqg
+xpc: kkg
+dqd: mjm hqd cdv krg rjr
+ggr: rtm vrv vtl
+fql: jtf kzk vxk
+xzp: vtg xvv kdr zck kld
+knc: thz cbz
+rzl: xff xjj
+zlm: cnv
+gmg: sgh
+qpg: bzz qpr kvc
+brx: lpm lpl dlc xxb
+frt: rkh jvr sbc
+rtr: gzb zhb kbk
+mcq: gbl vdl mrc fcv
+pbn: pfh sjk lgd fcb zxn
+krg: hgv lxl
+nzk: pbc mjh bdc gjq
+gbl: dpm pdl
+tsl: rjg lqd pfh
+fgr: tvm npm
+hxt: dxv xtc jgs nhc
+lxn: llp sxc vqb hfq
+psj: dmj mzf tpl xnx
+xsl: vql hkx qcc pqc hph
+rcr: nzx xbr
+njj: lfg srh cbv
+pjf: rxv zsx rcr
+hfq: jzv nnv
+flf: zjb vmq sfm mvj dzb xrk
+gjk: skk tcp
+ddh: mmq cqz bcx fqg
+jfh: mtt lcr mns jsj
+xmm: mvs lxs
+mpr: gmq pjf jdr tbf
+jjn: qjd vzc
+thp: gfs hzs ggs
+ssb: ljm
+thq: xsf kdb hkx
+xlj: rrn vql mkg
+ckm: hzf ggg rjk
+tdc: vjj gms cns nsv
+vlz: vqc gbv
+rrd: bxz vqk
+rtm: kjx
+qql: bnf nmp
+lrf: thz rzd jnm
+cvl: qlj dvf vxl
+mrc: xfj
+rgd: vhq jtx rpl zsx fgv
+zzb: jsx mgp
+nxg: bdz
+btc: vck sxq cdz
+vdh: lgk
+dst: nmv gcz
+hpv: skv rmr hjk scl
+pdm: qrk
+tbh: bdc jhq
+lpr: gph dmh
+fcb: rqm kts jvg
+lrv: cbv
+lbt: qsl
+jcr: dqb zgk
+rhm: vjr csb lxq sfk
+jdl: jkx jzm bxb vms
+gdt: jqx fsk gkb xpf
+ngn: llz bfh
+hrx: zbc kpg mrr vdh
+hnf: bmp kdt
+ggq: nrs rxg pps vqq ztt
+fcc: vtq xxc
+pcr: jsp
+jgc: xvt gmv sdm ptr
+tpt: mml
+pdb: fvg rtr bpk fpn nss jkd
+ppx: pnc bhc
+ksm: kvc bmt stx
+gpv: nnt dlc ltr jfs
+pcx: sgg kps
+jfb: bvn zkh
+fqb: fpn tbm xhr pnn
+bxb: fnq
+ndl: mtv nlg
+tnv: dmv pzc dvq xpf
+gxf: bvn tlf
+ncd: xpc dnf nbs hlv jrh
+ckp: zbg fvt
+mjv: btm kvc
+cgf: dbg fll kdb ndp
+lzf: jjd glj nhz
+zrv: jbp slr
+rxg: bdz
+hzs: xnk
+rdz: klf rnx blc rkb
+pnn: nzx lhp
+kzq: drn gjq qvs xkd
+zpm: spk
+jnj: fjj bjk lfc stl xds
+jdr: pcx
+hgx: dxm txl jvg sgc
+zsn: kjk nbz hhg
+zlr: jxp bbj hhg tdx
+dkr: hbm rtc dhh jjv
+ngd: cdt xst tkt
+nkv: nbs
+fvz: hmq tts
+jkx: hpm chx ftn
+xqh: qhr klf
+dhd: pmj tth
+sqf: zzr bnr mrb bfv
+mhc: hnf qph tlk htm glc
+dns: qbm gjg
+kdb: lbq
+bvl: jkz jtd djb vfk
+rrm: dsq xgn jhq znz
+psc: kpz zjb xnk hmq hbm
+bxt: tjg hhh tpv
+dxm: qcd qrk lct
+ssx: klf zcp
+xlk: mrj rzm nvd
+gfg: ltb hjx bqc qmc flp
+thz: jfz
+drm: qvs gkh lhq jnt tqk
+tcn: zcq nkl kql cmh jvv mlc
+nst: qcc lgc xrf sqb dch
+mgp: vql fxq
+jrk: lbt
+gns: pgr txb vqk llc
+hph: svk
+hlm: mrb fnq
+bsn: blc lmn lmx xch
+txz: sqm
+hfj: rnb zsb knc
+rsf: rct zhq
+hpz: nrr nvd thf
+vzm: jsp
+sjl: gjq glj
+xkq: ckp fls
+lcl: vrh zrj dhh pmr
+flm: bmg xrr
+zpt: hcv
+rtl: jhv lqf
+fpk: nlh vrs
+mjm: bvb zjm
+bsx: dlg hvp smf cdt
+lzv: hlv fvt
+mmj: blj lvz xtd qbm
+lqd: vlz
+qvs: rqm
+ght: zvq ltp
+ggg: txz
+lnb: qsl
+ffj: ftn pcr cdt
+pzd: bgq jlh qst qlx
+prn: tnc nbm lfb sxl
+jnm: tqm ghs
+rkl: rnt
+tzc: dch
+dhr: mkd ghg hxn
+ssd: mql xhr ltp mqr xqh
+bjj: clb nhc jdg fpn lqd
+tjl: ghd lzf rbp
+cgt: lsg
+vsk: cbt shq
+bcv: bfp fqh
+bcn: hzr rkx vjj pqp
+csb: hvt djq pqt
+zbc: qpb
+lpq: hsg pqq lmh
+csr: hgl jgk dnm
+pcs: gqn vlf kzk jqr
+bhj: hqd ggg nsz xnl frq
+xjm: xqd vtc glc
+sdm: grh xvm
+zlv: fhp jsz
+hvp: xvv rrs
+hzr: gkd ffm
+cbf: jfc
+fxm: xfj pzh grf rzg
+mns: nmf gfj nlh rjg
+mvz: kvc lpd lxl
+vjl: kql pxr txz drp jxq
+pcp: zgm qbm cfz
+rcz: gbt lqf
+rlp: jhs cgv bgx zlp cpd
+gkc: jcm
+qvt: cfm dpx pnh
+kqj: xfv xzd
+clc: bpk
+bvn: dtg
+ffr: gms ksr rvh
+flt: kjk ftt cmh
+vlp: bkg zlp ffh ndz ftk tqm
+xbl: jfz xng hpb vdr mlq
+dvd: dkb svv
+xdk: spm lrv trh
+qlj: pmm lzv
+cfm: lpm
+lgd: xfq klm
+zdp: tts nqb gjp zjs
+blc: szs csx
+jdg: smr
+fph: vjm rkq cft tlf ffb
+nhc: fpx xvt qjq
+lbg: fcv hqs vtq
+rxb: dbc qtg gqn vgz
+sjs: qlg
+fdl: gnk nlh zcx ppx
+rqm: vhd dmj
+vvd: dmp vkp lbk vtr
+bjp: dcl sgc pdl tmq
+shl: lbt rtc rrm
+ctx: tzf
+bxm: tlf
+dsg: hjx rtd
+zgm: zrv xzj qbk jns kvr
+sjk: zpm bft
+bpk: rdh pdl rph
+pmj: nxl qzn
+bcx: tzc jns
+snp: ppx jxc bpg zsl
+xkm: mgl glq trk rqk
+nnx: gjp mml lnb tqk
+grf: mvj zlm ttz qzh
+gph: pzh lnb
+hlc: xms
+xgn: fvz xfq zdn
+tcm: znz mlr
+pzk: pxl
+zqm: vmq zzl sgg gvp
+drn: bkd kmx rvh
+lsh: hkj sjs jxs
+dfm: dpl jls klx sml
+qmq: rph
+dvb: tbv skj szc jcj
+dhh: qkj stv
+hzl: fgl gsc lgd
+lvq: rkl xrr nxv
+pjr: gvv fnq pzk
+tzv: djm xxl qdm qcl
+vzh: dtd rjt dlx
+bhg: glm
+gsg: fxv fxx
+bxn: qld xfq lcc
+jtx: xnf
+fmk: bjr tth fvt vrj
+vlm: dhl
+xvk: gvv xch
+pxv: zcv lvq ptk
+xvz: dsl blc flm spq
+fll: qbj vzm
+gbs: rxv jvr
+flc: rgf jrk lnq
+zqh: bpv plm sjp htb
+kvf: txl lhp ztr
+dlm: jfz jhs jgb gsg
+ckr: mbc msp bsx nqc
+lfb: gjk sst
+sxk: vrj zmn
+nbd: klx
+rjr: trg fdh cgv
+mlb: lnq bcn vnz qsl
+bmp: gdq zqf
+mlc: djb cdh mjp
+mrr: dcz gkd ssr bnn dbc zbc
+jsj: cdx plj
+qrh: grl nbd vmx sjr
+dxn: bgq
+txl: xpm hnd
+jvd: jzm
+bhk: rcs xvm jsz
+xbv: xtr lxl
+npz: nss dsn nml pql
+chs: gxf gmv
+dmv: ffm bdh
+qsl: ppn
+cfx: vcb qpd spk tzf
+ksp: tvm bbt hkj
+lfc: bxd npm fsk cjl
+rjj: hmq gkh xrk mvs cft
+qcm: zxp zzz dgh
+nmv: xch
+ztq: sxp sfk
+ttj: jlz trr
+xrk: gbl
+vjv: nnt qsh lxm bfv
+bgj: ssb mrn lzf
+qfn: cbv jzm
+dpg: zhq
+ckd: jcm fvt mkg
+bdl: hsc xqz mtn btp vtz xzj
+qzh: bxd pgr
+cmg: stz
+qtx: vnz bsr hld shz vjj
+nsz: vjf vlp
+hmz: qsv cpf jlz lmg
+hjk: lgg
+trk: gpq jkd gnk
+nbz: xng czr
+rnb: mmq lbq
+hnd: shq hld kbt
+rzd: vjs svk xtz
+fhr: qkq nkj gfb kzq
+vvv: svt bhg vrb
+vck: vzm ddz jlt
+chd: xgz gjd ljs brl
+dts: hhs qtg jrk
+hbp: ldc xvk rcz
+hmr: nbd jzm
+zls: dpm ztr bgt nmp rcj mtg
+nbm: bfp zpt
+hdl: xxf ctb rcx hlc
+fhv: qjv
+nkt: rtq bmg
+jsn: lpd
+qdc: rpz bqc ngp pfh
+xkr: flp rnq rpl cdx
+tfd: ghs lpl
+zbt: qvn fgl qgs sbn vlz
+gcz: pxc
+rqj: kld
+qld: vrv
+qvx: bpg hld
+grl: bcv kxd hcf cqd
+gkt: rmd cmm slv hnt mcv
+pjh: sjl hqs kvf rzl lgs
+pzh: kcs
+bsp: ccf stx ldc gsg
+bqc: xxc tcm
+xds: fvz bxt
+kzh: vvd srh xzd
+gqs: smr cnv jjv kpg dsh
+cll: rmd ssz clp lfc
+qcn: sqb qhl
+cgb: xpc zvh frq dsl jrg kzj
+srm: mmn nzk bhs msv lpf
+xrg: brr vgj tzx lxl
+pxt: ltq bfv mrb
+jpj: bcb
+pbf: tbm
+zzr: lvz vdk
+vtv: mqb dgh cvl fjd mvz
+fgq: vlz ncc rvh ncp
+ffb: ssb ffv
+dtd: mlq hmp
+fjl: qpb vqn zkj
+lmn: dlg
+slg: pqg rgx qff gjx vbl
+mkf: bdg zvh
+rgk: lhp nnx flp rpz
+bpg: rph
+ctb: fqh csh
+jhj: xgn nqb plm qjd
+cns: mql
+pqq: sjk clc qmq ffv gdf
+mbp: njj nkl cdt fpq sxk slm
+svv: nnr
+cmm: xnk
+kfp: lbc pjs ztr
+zzq: pjp zgk
+gjx: kxd jvz jgb dst dgn
+mlf: bgq rgc xrf
+vrb: jkz qbj
+rlq: llk tpp
+spm: fnq qhl dkb
+fbt: bbr pvh mrc mct
+lrt: pxl lbq qlj
+qmc: zkj tbh
+qbb: nhh lsg
+mjp: cbv dch
+dsl: kzj dbg
+hgv: ggg khn
+qgz: zzx gns phv
+xgp: cpj tcp sxk jsx cpd
+bbl: jpj kbt mct
+mrj: nhh
+jsc: lbk hnf lfb xxf
+jgb: bph hlv
+ncc: qrk ppn
+cqv: tsg llr pxt skj vrj
+drc: jvg klc
+cnv: fsk
+gnl: jsn pjr
+pmm: jkz nfg
+ffv: vjj
+vbv: ghp pjr fns ckm
+pgj: nmf
+qqc: gls
+cxz: dpx xtr lkc hvt
+xms: pgb
+pjp: bgq lmx
+tsp: lrt djq
+dsn: pbf bdz kzk zkj
+tpf: rtq xsf dpl
+ltz: lkc
+bcq: fls vsr spx
+xlf: pgb dgh
+zql: ndl zqn
+zbm: nbd zmn nbz slm
+dbq: cvz jxp fbg
+pqt: ghg
+kmb: vbl cdt flt btp
+dtk: cxm gnn sjs lsq jxs
+vzc: ljm pkm
+kkm: bfh xsp ghs scf
+nhl: dpb kgl rxv
+vlv: vxc vsk zvq
+xfz: szx gqn nlh mjl
+bhc: kcs
+npr: czd tpv nxz
+qlx: rtq
+jsz: nkc
+mmq: kcj
+fxv: zbg nkt
+dvz: vbj nqt ddd mkd
+kpz: mjh mvs
+bkn: cbf
+xtc: qpd
+vgz: ffm hjk
+ftk: spq
+bfm: dxm lvd jvq
+dmp: fvt
+jjt: rtm bxm mzf ctx
+qgq: ctx lcr
+qpd: sbc
+tml: fql nrj gtf
+nxm: nnv lbq mjp
+jpt: trh fhk blj zxq ddz ftf slr ncd
+fjd: vvl hnf
+gkz: zbz bkn vhq pxk
+sqm: cvz
+vpn: jsn lpd qzn tzc
+mrb: nsz
+dbg: rsf dmp
+tqp: pnh cjb hmr mzm
+pqp: zzl rmf
+fpq: xvv
+hsc: gkc cpf xxb lvz
+fpx: bgt mtz
+tkt: vfk
+pfh: rxv
+lpd: llm
+zvq: jfc nsv vhd
+qlg: bgt
+crg: rzx txc jsj klb fgl
+bpv: zfl htn xhr
+src: nlc qsv bbj
+gfz: rqj tfd ccn qcn rtl
+csh: vrb dtd
+rxr: xms
+llk: clb
+pdq: kps mtt tlf
+lst: glj vsk mrn tkf
+xft: frr tzm
+pzp: bdh xjj cmm ssv
+btm: kld
+msp: bcx nfg xsf
+mtf: zzx qvn qdm trk
+bkh: dkb cxf vlm ktv jzv
+bdh: kgl vhq
+gzc: jhs csx
+nnk: fnb qpd
+bxk: gxd dbc fpn
+gfs: vhq
+dxb: qbt ngp
+ntv: tnc mzm tsn vjq fbv
+smd: dqb knh mzp zmd
+bch: gvp qkq
+xpx: fls bfp
+skj: nkl kbs
+hhc: zcv dst dcg krg
+tlz: vqc
+gdq: qbm rjk
+vkp: nbd smf
+nxq: ctx qcl dtj ztt
+vfr: grh bkd pdm bcb nlh hnt
+ccn: phg
+lxd: rvn cdf rqj qmb
+xnf: rmr qjd
+cgm: pxg
+lfv: rdh vtq
+mgs: nlg
+gld: csr gpq scl vlv gnk
+htm: zvl
+xht: hvt vzh jsc rrh
+hfg: dmj dsh
+kpl: mmf dtg psd
+hvx: nhz msd flc ztt
+zzl: spk
+stx: nbs
+bqb: dds
+lrd: khr rgf vhq hmq
+kdr: spq ptk kqj
+zsr: fgr fqx pbd
+hnj: stx jbp cvz
+mnf: ljm
+gzb: xhf
+vkf: xhf
+tjt: mrc hfg gvp
+msm: jlh
+pxg: xtz
+blm: gxf tpv
+mrh: mlr ctx
+fpf: xfj qlq zkj dcl rmf
+ldc: lsr
+vdr: fnq bdg
+phg: szs xsf
+mmf: zbc rgn
+rtc: qbt dmj
+dxj: jls jcj
+jck: vdl tvm clc zsl
+kbk: zfl nkj glq xnq gph
+shz: dsh tbm hqv bch
+dnm: shq mrc
+mzp: gjh dlg
+gpz: smr zzl sfm ffr lfc
+hxq: bsm hqv rgl gqk
+gkh: xnx lzj qlg
+tsn: bmp rpg mtv
+vrh: bfm jdr pmr lnq
+tvc: lsg
+hks: ltz zlp mfg
+tlf: qbt
+gcd: mgl
+hqt: bcq dvd txq vjr
+drg: jsp
+bkd: hsg htn
+jtd: hph grn ddd
+rgx: nnr slh cjb skk
+lmg: dxn nnt zsb
+qlq: mfn
+zxp: rnb kbs
+bhs: tts gcd
+vbr: hpg tkt dvr lpm
+cfk: tvm xnf zxn sbc
+tbr: bqb lcc nxz
+bvb: pgb
+xcx: vxl nst mkf
+rpg: qhl rct
+chz: csx ndl fjd stx jfp
+pzm: mlq ctb
+rcq: qpr
+bvq: cmg rgl mcq qgq
+jhv: tfd xmz lbq bhg
+shp: knb gjh jcr
+cdx: lfl frt
+hzf: jfz bcv mjv
+hgl: khr jsh qsl pnc
+rmc: rhq lgg btv nss
+png: gmj pmr dsh lhq qqz
+gtl: jcr vkp lvq fxx
+rzg: cjl ssv
+npp: lpr frt vgz bjk
+zcz: nfg qhr knb sqm dhj
+kzx: vsk mrz lgb bvn
+qbx: nkv vdk jlt
+qff: ftn jfz
+zqb: jsp zrh cfm jqd
+sst: bps xlj
+mzm: bph
+gnv: nnk lfl fpx
+pnx: zlv rtm vkf tmm
+ssc: dvd mtv mgp lpd
+jgs: ncv klc vhq
+djl: bft cfx
+vjq: dpj gzc brv
+cjz: bfv dgn
+hkx: ftk
+gls: vjs zqn ftl
+fdh: jns qph mxt
+scf: drp mtv zvl
+spx: kxd bdg gjh
+fvg: qgd
+crr: bnn ght clc nbp
+hpm: grn bmg
+qbk: dkb
+qjb: kxp
+ltr: lpm szs
+xgd: gkc xrr vjs
+kps: dbs
+hhh: vmq mlr
+tpl: xvt lvd
+gvk: dmv bxm qgz plb
+bgx: cxf xdv fhj dtn
+djq: bmt fbg
+zxn: mjl
+rbp: rcs tqj
+psf: khn mqb qcc xgx
+lpg: hpb hgc fqg tgz
+slv: rdh dtg vcb
+dnf: tks vtz
+gkb: rlq ncp
+qvq: kmx lqd gkh fnb
+qmb: gjh rzm
+rpl: lfl
+cvh: bxm xtc zhb
+hmv: drg cdf
+ljs: nxp pqd qcn
+xnl: cgt hcv
+kgn: vqq zzl rzx pps nlh
+ktv: nqt fxv sgn
+nvx: ddx hlg ssc xlk xfd
+rlm: lxs llc
+rrs: kzj
+jlz: tqm dpg lgc
+fzg: njj szc vnv ktn ftn
+tdx: hph bfh
+zzz: lzv jgb zzr vjf
+vvl: nxp mlf kvs
+brv: hcv nlc xmz cmh
+jnd: qff zgz rgx cfd
+cxb: llz
+cnk: gdf zsl lzj qgs
+ncp: rkh kxp
+jjv: lnq kxp
+znz: qkj
+tsc: mtn gnl qph hmr
+cdv: rsn rgx shp
+ndh: qjd lhp pmr llk xkd
+dzb: nmf
+sxl: czr xjm
+tmq: vjm
+jxq: pzm sxl xqd
+xng: pxl xsf grn
+jbb: jgk rxg mml gjp
+gnn: mnf snk
+lkc: dch
+ddq: ptt qzf vck hkx
+dmh: czx hmq
+jvg: mzh
+plj: cft
+qgs: sfm jtf
+fdz: rtq rpg vrb zgv cfz
+nqk: psd ssv
+njb: kjg qlq nml
+szk: slm lxm
+gkd: tzm rnq
+rgn: qgq
+lzk: jsn hgc dvr gnl
+tvl: zlp hvp chx
+tzt: hdk tpp ltb npz
+sjr: bzz kzj pcr
+vrm: llk smr zhk bxt nmp
+nqc: dkk trr gjk kzr hmv bps
+cpf: qqr xfv
+hpg: rnt
+rhq: cxm rcg cbf sjp
+rcs: rmk jqr
+zgz: nkt cdz
+rsh: rkh
+xlq: kql
+plb: xbr xtc kjq
+vxf: xbv bfv ckp lpl
+trh: srh glm
+zjt: tsp xxf zgz cdh rtl
+vcb: vmq
+qdm: dpb
+qkc: vzc lfv dds ttz
+hnt: vqn
+gsc: gbl mnf fvg
+rmk: ddk
+tgz: ldc jvd ftp
+gpq: rdn nkj
+gmb: jbp kcj vbj
+phr: gdf ljg nss npr zxl
+dcl: vlc
+qbt: rdn dpm
+fnb: rtd jkd
+ksr: cbf jjt dsg
+pnc: gqk xjj
+qxj: cgt kdt qbx rpt
+czd: hqs ghd
+gkf: xch mjp lsr
+vbb: cjz xgc vzm htm
+zbz: nml xxl jfc
+cfd: kxd rtq kcc
+ghp: qbb nls fll
+mnp: gxd rmk lnq
+bgl: tdx sxl fxv ttj
+xpn: xrg ngn xlf hfq kkg
+fhn: bps xsl dtd bsk cfz
+zsb: lpl
+nqs: jfb dtg nkj fhv
+hvt: rct nnv
+xsp: bzz
+zhk: pbf
+bft: vqn
+xqz: hmv lrf
+dvr: blj
+ndz: lkc dlg
+qst: lrv tvc
+xhs: ccn txq nls
+jcm: bvb
+xxc: vtl pzh
+zft: gjd lqf
+ndp: jfs zvl
+dtn: zlx vrx zck xdv
+ctt: qjb mns shz zhk
+nls: bfp
+rvs: zsl vrs bnf
+hsl: bhs jnt htr jtf vqk
+zcq: txz dxn
+spk: mtz
+mqr: pcx nmp
+llp: rxr qpr dpg
+kxc: npj bxd klc
+mbk: drc rjg grh
+ltq: rpt vdk
+btv: xpf xvm
+skk: ddx
+xcl: fsd zdq
+xxf: zzb
+brr: xdt mzm kpn
+hql: kxc pdm drc
+rgr: dbc jvr hhh
+jfj: hnj mgs
+krj: glc skj slm mkg
+dnl: spp dzb shl bxn
+mct: gmg kjg
+gps: ssb pdl ssz jnb
+vmv: dhl szk ptt
+rrh: xkq qlx jlz
+jnz: sjr vtc gdq vvl kvr
+gbx: vjr pqg rrn
+dkm: zdq tlz sjp
+fvv: tzm fsd stz tmm
+zkq: frr pps qbt ffv
+txd: skj sxl
+dkb: rnt
+bqk: vbs qjq jfb nxg ggr
+dnq: chx mhm ckp
+qng: lpq lxs zxl djl
+nml: jsz jqx
+rcx: msm
+lnm: qvt mlc rtk kvr jcm
+dxt: jvq rrd gdf jxc
+zkj: txb qcd nkc
+dpb: qtg
+lvd: cmm
+htk: rms rnx mhm kmd hxn
+vxl: jhs
+skv: dxt jsz pjs jtx rsh
+mxg: lct dcz rqk txl
+ffm: mjh nxn
+pps: kxp
+rjx: bnn hqs nqk
+xrn: ppn bxm bpg
+lxm: bmg thf
+jfz: gnh
+xtd: hcf qbj gvn mlq vms
+rjp: rcx rjk
+vmf: nkc thp fqb
+pvh: jfc
+bbt: kpg fgr
+grp: hkx
+mfn: tmm
+ngq: xxl cjl rcj
+cfv: ghd kcs rxb hhs
+jcq: zxl jsh zsr jdg
+txc: xxl gcd fgl fpk
+fcg: jsh zjb jnt
+pvq: ptk kcc gzc pqd
+xvn: lbt kpg rdh
+kgl: gdf
+rfj: xsf qqr
+xzd: zxq
+rsn: kpn pgb
+vxk: jjd nmp
+fcs: spx rgc bkg
+bsm: ncc rxg
+vhn: ngp drn gfs dtg
+dsq: jsh cfx gms frr
+ltb: spp zsl
+pph: lmx xsp fns dfl
+gln: xfd mrj bdg knb
+htx: vhd jnj lcc tzf
+lfl: qvs glj
+tqj: qmq xnx qjv rbd qld
+rnx: nvd hpm
+kct: qzn dcg zcp mdt
+cbx: stv rlq ssv kjq
+klc: bnf
+gvn: mhm
+ktf: rvs nzx xnq xnx gfb
+nqt: xzj dpx
+txp: svv bmt btm zmn
+mvm: bdc
+jfp: sxp zlp
+vlg: dsg zhk sgc tjt qjv
+txb: vjm vqk
+zjm: rfs drg pxl
+ckg: drg
+jrh: dxj rjt zft txd
+fcv: kjx
+znb: llm ktn bgq vrx kbs dns
+bxj: cfk lnb vcb zlm
+gvv: lpl bhg
+kvz: blm pbd kps
+nhh: jbp
+xfd: bnr
+dpl: mgs bnr fbg
+ktp: dxt tlz tzm dts hbm
+zlx: pjq msm pzk hlc
+bql: hxn dvz ccn szg
+dll: kps sjl rzh mdv
+rdt: bbj tlk qbj nvd
+pqr: kzr qqc dgn lmx svt
+mjl: klm
+knh: nxv zql ndp
+kvs: pjq gnh
+qzf: dhr nlc
+djb: cgt
+jxt: jpj vcb mdv
+sgq: kkg qbk nxp qqc
+dlc: xxb mjp knb
+qfr: fpk xnk lgb blm
+lhm: qjd jqr
+xhr: qgd
+ngr: qfn xgd qqc ckp
+xhf: kjx
+dtj: kpg zkh rlm jdr
+vqc: xpf
+jpl: tzc bkg tlk bph
+xkd: vkf qcl
+fgv: dpm rnq rmd
+vrs: bbr
+nxl: mkg
+htn: hjx
+btz: hks llp thf fll
+qkq: tbm
+zrh: ndz vfk grp
+vtl: vqc
+nnt: nhh nfg jnm
+jxs: sgc
+klb: pbd mgl
+fxs: drv szg mkf jxp cpj
+cpd: dmp bnr
+rjh: xvk ffh kvc rcq
+qnr: rqk qjq kkr tpl
+xjg: hsg tpt zdq gnb
+ddz: rkf
+drv: bkg ddz ftt
+pxr: brl pxc
+dzf: xqd thz nxv mhm bnr
+bxz: cft tzf bqb
+ztr: stv
+cjb: jlh dpg vzm svv
+mkn: pjr mkg cqd ttj
+pvc: ghd jjn mrc sjk nhz
+lhq: zhb jqx
+mmn: xrk tlf lzj
+cdf: xvv
+bjk: gxd gkb cvx
+pxk: qjv jrk khr
+rzx: hgx bkn
+jzv: mkd
+zgn: rgr ltp jsj xvm xmm
+rfs: szk bnl
+gmq: vgz nxg htr jfc jpj
+mcx: rcs pjs hzs hqs
+klr: gmb ftp clv rkl
+qlc: tjl ncv mqb rbp
+qlp: qcm hbp
+tkf: mvs snk jxc
+mtn: jvd
+jvq: bsr nxg
+sml: jnm nqm vjr
+dzx: zzx zhb pqp nnk frt qvx
+mlr: mgl
+vgd: rph zpm stp
+glc: trr
+txm: qpb vdh mcv lcc
+vbs: ssb ncv rkh
+qqq: pnx sts mzh rtm
+ppd: tqk mbk pgj kpg nhz
+nqb: jnb hrd pgr pjf bnn
+rgj: njb klq rrd vdh
+ljg: fgv pnc
+xtz: sgj
+sgd: blm qzh vdl ndh
+xgz: hpb szg dns htm gsg
+ngf: pnh hnj dnf rjk
+xrf: kjk
+bmt: nmv
+mxt: lqf hcf hgc vlm lcf
+pqg: slr
+hdk: kzk rmk fhp
+ckx: spp npj bqc ffb
+ggb: rpt gvn pxg kvc
+ttz: rmr fcv
+slh: rcq bnr lfb
+vzf: pvh rkx rcj rvh
+htf: phv dbc tmq npm
+zxl: qld
+ktn: nnr xnl mdt
+qph: sqb grp hpg
+hkj: bxm npj qkq
+nzm: hcf qpg jgb trr
+shb: lcf gvn jlh xlf xvk
+vmx: cfm dxj lmn pcp nkl
+kzr: mdt
+xxt: gfb xvm llc
+dpj: zqn rjp xhh
+nrs: rtd bnf
+rcl: xxc rbg lbg trq
+gtf: fqx nhl bcb bbl
+vsr: pqg mhm
+hxz: lgc hlc xzj
+rzm: cpj tqm
+qfq: lpr fcc pgj jgk
+frq: sst
+sxq: qbk grn
+zkh: hnt bch
+pbc: qdm mzf nxn
+rmd: kxp
+jmf: lzj pdq vxk kzx
+bnl: xst gbt xlj
+cjl: znz
+snk: mzf
+gcc: cpj mtn jcr rkb
+rvn: fvt vjs
+vnz: tmm pbd
+kpm: sgh mvs dmh tml
+zrs: mfn jjt pnn bjj
+svf: mrb rvn jts kld
+dfc: cgm jqd cgv gnh mxr
+pqd: mrj xdv
+vms: fpq xdt
+stl: nsv gcd mmf
+kmd: lfg phg sqb
+pbq: xbv czf gnl vdr
+xst: xgc lsr
+lfg: nrr bvb
+jvv: tks ckg pzk
+dgn: zqn
+cjd: srh bbj nlg
+rmr: pcx
+gbt: zqf nmv nbs
+czx: mrh plm
+kvm: vdl cmg gbv
+xnk: sgh
+psd: mml zlv
+llr: nxm xqz lsg lqq
+vqb: vql
+kkp: src jns rfs lqz
+clv: dhr csh trh kvl
+nqq: spx jlt cbz ffj
+tdp: rfj xcx zgk cqd zvh
+bts: cbf dxm jxs scl
+frz: ltz zft cdz vqb
+lmh: sjs nml mjh
+fvn: zzb nnr hlm dhj cgm
+dfl: jzv sxp jvd
+rkq: rvh jtx qgd gzb
+cfz: bnr
+szx: tpt msd gnb cvh
+sgn: jhs vdk jxp ndp
+xsf: trr
+szg: nxl rkl
+fjj: fhp rsh
+jtf: rtc
+str: gzv kgl bhs jvg
+fbv: glm rqj
+rtk: kvr cdt cgm
+cbm: snp qmc tbr qdm rcr
+vtc: llm
+lxq: pqg tsg vsr
+lgs: ckt lfc jnt nxn
+nxp: llm gvd
+kjx: gxd
+scl: xnb xxt
+rrx: ppn plj zlc vtl gqk
+xxb: cpf
+xqd: kpq
+dkk: pxc bfv
+pdx: sjp chs ddk rjx
+hsg: htn
+mxr: vmv mjv mdt
+htb: ffv bcb
+ftf: lbk hhd pqt klf
+zvl: jzv
+hqv: gnb
+dcg: cfm hmp
+fhk: gln ssx rxr xkq
+mmp: xfd dzf lgc vnv
+ltp: jhq
+pjq: tcd ftt
+dbn: htk qzf vtc czr
+tjm: dhd gvd xpx tcd cbz
+djv: mtt
+fqh: lsg svt
+gjd: lgc fls
+tzx: zgk ftp
+cgq: ckg xlj jns hfj
+ntf: tzx nlg rrs hxz
+mpz: ztq bps ltz lfb rcx
+nqm: qsh nfp vtr
+dxc: vtx jnm jgb ffh
+nmf: klm
+mbc: tsp lsr kzr pmj ldc
+srf: bgj hql lfv jhq cft hzr
+bfh: tsg
+cxf: jpl
+klx: vjr zcv
+lgb: jxt dzb
+nrc: txq kcj vpn zlx
+stp: lgg gbs pzh fvg
+hff: cdh szg plq sbq
+fhj: fnq thq ftp
+dmf: rcq xtr xhs
+hcv: zqn
+hhg: bsk
+zmd: dbg tvc jls ccf
+lct: vjm cjl tpp lgk
+sbn: qql tmq lzr
+dvf: tks brl
+ddx: hpz zvh
+brh: hlm rcz zck xkq
+nfp: kql cjd btc
+dbs: mzf
+smf: cvz zqf
+flp: rph qkj qpb klm
+cxm: pjf ngp
+qqz: mcv fjl qnr zsr
+sgg: jqx rxv
+fcm: cgv cfm zrv xlq
+czr: mmq
+vgj: lbk
+glq: dbs zfl
+pck: rkf mgp vlp lsg
+gmj: cnv gnb rmk
+qtg: hbm
+clp: gmg
+gbv: gmg
+rkb: dxn drp
+pmf: cns trk bxk gbs
+gzv: kjg mnf rbd
+zdq: grh
+svk: ckg zbg
+dlz: qmq ngp vhd mrz
+qcl: kkr
+dxv: dhh sbn
+jrm: vfb qkj hhs jkd sfm
+sxc: qlx vbb jzm lrv
+phl: ddd zxq llm tth
+fxf: kmx xft pkm bbt
+btp: zsb pnh
+dhl: rkf jgb
+xkz: sbc bgt rgf xds hhs vlc
+czf: zxq chx rrn sxq zxp
+jsh: mlr rmf
+ngz: xrf gkf rxr
+pkm: pbf
+tcd: ftt zmn
+tnc: gcz kvs gkc
+lbc: zjb mrn xff
+mtg: mfn
+llz: qmb jts zck
+rgf: tpt
+dvq: scl qpb ffv
+gfj: xnq pql lxs
+rpz: xnq vhd
+lqq: blj zqf fxq kkg vnv lmn xms
+kpq: ftt hfq dkb
+gvd: trr vjf
+dgx: pmj zsb qst
+qnh: fcg hzs pnx hsg
+lzr: hld bxk hkj
+cjv: jqr vmf dxv hld sdm
+zcx: bfm jjd jdg
+sfk: lmx ghg
+qzv: vxl mjm dqd xlq dbl
+vrv: plm
+bpq: rzg cvx hjx ttz
+tcp: knc
+szc: vtz qpr
+qdn: dkb vtg mkd cdh qzv
+ssz: qql qlg
+jcj: qbm slr ggg sxp
+nxz: bdc nhz
+xff: kmx gnv
+bxl: rkh xvt ptr
+mrn: czx pdm
+vxq: cmg kkr vgd kvz czx xhf qjb
+zcp: bph cdf
+gnb: nsv lgg
+lrp: rsh nhl stv zfl rpl
+plq: ftk nlg zql kld
+hhs: klc
+zrj: gms rdn dxb
+rph: nxn
+ptt: fvt pcr
+bsr: rgn btv
+mdv: mtt
+mql: jvr djv
+rvz: djb txd sqm dmf rsn szs vlm
+jts: dpx fbg
+khn: pxc cdz hpg nrs
+htr: mvm
+vqn: qjq gmv
+hlg: ssx dbq cxb
+vfb: vtq gqk
+vqq: bpv fcc
+xhh: cxb ngd ckf
+dfj: jkz shb vxl qsv
+ppr: jqd frq ckd ghs
+qsh: cbz zpt vqb
+ssr: czx tlz
+dvn: dds kfp bkn djl
+tpv: bbr
+zjs: xbr jcc qgd djv
+ccc: vlf dcl jxc ksp
+trg: lcf ftn rfj
+nrj: djm mrh ngq
+rbd: zzl gqn
+zsx: rlm bxm
+dhj: dvr tzc
+dlx: fxq nvd nbm
+skp: kcj xmz nnv tvc
+lvm: jfp mgs tpf rzm
+rpq: mzp nls xbl fpq nkt
+hrd: tbh ljm ztr
+fjb: dcz pgr mqr tsl pvh
+ptk: cxf
+jrg: fns rnt hgc ddd zsn
+pqc: rcx drp bxb xdt qhr
+tkv: ngn thz pzm ltq
+kdt: jqd ssx
+kbt: jqr
+rcj: kcs
+gnh: kbs
+klq: mzh rhq lgk plj
+vtg: xzd ndl
+kts: clp kxp tpp
+fqg: pcr gzc
+fkn: kdr kjk gbx phl
+xgx: vvv rkb txq vrj
+ggs: sgh qkq mdv
+vlc: rmr cvx
+ftl: zzz ltr zcv
+vlf: ssz qcd
+lsq: htr ztt fsd
+rjt: gls hmp
+vfk: fns
+jnb: nkc fqx
+ckt: nzx clb kjx
+jvz: cjd gdq bzz
+txq: cxb
+fsd: kkr
+cdh: zcq
+vbl: mtn zsb
+kcc: lqf mlf pqt
+vrx: pxg sgj
+pzc: djv cns qlq rdn
+rbg: qql zlc qjb phv rmf
+pql: tpl dds
+jcc: bhk kpz shq ddk
+mrz: jnt vrv
+xjj: zlm pbd npm
+xdb: rjp bsk jvv ntf
+lxs: ljm
+xfq: djm gfs
+ncv: kjq ggr pvh
+nmp: rtd
+kds: bxl kpl sgh hzl
+xfv: zqn
+dgh: vjs
+dqp: lgk tvm kvm spp
+rml: zhq chd fxq ckp
+jvr: ztt xbr
+ckf: zzq rrs vnv
+gjp: dcz
+vtx: hgv nvd nkv
+qqr: hpg ghg
+gfb: clb
+rcg: nxg kjg rgn
+jzt: hmv lvz vgj bxb
+tbf: gmv zdq mvm
+kbq: mtg qvx nqk xmm rzl
+fhf: kqj lgc qfn spx
+njd: ztq skk mfg vtz brj
+xnd: dnq pxv xdt lpd
+gnp: zrj rqk mjl bxd htb
+sqb: xmz
+rhj: mzh ghd bsm vxk pkm
+zdc: gnn vqn jxs dkm
+pcj: xcl klb jsh phv
+rjg: cbt
+gjg: bmt dxn ffh
+ccf: rct hxz zpt
+msv: lcc dnm llc
+bvp: fxv dhl thf tsp csx
+jfs: tkt xtz dhr
+tts: pjs
+rxm: vdl vfr lsh gzb nzx
+zbv: zlp vjf xfv pcr
+qzn: pjp
+brj: kdb qlp gcz jzm
+dpx: qcc
+xhg: npj fhv gjq dbs
+trq: lcr rgn fhv ght
+kmx: gbv
+rzh: tqk kbt rgf cbt
+kvl: qhr mrj tvl
+sts: lcr kjq chs bhc
+hhd: tlk ksm cmh
+thv: lhm dpb xjj
+jkz: rkf
+xpm: zrj djm ptr jgs stz
+sgj: tsg nlg
+jsx: cqd qhl
+kqn: vrs mjl bbr jjn
+cbt: stz
+msd: xfq djv kjx
+lhc: hjk ssr kgl rnq kjx
+hmq: hjx
+nxv: svt rsf
+glm: zbg
+lpf: dxb gvp rjg
+mqb: jxp ccf
+dbl: tcp kbs kzh
+hqd: hpg xng
+cvx: xvm
+kpn: hmp hxn
+vtr: djb zpt
diff --git a/2023/in/day25.ref b/2023/in/day25.ref
new file mode 100644
index 0000000..bbfda0b
--- /dev/null
+++ b/2023/in/day25.ref
@@ -0,0 +1,13 @@
+jqt: rhn xhk nvd
+rsh: frs pzl lsr
+xhk: hfx
+cmg: qnr nvd lhk bvb
+rhn: xhk bvb hfx
+bvb: xhk hfx
+pzl: lsr hfx nvd
+qnr: nvd
+ntq: jqt hfx bvb xhk
+nvd: lhk
+lsr: lhk
+rzs: qnr cmg lsr rsh
+frs: qnr lhk lsr