From 8f96f6169fdab8da207199e8a22666e88a20dc19 Mon Sep 17 00:00:00 2001 From: Nathan Ruiz Date: Fri, 16 Sep 2022 17:40:48 +0000 Subject: [PATCH] Write tests for parsing chunks across versions --- src/world/mod.rs | 160 ++++++++++++++++++++++++++++++++++++++++-- test/chunk_1.12.2.bin | Bin 0 -> 37744 bytes test/chunk_1.13.2.bin | Bin 0 -> 31847 bytes test/chunk_1.14.1.bin | Bin 0 -> 11382 bytes test/chunk_1.14.2.bin | Bin 0 -> 9290 bytes test/chunk_1.14.3.bin | Bin 0 -> 11360 bytes test/chunk_1.14.4.bin | Bin 0 -> 11356 bytes test/chunk_1.14.bin | Bin 0 -> 13963 bytes test/chunk_1.15.1.bin | Bin 0 -> 13991 bytes test/chunk_1.15.2.bin | Bin 0 -> 11396 bytes test/chunk_1.16.1.bin | Bin 0 -> 11730 bytes test/chunk_1.16.2.bin | Bin 0 -> 10376 bytes test/chunk_1.16.3.bin | Bin 0 -> 13096 bytes test/chunk_1.16.4.bin | Bin 0 -> 8263 bytes test/chunk_1.16.bin | Bin 0 -> 13111 bytes test/chunk_1.17.1.bin | Bin 0 -> 11750 bytes test/chunk_1.18.1.bin | Bin 0 -> 20442 bytes test/chunk_1.18.2.bin | Bin 0 -> 18762 bytes test/chunk_18w50a.bin | Bin 0 -> 12408 bytes test/chunk_19w02a.bin | Bin 0 -> 9284 bytes 20 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 test/chunk_1.12.2.bin create mode 100644 test/chunk_1.13.2.bin create mode 100644 test/chunk_1.14.1.bin create mode 100644 test/chunk_1.14.2.bin create mode 100644 test/chunk_1.14.3.bin create mode 100644 test/chunk_1.14.4.bin create mode 100644 test/chunk_1.14.bin create mode 100644 test/chunk_1.15.1.bin create mode 100644 test/chunk_1.15.2.bin create mode 100644 test/chunk_1.16.1.bin create mode 100644 test/chunk_1.16.2.bin create mode 100644 test/chunk_1.16.3.bin create mode 100644 test/chunk_1.16.4.bin create mode 100644 test/chunk_1.16.bin create mode 100644 test/chunk_1.17.1.bin create mode 100644 test/chunk_1.18.1.bin create mode 100644 test/chunk_1.18.2.bin create mode 100644 test/chunk_18w50a.bin create mode 100644 test/chunk_19w02a.bin diff --git a/src/world/mod.rs b/src/world/mod.rs index 908187a..4330869 100644 --- a/src/world/mod.rs +++ b/src/world/mod.rs @@ -1039,6 +1039,10 @@ impl World { let chunk = self.chunks.get_mut(&cpos).unwrap(); for i1 in 0..num_sections as i32 { + if mask & (1 << i1) == 0 { + continue; + } + let i: i32 = (i1 as i32) + (self.min_y >> 4); if self.protocol_version >= 451 { @@ -1412,6 +1416,7 @@ impl Section { /// The kind of palette we are reading. This can affect how we interpret bits /// per entry which is different between block states and biomes. +#[derive(PartialEq)] enum PaletteKind { BlockStates, Biomes, @@ -1435,6 +1440,10 @@ struct PaletteParser<'a> { impl PaletteParser<'_> { pub fn new(protocol_version: i32, kind: PaletteKind, data: &mut Cursor>) -> PaletteParser<'_> { + if protocol_version < 757 && kind == PaletteKind::Biomes { + panic!("Protocol {} doesn't support biome palettes", protocol_version); + } + PaletteParser { protocol_version, kind, @@ -1460,8 +1469,12 @@ impl PaletteParser<'_> { pub fn parse(mut self) -> Result { let mut bits_per_entry = self.data.read_u8()?; + // Pre 1.18, when bits_per_entry == 0, it indicates we should use + // an indirect palette rather than the new single valued one. We are + // setting this to 4 since it's the minimum value for indirect + // palettes. if self.protocol_version < 757 && bits_per_entry == 0 { - bits_per_entry = 13; + bits_per_entry = 4; } // Figure out how we should interpret the palette based on bits_per_entry. @@ -1471,13 +1484,13 @@ impl PaletteParser<'_> { n if (1..9).contains(&n) => self.parse_indirect_palette(n.max(4))?, n if (9..17).contains(&n) => PaletteFormat::Direct(n), // https://wiki.vg/Chunk_Format#Data_structure "This increase can go up to 16 bits per block"... - n => panic!("PaletteParser::parse: block state bits_per_entry={:?} > 16", n), + n => panic!("PaletteParser::parse: block state bits_per_entry={} > 16", n), }, PaletteKind::Biomes => match bits_per_entry { 0 => self.parse_single_valued_palette()?, n if (1..4).contains(&n) => self.parse_indirect_palette(n)?, n if (4..17).contains(&n) => PaletteFormat::Direct(n), - n => panic!("PaletteParser::parse: biome bits_per_entry={:?} > 16", n), + n => panic!("PaletteParser::parse: biome bits_per_entry={} > 16", n), }, }) } @@ -1517,7 +1530,7 @@ impl SectionParser<'_> { section.dirty = true; let bits = LenPrefixed::::read_from(self.data)?.data; - let padded = self.protocol_version >= 736; + let padded = self.protocol_version >= 735; match self.palette { PaletteFormat::SingleValued(id) => { @@ -1547,4 +1560,143 @@ impl SectionParser<'_> { Ok(section) } +} + + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parse_chunk_1_12_2() { + let mut world = World::new(340); + let chunk_data = std::fs::read("test/chunk_1.12.2.bin").unwrap(); + world.load_chunk19_to_117(true, 7, 8, true, 63, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_13_2() { + let mut world = World::new(404); + let chunk_data = std::fs::read("test/chunk_1.13.2.bin").unwrap(); + world.load_chunk19_to_117(true, -20, -7, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_18w50a() { + let mut world = World::new(451); + let chunk_data = std::fs::read("test/chunk_18w50a.bin").unwrap(); + world.load_chunk19_to_117(true, -25, -18, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_19w02a() { + let mut world = World::new(452); + let chunk_data = std::fs::read("test/chunk_19w02a.bin").unwrap(); + world.load_chunk19_to_117(true, -10, -26, true, 15, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_14() { + let mut world = World::new(477); + let chunk_data = std::fs::read("test/chunk_1.14.bin").unwrap(); + world.load_chunk19_to_117(true, -14, 0, true, 63, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_14_1() { + let mut world = World::new(480); + let chunk_data = std::fs::read("test/chunk_1.14.1.bin").unwrap(); + world.load_chunk19_to_117(true, 2, -25, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_14_2() { + let mut world = World::new(485); + let chunk_data = std::fs::read("test/chunk_1.14.2.bin").unwrap(); + world.load_chunk19_to_117(true, 1, 5, true, 15, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_14_3() { + let mut world = World::new(490); + let chunk_data = std::fs::read("test/chunk_1.14.3.bin").unwrap(); + world.load_chunk19_to_117(true, -9, -25, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_14_4() { + let mut world = World::new(498); + let chunk_data = std::fs::read("test/chunk_1.14.4.bin").unwrap(); + world.load_chunk19_to_117(true, 2, -14, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_15_1() { + let mut world = World::new(575); + let chunk_data = std::fs::read("test/chunk_1.15.1.bin").unwrap(); + world.load_chunk19_to_117(false, -10, -10, true, 63, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_15_2() { + let mut world = World::new(578); + let chunk_data = std::fs::read("test/chunk_1.15.2.bin").unwrap(); + world.load_chunk19_to_117(false, -19, -18, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_16() { + let mut world = World::new(735); + let chunk_data = std::fs::read("test/chunk_1.16.bin").unwrap(); + world.load_chunk19_to_117(false, 2, -26, true, 63, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_16_1() { + let mut world = World::new(736); + let chunk_data = std::fs::read("test/chunk_1.16.1.bin").unwrap(); + world.load_chunk19_to_117(false, -6, -5, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_16_2() { + let mut world = World::new(751); + let chunk_data = std::fs::read("test/chunk_1.16.2.bin").unwrap(); + world.load_chunk19_to_117(false, -22, -20, true, 15, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_16_3() { + let mut world = World::new(753); + let chunk_data = std::fs::read("test/chunk_1.16.3.bin").unwrap(); + world.load_chunk19_to_117(false, 4, 2, true, 63, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_16_4() { + let mut world = World::new(754); + let chunk_data = std::fs::read("test/chunk_1.16.4.bin").unwrap(); + world.load_chunk19_to_117(false, -10, -8, true, 15, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_17_1() { + let mut world = World::new(756); + let chunk_data = std::fs::read("test/chunk_1.17.1.bin").unwrap(); + world.load_chunk19_to_117(false, -3, -25, true, 31, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_18_1() { + let mut world = World::new(757); + let chunk_data = std::fs::read("test/chunk_1.18.1.bin").unwrap(); + world.load_chunk19_to_117(false, -14, -5, true, 65535, 16, chunk_data).unwrap(); + } + + #[test] + fn parse_chunk_1_18_2() { + let mut world = World::new(758); + let chunk_data = std::fs::read("test/chunk_1.18.2.bin").unwrap(); + world.load_chunk19_to_117(false, -10, -8, true, 65535, 16, chunk_data).unwrap(); + } } \ No newline at end of file diff --git a/test/chunk_1.12.2.bin b/test/chunk_1.12.2.bin new file mode 100644 index 0000000000000000000000000000000000000000..8f5fe3abb5260cf78615319962bc93d4db759052 GIT binary patch literal 37744 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 ba_ozNg=F+kC--sA<_==srmD$(3p;-Tw)if& literal 0 HcmV?d00001 diff --git a/test/chunk_1.13.2.bin b/test/chunk_1.13.2.bin new file mode 100644 index 0000000000000000000000000000000000000000..bf97d856a961d0ec79c1ad5c2e55b376f0576934 GIT binary patch literal 31847 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 O|JQ5a?}7ird*I(Xc{LCK literal 0 HcmV?d00001 diff --git a/test/chunk_1.14.1.bin b/test/chunk_1.14.1.bin new file mode 100644 index 0000000000000000000000000000000000000000..1f24a5ff83d7ca39b44a6ea8a79ea6eef65d1d4b GIT binary patch literal 11382 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 QfSbRY9Ng@I|HD1-A8@CEjsO4v literal 0 HcmV?d00001 diff --git a/test/chunk_1.14.4.bin b/test/chunk_1.14.4.bin new file mode 100644 index 0000000000000000000000000000000000000000..8fdbc8a89110ea4d9a1b0b85267cbda89eeb0e16 GIT binary patch literal 11356 zcmeHMJ#QSz5uK$-N}>UqJ-b5^XTZR;P7-mD0jE`U} z-xt3hrH#es+kg7e@{?yPuRmGnoG!Tkx1?$6Vg}(|>eA*g9Pg6+Q|I=miGvGjse6cW z3s<+hj*^BhA$Dk{o~j@vEF2S(q7wXk9H(wQhMO2%>^J%{#)foiWqmh*CyZ2k4@hH- z?fR*YAI533>jO6sN$fsHH;nB+2X6^KMB+=vvJVAX zQYJYR5SJrKoGkw5=w$z!m}_)5#lzPX#Bfk}4}J9tyr>Px zPfG7g77*ZlIEkTvmG%3Iv`a_BC)6Mh0q-FUN=EGUUP=Qf0rYyFIDmSS_>k6WAU-S} z1R7S2Uy%I%Gw*-(kA2|VfM;*1m3FAqrG;0F@CzaMB>*A=2>e_cwcOVlryB%(BIJ9p z@BP`C_l$!`sqt;-^4Xb$>w$rPvl0X$c^QDD1t|TIfJg5_Z7PoO!>{I>1|9JZm*8$`a3kdO3sp(pVeUe|z0m#F77_Z?BewjMrV(KWPNPe~j zY5Zn+|8LsKH;Rl%NT8g8rXmkLG)0fQ8wEy3@rSNqhMQj1)atr^EQ4AGnLT+ZaNuICM#rP*JR+w*=f3=X zaQ^alW1X<>L@W+NJ`f^-76(t9@F+kbHWcM0#ag+Cbf<2u#LbO^Q+|o>W$O9(oBHq> zhS5s!r+D^C@B^nx1iIMr&sEFZ& zeM-|j4aZ#avDVcatI^_J90?Y-7gv_A_Jv^ViLmreV*Bb5U8_f?@4HMlf=pk8H_dPF z+n*?JdjhXD8EhN#_A`D%p3s8Wj#yjf9g=?2`PcTs7u7om$IX_z`raiHM_Cq1AaP9aBD_7$b1r^o6oz8~SXK;O zCk}SucWZl^2bph}DE3*IFi`TY`)*IM+aDvC)@ZhCt8#55!-M&$T1G6o1^yhTX7VdO6W-%az*Yxwfw%Q+B#ue`O`ZP+QEr?p950VAoF((x zDJd$6rvMg3uPgKZLJ`OJ0=x*PMgCsZ6@DW5*Q;)LnE*wUHQloKzsvOGB6f*bjXvla+|dDvji_QVTe6?OES~aw?B}q(02kY;*d&f>%l(s-X}7DRIikO%|i(!0r>+_ zXG?G-4w%Wm71BL{+*f>Q4?AJ!fcaLW+Cp zuKXjN^N~7UEuoc6@>_e%`NKE(Mu*6obp-3U#ClT&Rt4YeSe#g%ifH2q(|T^{yeV#u zOI|D&feCyr_YWsOyN@3>j$UsDf1sNq2^OE>d~pVTyzkZFzx6nzbQu%{OC4d z=c?NDDMrF?QK@df_);ak6%mHC1?DO6TdRoSWqk&lY6&=yU*=@m(94H2U|?6rZvl{q zuiw0ROJH1GZv^Zr-i# zoVlce7T~U8J(qvU4ik>p=D2}3?lj86Iyh{f=$0yW9ONR%7cXoa$ zIHS0;g9$*`ja`;84C}mDf4U>}Q!u@d>u`HF;)OQCTRt*AI@>@}nU_C=8TenkDlrVE zv~vP})DO4IgHvgP?+#{rFwP(CMz@76ijI#$<@T;BX2BhGSQ5M)Ed!Uz{}o{84lpS9B7E881f&6>_*6QpsWFl5zfJ;pZ?*s4bsxn8RIR zqU8uPMMTIr(##8W&A9SoG0b(x(RB{l4L-ues<{9 literal 0 HcmV?d00001 diff --git a/test/chunk_1.14.bin b/test/chunk_1.14.bin new file mode 100644 index 0000000000000000000000000000000000000000..d7127a3b9a46aeb704335f09b0cf5630c58908b4 GIT binary patch literal 13963 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 M21k3~|8Nid7v&}!1poj5 literal 0 HcmV?d00001 diff --git a/test/chunk_1.15.1.bin b/test/chunk_1.15.1.bin new file mode 100644 index 0000000000000000000000000000000000000000..c4c0e859179462562d34d3ab1f1df62238853497 GIT binary patch literal 13991 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 literal 0 HcmV?d00001 diff --git a/test/chunk_1.15.2.bin b/test/chunk_1.15.2.bin new file mode 100644 index 0000000000000000000000000000000000000000..cd6e66ca8ad03983b0d0c0282ae0bad832aef4c6 GIT binary patch literal 11396 zcmdT}Pi!1l8J}HN)+P?fv%B71%ogp8H?~W1$a++j-m+%xG)1ap5mOa$$U4c29FQ0% z(v+LMAZMjeDOiHER3J4%IYb;#RdI=mLPZsh+z>@bRXK2j9uX&g-@n#zHz)0pI-?0eHl@y{VNiW?8J)#{@KL@qJjPXv(Y`Sw3Z$y zia&i8-n7rG0p&#*1ki&rt4MY5Zp;csLBMttaQqMNlH2#6HT3VX{RAiF_bERL_!DJb z>(Per&MUvKyou0HtNKt9FP=%`IJyOE7-(gIDrevK4b^=RoKfC058si{hw8}SPy>ep z2^$W(TrphW2JjDu@SpvYzd-26GC6pUlktvF_|GW+(C~Jb1%glUUCuUCK?}?am*7H- z9QCz(xZ+p=gmQ&}+~Q}(Z@h+shcYqH0p8Zq@b)*AU;RVie1zc+=sp7ffNmq?Cfoqd z2J;c~2mS{0E3xSi8NOb3U())%%|Fk3YiVHfuM;)AO@ZL04iOV6FW<(TRNaB#ERfu@ z&oe0P(LpDS1#6~#`Daxgrs1jZvtr$9WRdyvukm8@Bf0qVBOGA7m={`xm~Xlqybh8` z^@ECRrM}<)o<#Q5k;QHG8xGZu7pW47Tr#Gd!laWsIkB>QA>aLHuCSS>XWjV1k3uxl z^O6eoaVn(@nm@)x?PwS*a=&uG;JSutj)kYiU#92rkxNB;RQT0{jLba5&;>DCAbpK9RP#W{^2RGjdzzh0gclO!uN`(_CcCHVp<1TH__CPl zREs1$(%y!aEEW7@hBv-j2Nz&S&5%(S3=O$g%?3kO7_tw2M5Up44>*6B+8^NfY3M#6 zM8Rrj{z?b@rbE$mNF<-5P$nztih!Gnw2TsARJHqee zY1B)`t5d8~ZG1CoKTtjBmEu7{whfWkGAn_?XrO8T%#rzPoIrVuuNDQWD|nvTVaxql zQ^bBH#2veD%VOKvbf|6f|LYDrW)v+t#&QsH{f6*jd*b{tnhrOsBYv=Dbi|pZGH%{1 z%!c(8_(REw0rjXxsJDgetau|RI=PAbg_Xj|!@UiZ1AmrM0cBGwC!T)d!M9AV;M=P1 zd-xhlZx3y9;O(L9cIfLiusglV!QJUKlGmopM=v7^O1%g-h&V_hbm!T zu-jjSQEuaOgfe;`5SkI4j2k-UdX%q3NPK=@_^Z2-;`(w``Z02E7e8j~Sw{TQJmMEU zpwtJrA$WOm5{Ta`To*RZ;6<~SL{<$q-hCv7TA8gH;}y!__H5Z^k?#t7kgFcaWxR&M zj~@#_NSBA^0b^1(pieVNfTH{WGp~?)ybjalwmD8tu`V)&!1$Mhztx2s)6!Z2R+Jw% z(bM5iNI^Ir%P;N`y4Sqi1F^=S}+XV)}np;^0KDXAc ztc0+G0Q_afYKSNf1)>6q5axqng;&qMJ&{k?! z?wkr^5Xe)Orhy8OE8r!Q_!(n%B*UN8Pg5z^yys^)9 z@iuUR-Ue1K6uS00pfc={YG{udLz9)6ElO@&h6%z$R1e9YnXTkEZ{sygk;+v|xoBOC zN{R1eT#nOx>)|r2QX|I8m)OR=5C16F?wVaaLfa0~{IZjv=d#`UtDMHu?>C0Kb06d} zKH84>c_tm=?UGH5i?;>O?dqk)69Hvyl_5skpbVvT-*b{5fyUeK%N@uzmK*+yLDMbQ z1Wj^hJym|rUG4L=T&17c_*)pw3-QyqZQ0xA09UFcuVbp=5C;B*!~(z%j3V%R^ldVv zzIuPz_~X@(*@q6r-%&A!YJ!CMWs>n-FUg;}7pTKQ6HjjpTnyC&7_Z@|MQb7hdU*bK zHK!c5{~GFTirroo2p)rb7Jc(fyf*6NSYN01>~t9CJ_Ap5H(tENF|VQd6QO%mZM!kF zZ3nSB?7ey=e8vM_er+^_ANH0+4*B;NuG^-g>kx0{bdhj7@UB3&2ZtqeND8-J*JO1` zW-GWVJ*xfnIf@iss_n@?y(R+iKTPfiUfB-PI^u_=>kfy^TOZ0Gs)~L5&xTo4d39YR zW4Gav@DHD)r-u`yo2~pHNDW*~yFIaG^G{|(FFb~zW!`l~`i-7-WcY3MWszc&1^=h! z!by@1BYqzLLHyh6KI_`<^Yy9s1@Ywq^M|(+*jt4UCp`SSpfHjD_cu)#s00rIq{ueGJkXHRC{Xc)VV)Soge(6&>Wb5YO8pz ziQpdaU>IBtQ88gMzzUDXcETUt~Y|=%A0nEvzeB9uV zLPM-ZX#VZG)QY|BI(>TE4f;IZuIFwQz3qCjNsfAtqnzBWM>vqbK?nK79}XVZd*o+5 zu^+y)-wDG)a-4S@ z2S%ME(x>`m_T->%U9sC*!#4Z(RHNcOmc1AE^F` zx4wV>)$8{^Qj_8C=1nJm>6p%cQYh*Z-?@I*xppTz|M~nYr$5Pr9%nP9e+TP-=jG4U Y{*%&AM*ii`$NCw&C{B!RIgSng11Zu+lmGw# literal 0 HcmV?d00001 diff --git a/test/chunk_1.16.1.bin b/test/chunk_1.16.1.bin new file mode 100644 index 0000000000000000000000000000000000000000..86c296f435c6f2fefde4471691784632819b9b92 GIT binary patch literal 11730 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 YbVhmaE$oX~Uv%J$4t&vp&wU5}2c(OWm;e9( literal 0 HcmV?d00001 diff --git a/test/chunk_1.16.2.bin b/test/chunk_1.16.2.bin new file mode 100644 index 0000000000000000000000000000000000000000..520c2cea3067c051afce4c695835c203cc1c6922 GIT binary patch literal 10376 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 literal 0 HcmV?d00001 diff --git a/test/chunk_1.16.3.bin b/test/chunk_1.16.3.bin new file mode 100644 index 0000000000000000000000000000000000000000..b615cc486f045577fd17bda92de9603f321bb4a8 GIT binary patch literal 13096 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 literal 0 HcmV?d00001 diff --git a/test/chunk_1.16.4.bin b/test/chunk_1.16.4.bin new file mode 100644 index 0000000000000000000000000000000000000000..d911a1254faa9feabaf52f7e898278f2c6fe87b0 GIT binary patch literal 8263 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 literal 0 HcmV?d00001 diff --git a/test/chunk_1.18.1.bin b/test/chunk_1.18.1.bin new file mode 100644 index 0000000000000000000000000000000000000000..1c46aa185f035613e64b384e9280c25657d3c879 GIT binary patch literal 20442 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 Bp)>#h literal 0 HcmV?d00001 diff --git a/test/chunk_1.18.2.bin b/test/chunk_1.18.2.bin new file mode 100644 index 0000000000000000000000000000000000000000..d60107958f6215d73f8ba870bf5575a6154dd789 GIT binary patch literal 18762 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 literal 0 HcmV?d00001 diff --git a/test/chunk_18w50a.bin b/test/chunk_18w50a.bin new file mode 100644 index 0000000000000000000000000000000000000000..096ea7f6126200a31e94d5429d6868058fe6a75d GIT binary patch literal 12408 zcmeHN-)|gO6`tL!%{qzb%OmIvDlu3F`R zG!Fx!NZWJ~7VJYys-lP&OO*w+RM9AE00pGbx{HwV1PJl~4?IOkh==?IeBU|uu6M_4 z$4*_T61}a@ckj99p6|P7eylpTkGz|E#PN4$vW+iH4aT|S_v17F*?%w7$akilO#jF2#lF3D0%g!|?$L}cDKhjo}L z7DHr!z6k5atMR1NtyJ}bU^E;rl>+SBi{h#eJ%}m=@PiaNbvsxlS-dLt5f%1FUd-vk z(Rc|VNfJrBv>#ERNWvocFNIMUow!iB%(*bEV3Kkxmx`rHL=~f`R4Nn@6IH9^gRrfU~m`Q`kCBYUsltq&4G6Y~; ziC&{SioUo=dm>sCj4V!`yb6L-E1XQCm6f-tI3!i*E1`g-`Tg z9rV(#Nd8kR!as>kkw1Vgvs%Kzl8Terafa{!TW3pxbBPrO-=V&V-fC&Eqq^<^Db zfQZK|+LP*!&PrSqP2RdC_2&g){o~0A;f*1PIT;J*PX>JXfKQUJX4lD`+PU4;hleuIcVFyEj>0>R4n6~T97;RWTH zFbI0(6&+lZB-k%I6%>ewdTUGb+Oe755|EF@u7ID{m}6OpjwY~(dp^}VI*i|rQ(+w5 z>Gu7ldtiBzQA9_^9W!BiW*Vda8jr1g@z)vP3nmqlAeBRm2_9hH27?hWcMp%pVLIv_W=vRoK{=qAE@T!Xz5+K?_l3bP* z7V+@QI0Axy+#qVfAgNG(Qe>*$U^z${h>8s7h z?B`=YCpPcr^KCz0MMNmJ>DMH>+-6+49WHWZxL8AEby4EF^Bv4Tjkx9fRM>*8g)QW( zd9XE?G&T3lWwGsi4RP)K)2EwFe<*(%b3=KJF!~NK4(|2(V%4YC>N9ceFyHh?U~Bo2 zDO&6UTA9h@BQLrhc$Gk{>icp%hq$lpDpOxQ2Yqg{*;akN(Wfe#2YT|wBa+W&{c5x| zH>J<;`q0OS8tWqZ+`jt2YY0SN_-E9wed4it+5gVPZ`C{cYVHqv;t*`~rS{vM&&x5j zCn}qMRS4vI!0m}XZ*RTK>sDu6Yfd7#hFn=gV0d@a-9BD(Au4RmHho-rRMF&{9Bec0 zHxsOjE_|@Q-Z`4Pq1t+u`KW14-))I#=ho|kroEyyd`0eYA7E`kJDzDf(#ZpM{;3`?>4->Q%-ZsyM_5Q)k0_8~f$;<$cf&Uv;VP z3M_e5AM9wphU?3Rrz!dtIfv(*`s&oj2MfMAM5sQz0~k#%*e-qP=k0*X!OMu!vNWQy zvtQ_wOy@M8TsKn}utS+zT(=&5h+Cw-mg<|&xABm{x{G*ux5ubYZ&^=O+Pa9oW8`Xz zHRXabw|SKMjvbw*6@6WCM~yz&FP9$+c-_|N!~KT`pEVn6@;%;~uhQ1=d*soMHCwg3 z+^pu7P3yy2Rc7>c)%mFKO1akQTYGPq{T|b@%08eH`<)pj*=SESJ~RLSJC?_2vtN7d3+$7Wx9MpW2$+PoJy$ zVAs{fT<~@GUss)Vr+(h(ThaokwfUZ167et^-IH%>jJ(jwxsl)hOE#u)T0f&NW)9tT zs(uJIWw6gjULFbra}DQAzANl=PAwiZU6|76NX>kdEu+?bfHtJph;45>{8&Re=JkY^s66;aBYr{ha4dX&Flu-WtTAt+hiq)J zU3QpW(F;b=A#XP_z-)iC58BEE!NK#I=mEB%^J)G=bEpG&Ekanq@>(Q6OF-n60*(^3 zZIR!Gr|{4`9N=G2JY+CfV4U4#ik~ai_!;={P580AhaW@XH}3V>=R4BY&u!p|jo)Jb zFvF{5z*P}hL=B%es|+S)xD~Lx7B^jE`8s9jDaYYN_zx%B;op=mFn8zLL!sdda|VUb zTn_Lq1fa&J4$Pj{h>vIO8!XLl#|uWEAo%CD$Zv~naU+!v;y3RKd_dMFc=)i?|3Gb{ ztU+LTEp8mCGggPZoZ+%)wr?*}Pnym6djfZEVBQN+6wK^g(yeF0`;YhjXcQfsF}I(^ zttWZ7NZj);gBbKlG8&B^oG}HM`J@H#rzya;FIQg1dzth}5RJP|Zpg`;*_|7Vvr{-Z z!V!nG0)Ni7-$JtlXDiZhnqm;A7}6}pJYMm<8O0gkv^X|5CW#!dAadA5cQ7=LC{!MN zG!&i=dWJWRMu#r%6v1TU;gdE=2BT>FvC)B`&@;SYir4BO?>^@0#yK-4vKjtTZNCgl zaU%S2oRGH^SNB__pJT=Wg`Wpk5k@?@LLEeEL_G_JNAT%abxd5~>Z&3$nO2HB{Ne$> z;WHQ~^v7%b60bXlAHlqvSP{9agclCMvf)+qnMic7lWw{{Bow}`{iesVu$!L_y&_#X z_s!|RB6v6F?^?@l$&-EJCJ;o0?YJjUP7ZrK8w})rz?{{yLD)9js>d_B))w;okS&es z-6>l#*UQ#vE$g2-A(Y0e7a!vn0>%B__lJK|EJvddKY=zvZ>4f~<}-F^;jN+25})9k9jm8ow;ScBk2~h>rNz864h- z4@dC^HRM6MtX_+{3gw@c9%C*eTGCvx~JS%A*Z@O~)o!yKsaD8l5E?=JYX!GEuK`P>0HB*7Ikc&@oj2n??Z|oX3asnq3L|`p`1w=eiY^$ z`&`m54(`x#G_Edj(1&QparV+?TJvtELEH3kbR`k&V{T9^zSrmZNwHPuKI8zyZ_NvD zy}XLJ@~T*T(U;|j!1C5Cg8jV?3ec*3n+uUtk~ICjNChi#uf@o}g7wq0T;{3h$oZZ;SJw`Z)%Qom8bMi8`G#~VwJIZoJcGN)0TrOfGbAZR~xzCj6ZHkN1yGPKJ_PG^}M4UFKT&9q)*UoCrV zZpIk_gyIdCkFYP+QH!xQT#r2F4l=@_b;Tkr`sd)wJVUE}z>o|E#6qyl?dDE16r64v z-LV5toJPd*^_ReM)Bg#hhhB1=!S_elCHwMq@(w)l6(&A%@wtZMJh3=`JC~6@=Ux|O z&Jp&VlV>l$e%v-B31GpCZjU|(`abu&4#V+lA7tu>} z$x2{@1IIa!zsH^D-H!&Y&uZ3ePu9mJ%9uUG%*E&4g1$ZHd-U0`UVTf}-Hi5dG@b2Ip;3_(##3$5}Uo-?MwAv zm$6zq1$}6u&$<-#`QGK;=CJ&pI>kOnpHmWj|1fc8rFmcM>q^wW+pEu!TZfT-S7z^u zvc7Y@>2Jz#b&R0>-uZ_e$*uD+iyOU*^i6hCZp(qxTyNxOqt7a!72vz`L4S`TW~09c zt>yeiYw7bL86iuS2in^gQw(CSfpf`2g1gQ(>AyAgFCJo);s83>BCo*dT((AIVy2#d1 z8t|5%z)xV^zrcnK8|ZJ~oO|y$j$_lbw1C9BZRX7Vn0xNrH!t&Y>*4ALOWE?14_9xj z9Ngd8|GoLgTDbXS#r;<#Ve3)^3|Lk#>{neF}DF5s-gqYk|zXT zCjp!>>v@p*=-dE)2_q|VBNVx%0L;MP0+I&AcqHKBKrJ(^!>V8*dbh(U@5&4*yl)Oe z=&=$c>Twh6v0HEpt-bxC|7W^4hwBL zL+FFjEQc&IG@C4jHgGZ1R^1oCkUbY{eD%EBpdOxu6Ttv%%WNwQ%wpK?t3E+<&%!Ax zDZh)|al%tXw8GYS42;C_c2+ zo^pD@KdD2_ld;{`sqiIUqM9Wkrh+I#gt)`mW)bcP9E#n_K|exx`Lme9ON9xV*{ln} zcy&YUuttK=MEEf$|2+A{jQ8d_Uu#P|i8o=gzb3(=qGXvh5igAj5bqR@b$5c&?-m@w zH;cATp>NtHypy_PP6E>@cIP6Fl{S-4m(q$|t78f``#67art`578FNXl!!HXi@xvl@ zOt26B5*p6u-Gtw$zV%EI<6ntxua9l;yb|%^0MUPW%s{mLl{M^@?e|whW+pF0`1?@F zPXrJ}ZY{0eTw0DdR&L%u_-%Rh$)XPezvo;n#|0;t=ML!dJn!^?HB1U14FwID89K4U z0R8qO#pX~E_k?qeo+|;k21Vq?wK*Z#iNY_K=VHGWe-A4llX_6clC6U!zQ}#&AAwr zPwRk#^+?ED4M-;v6MsVFr_?Q=ZaVozpw~JK&^R^9ao6cJ$F#g|X%o*Pbg2&X|3dV1 zrc-)h|7T_$=N?TnK^IAA>feTuWthcXvyTmTNBU@BPeK$1;TZb6u46_eZ4%Wy5C%j3A!+2}?c&NN(Ig~m+FH7SeA{=#LBnrHC zNC)~7|HzglWIe*qUqw*BTgyxApFH2oi%edg@PxHp)h*MzgWdB-@{cNqQACv)?|Jcz1rRZ!`$GySm}ogR^7mqX%d4 z<1g_+5aP=6`P%CJ7i(v0S3U_mLm}y^H1v0RV)iWo7nEuS3*U+o7h3X5HiRSjs>GL) z;^6CVxuF~w`^Pc=Y;es};rvr2UQpji>O8>}FL8}YovB{oX@tAStPk}Zg>4kl9vo@f zHy+as%XE|t1sm5Jsm?>SXnpIczKzh@a3kjqgFKo`Yp1^$uN_q0gQ zc{aiO)~#PBqxVfz<*zzWb)f1%)q(jP_-JW$Whq?w4wxTYS*s3I9jH1`b)f1%)q!`~ Vfu(<6)=@(BQ}v)a1OLM_@F%^ZekT9` literal 0 HcmV?d00001