From 997d3910d40cf2674274afe41ff2f8bd66b0410d Mon Sep 17 00:00:00 2001 From: Twan van Dongen Date: Wed, 5 Nov 2025 08:02:20 +0100 Subject: [PATCH] CSharpier appliedArjReader thrown exception for multi-part archives. Method4 (decodefastest) refactored to support Stream. --- src/SharpCompress/Common/Arj/ArjFilePart.cs | 11 +- src/SharpCompress/Common/Arj/ArjVolume.cs | 20 ++ .../Compressors/Arj/BitReader.cs | 60 ++++++ .../Compressors/Arj/DecodeFastest.cs | 99 --------- .../Compressors/Arj/LHDecoderStream.cs | 191 ++++++++++++++++++ src/SharpCompress/Readers/Arj/ArjReader.cs | 54 ++++- .../Readers/Arj/MultiVolumeArjReader.cs | 117 +++++++++++ .../Readers/Arj/SingleVolumeArjReader.cs | 31 +++ .../SharpCompress.Test/Arj/ArjReaderTests.cs | 39 ++++ .../TestArchives/Archives/Arj.store.split.a01 | Bin 0 -> 19400 bytes .../TestArchives/Archives/Arj.store.split.a02 | Bin 0 -> 19400 bytes .../TestArchives/Archives/Arj.store.split.a03 | Bin 0 -> 19400 bytes .../TestArchives/Archives/Arj.store.split.a04 | Bin 0 -> 19400 bytes .../TestArchives/Archives/Arj.store.split.a05 | Bin 0 -> 5014 bytes .../TestArchives/Archives/Arj.store.split.arj | Bin 0 -> 19400 bytes 15 files changed, 502 insertions(+), 120 deletions(-) create mode 100644 src/SharpCompress/Compressors/Arj/BitReader.cs delete mode 100644 src/SharpCompress/Compressors/Arj/DecodeFastest.cs create mode 100644 src/SharpCompress/Compressors/Arj/LHDecoderStream.cs create mode 100644 src/SharpCompress/Readers/Arj/MultiVolumeArjReader.cs create mode 100644 src/SharpCompress/Readers/Arj/SingleVolumeArjReader.cs create mode 100644 tests/TestArchives/Archives/Arj.store.split.a01 create mode 100644 tests/TestArchives/Archives/Arj.store.split.a02 create mode 100644 tests/TestArchives/Archives/Arj.store.split.a03 create mode 100644 tests/TestArchives/Archives/Arj.store.split.a04 create mode 100644 tests/TestArchives/Archives/Arj.store.split.a05 create mode 100644 tests/TestArchives/Archives/Arj.store.split.arj diff --git a/src/SharpCompress/Common/Arj/ArjFilePart.cs b/src/SharpCompress/Common/Arj/ArjFilePart.cs index 10fe24c6..3b8c95fd 100644 --- a/src/SharpCompress/Common/Arj/ArjFilePart.cs +++ b/src/SharpCompress/Common/Arj/ArjFilePart.cs @@ -39,16 +39,7 @@ namespace SharpCompress.Common.Arj ); break; case CompressionMethod.CompressedFastest: - byte[] compressedData = new byte[Header.CompressedSize]; - _stream.Position = Header.DataStartPosition; - _stream.Read(compressedData, 0, compressedData.Length); - - byte[] decompressedData = LHDecoder.DecodeFastest( - compressedData, - (int)Header.OriginalSize // ARJ can only handle files up to 2GB, so casting to int should not be an issue. - ); - - compressedStream = new MemoryStream(decompressedData); + compressedStream = new LHDecoderStream(_stream, (int)Header.OriginalSize); break; default: throw new NotSupportedException( diff --git a/src/SharpCompress/Common/Arj/ArjVolume.cs b/src/SharpCompress/Common/Arj/ArjVolume.cs index bf3ba109..872da93a 100644 --- a/src/SharpCompress/Common/Arj/ArjVolume.cs +++ b/src/SharpCompress/Common/Arj/ArjVolume.cs @@ -4,6 +4,8 @@ using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using SharpCompress.Common.Rar; +using SharpCompress.Common.Rar.Headers; using SharpCompress.Readers; namespace SharpCompress.Common.Arj @@ -12,5 +14,23 @@ namespace SharpCompress.Common.Arj { public ArjVolume(Stream stream, ReaderOptions readerOptions, int index = 0) : base(stream, readerOptions, index) { } + + public override bool IsFirstVolume + { + get { return true; } + } + + /// + /// ArjArchive is part of a multi-part archive. + /// + public override bool IsMultiVolume + { + get { return false; } + } + + internal IEnumerable GetVolumeFileParts() + { + return new List(); + } } } diff --git a/src/SharpCompress/Compressors/Arj/BitReader.cs b/src/SharpCompress/Compressors/Arj/BitReader.cs new file mode 100644 index 00000000..c747b0ca --- /dev/null +++ b/src/SharpCompress/Compressors/Arj/BitReader.cs @@ -0,0 +1,60 @@ +using System; +using System.IO; + +namespace SharpCompress.Compressors.Arj +{ + [CLSCompliant(true)] + public sealed class BitReader + { + private readonly Stream _stream; + private int _bitBuffer; + private int _bitsRemaining; + private bool _disposed; + + public BitReader(Stream input) + { + _stream = input ?? throw new ArgumentNullException(nameof(input)); + if (!input.CanRead) + throw new ArgumentException("Stream must be readable.", nameof(input)); + } + + public int ReadBits(int count) + { + if (_disposed) + throw new ObjectDisposedException(nameof(BitReader)); + + if (count <= 0 || count > 32) + throw new ArgumentOutOfRangeException( + nameof(count), + "Bit count must be between 1 and 32." + ); + + int result = 0; + for (int i = 0; i < count; i++) + { + if (_bitsRemaining == 0) + { + int nextByte = _stream.ReadByte(); + if (nextByte == -1) + throw new EndOfStreamException(); + + _bitBuffer = nextByte; + _bitsRemaining = 8; + } + + // hoogste bit eerst + result = (result << 1) | ((_bitBuffer >> 7) & 1); + _bitBuffer <<= 1; + _bitsRemaining--; + } + + return result; + } + + public void AlignToByte() + { + _bitsRemaining = 0; + _bitBuffer = 0; + } + } +} diff --git a/src/SharpCompress/Compressors/Arj/DecodeFastest.cs b/src/SharpCompress/Compressors/Arj/DecodeFastest.cs deleted file mode 100644 index f9f4ef44..00000000 --- a/src/SharpCompress/Compressors/Arj/DecodeFastest.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace SharpCompress.Compressors.Arj -{ - [CLSCompliant(true)] - public class BitReader - { - private readonly byte[] data; - private int bytePos = 0; - private int bitPos = 0; - - public BitReader(byte[] input) - { - data = input; - } - - public int ReadBits(int count) - { - int result = 0; - for (int i = 0; i < count; i++) - { - if (bytePos >= data.Length) - { - throw new EndOfStreamException(); - } - - int bit = (data[bytePos] >> (7 - bitPos)) & 1; - result = (result << 1) | bit; - - bitPos++; - if (bitPos == 8) - { - bitPos = 0; - bytePos++; - } - } - return result; - } - } - - [CLSCompliant(true)] - public static class LHDecoder - { - private const int THRESHOLD = 3; - - private static int DecodeVal(BitReader r, int from, int to) - { - int add = 0; - int bit = from; - - while (bit < to && r.ReadBits(1) == 1) - { - add |= 1 << bit; - bit++; - } - - int res = bit > 0 ? r.ReadBits(bit) : 0; - return res + add; - } - - public static byte[] DecodeFastest(byte[] data, int originalSize) - { - var res = new List(originalSize); - var r = new BitReader(data); - - while (res.Count < originalSize) - { - int len = DecodeVal(r, 0, 7); - if (len == 0) - { - byte nextChar = (byte)r.ReadBits(8); - res.Add(nextChar); - } - else - { - int repCount = len + THRESHOLD - 1; - int backPtr = DecodeVal(r, 9, 13); - - if (backPtr >= res.Count) - { - throw new InvalidDataException("invalid back_ptr"); - } - - int i = res.Count - 1 - backPtr; - for (int j = 0; j < repCount; j++) - { - res.Add(res[i]); - i++; - } - } - } - - return res.ToArray(); - } - } -} diff --git a/src/SharpCompress/Compressors/Arj/LHDecoderStream.cs b/src/SharpCompress/Compressors/Arj/LHDecoderStream.cs new file mode 100644 index 00000000..e17c0744 --- /dev/null +++ b/src/SharpCompress/Compressors/Arj/LHDecoderStream.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.IO; +using SharpCompress.IO; + +namespace SharpCompress.Compressors.Arj +{ + [CLSCompliant(true)] + public sealed class LHDecoderStream : Stream, IStreamStack + { +#if DEBUG_STREAMS + long IStreamStack.InstanceId { get; set; } +#endif + int IStreamStack.DefaultBufferSize { get; set; } + + Stream IStreamStack.BaseStream() => _stream; + + int IStreamStack.BufferSize + { + get => 0; + set { } + } + int IStreamStack.BufferPosition + { + get => 0; + set { } + } + + void IStreamStack.SetPosition(long position) { } + + private readonly BitReader _bitReader; + private readonly Stream _stream; + + // Buffer containing *all* bytes decoded so far. + private readonly List _buffer = new(); + + private long _readPosition; + private readonly int _originalSize; + private bool _finishedDecoding; + private bool _disposed; + + private const int THRESHOLD = 3; + + public LHDecoderStream(Stream compressedStream, int originalSize) + { + _stream = compressedStream ?? throw new ArgumentNullException(nameof(compressedStream)); + if (!compressedStream.CanRead) + throw new ArgumentException( + "compressedStream must be readable.", + nameof(compressedStream) + ); + + _bitReader = new BitReader(compressedStream); + _originalSize = originalSize; + _readPosition = 0; + _finishedDecoding = (originalSize == 0); + } + + public Stream BaseStream => _stream; + + public override bool CanRead => true; + public override bool CanSeek => false; + public override bool CanWrite => false; + + public override long Length => _originalSize; + + public override long Position + { + get => _readPosition; + set => throw new NotSupportedException(); + } + + /// + /// Decodes a single element (literal or back-reference) and appends it to _buffer. + /// Returns true if data was added, or false if all input has already been decoded. + /// + private bool DecodeNext() + { + if (_buffer.Count >= _originalSize) + { + _finishedDecoding = true; + return false; + } + + int len = DecodeVal(0, 7); + if (len == 0) + { + byte nextChar = (byte)_bitReader.ReadBits(8); + _buffer.Add(nextChar); + } + else + { + int repCount = len + THRESHOLD - 1; + int backPtr = DecodeVal(9, 13); + + if (backPtr >= _buffer.Count) + throw new InvalidDataException("Invalid back_ptr in LH stream"); + + int srcIndex = _buffer.Count - 1 - backPtr; + for (int j = 0; j < repCount && _buffer.Count < _originalSize; j++) + { + byte b = _buffer[srcIndex]; + _buffer.Add(b); + srcIndex++; + // srcIndex may grow; it's allowed (source region can overlap destination) + } + } + + if (_buffer.Count >= _originalSize) + { + _finishedDecoding = true; + } + + return true; + } + + private int DecodeVal(int from, int to) + { + int add = 0; + int bit = from; + + while (bit < to && _bitReader.ReadBits(1) == 1) + { + add |= 1 << bit; + bit++; + } + + int res = bit > 0 ? _bitReader.ReadBits(bit) : 0; + return res + add; + } + + /// + /// Reads decompressed bytes into buffer[offset..offset+count]. + /// The method decodes additional data on demand when needed. + /// + public override int Read(byte[] buffer, int offset, int count) + { + if (_disposed) + throw new ObjectDisposedException(nameof(LHDecoderStream)); + if (buffer == null) + throw new ArgumentNullException(nameof(buffer)); + if (offset < 0 || count < 0 || offset + count > buffer.Length) + throw new ArgumentOutOfRangeException("offset/count"); + + if (_readPosition >= _originalSize) + return 0; // EOF + + int totalRead = 0; + + while (totalRead < count && _readPosition < _originalSize) + { + if (_readPosition >= _buffer.Count) + { + bool had = DecodeNext(); + if (!had) + { + break; + } + } + + int available = _buffer.Count - (int)_readPosition; + if (available <= 0) + { + if (!_finishedDecoding) + { + continue; + } + break; + } + + int toCopy = Math.Min(available, count - totalRead); + _buffer.CopyTo((int)_readPosition, buffer, offset + totalRead, toCopy); + + _readPosition += toCopy; + totalRead += toCopy; + } + + return totalRead; + } + + public override void Flush() => throw new NotSupportedException(); + + public override long Seek(long offset, SeekOrigin origin) => + throw new NotSupportedException(); + + public override void SetLength(long value) => throw new NotSupportedException(); + + public override void Write(byte[] buffer, int offset, int count) => + throw new NotSupportedException(); + } +} diff --git a/src/SharpCompress/Readers/Arj/ArjReader.cs b/src/SharpCompress/Readers/Arj/ArjReader.cs index d5441e27..1cd240ca 100644 --- a/src/SharpCompress/Readers/Arj/ArjReader.cs +++ b/src/SharpCompress/Readers/Arj/ArjReader.cs @@ -1,23 +1,25 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using SharpCompress.Common; using SharpCompress.Common.Arj; using SharpCompress.Common.Arj.Headers; -using SharpCompress.Common.Zip; -using SharpCompress.Common.Zip.Headers; +using SharpCompress.Readers.Rar; namespace SharpCompress.Readers.Arj { - public class ArjReader : AbstractReader + public abstract class ArjReader : AbstractReader { - private ArjReader(Stream stream, ReaderOptions options) - : base(options, ArchiveType.Arj) => Volume = new ArjVolume(stream, options, 0); + internal ArjReader(ReaderOptions options) + : base(options, ArchiveType.Arj) { } - public override ArjVolume Volume { get; } + /// + /// Derived class must create or manage the Volume itself. + /// AbstractReader.Volume is get-only, so it cannot be set here. + /// + public override ArjVolume? Volume => _volume; + + private ArjVolume? _volume; /// /// Opens an ArjReader for Non-seeking usage with a single volume @@ -28,15 +30,42 @@ namespace SharpCompress.Readers.Arj public static ArjReader Open(Stream stream, ReaderOptions? options = null) { stream.NotNull(nameof(stream)); - return new ArjReader(stream, options ?? new ReaderOptions()); + return new SingleVolumeArjReader(stream, options ?? new ReaderOptions()); } + /// + /// Opens an ArjReader for Non-seeking usage with multiple volumes + /// + /// + /// + /// + public static ArjReader Open(IEnumerable streams, ReaderOptions? options = null) + { + streams.NotNull(nameof(streams)); + return new MultiVolumeArjReader(streams, options ?? new ReaderOptions()); + } + + protected abstract void ValidateArchive(ArjVolume archive); + protected override IEnumerable GetEntries(Stream stream) { - ArchiveEncoding encoding = new ArchiveEncoding(); + var encoding = new ArchiveEncoding(); var mainHeaderReader = new ArjMainHeader(encoding); var localHeaderReader = new ArjLocalHeader(encoding); + var mainHeader = mainHeaderReader.Read(stream); + if (mainHeader?.IsVolume == true) + { + throw new MultiVolumeExtractionException( + "Multi volumes are currently not supported" + ); + } + + if (_volume == null) + { + _volume = new ArjVolume(stream, Options, 0); + ValidateArchive(_volume); + } while (true) { @@ -47,5 +76,8 @@ namespace SharpCompress.Readers.Arj yield return new ArjEntry(new ArjFilePart((ArjLocalHeader)localHeader, stream)); } } + + protected virtual IEnumerable CreateFilePartEnumerableForCurrentEntry() => + Entry.Parts; } } diff --git a/src/SharpCompress/Readers/Arj/MultiVolumeArjReader.cs b/src/SharpCompress/Readers/Arj/MultiVolumeArjReader.cs new file mode 100644 index 00000000..547541ef --- /dev/null +++ b/src/SharpCompress/Readers/Arj/MultiVolumeArjReader.cs @@ -0,0 +1,117 @@ +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SharpCompress.Common; +using SharpCompress.Common.Arj; +using SharpCompress.Readers.Rar; + +namespace SharpCompress.Readers.Arj; + +internal class MultiVolumeArjReader : ArjReader +{ + private readonly IEnumerator streams; + private Stream tempStream; + + internal MultiVolumeArjReader(IEnumerable streams, ReaderOptions options) + : base(options) => this.streams = streams.GetEnumerator(); + + protected override void ValidateArchive(ArjVolume archive) { } + + protected override Stream RequestInitialStream() + { + if (streams.MoveNext()) + { + return streams.Current; + } + throw new MultiVolumeExtractionException( + "No stream provided when requested by MultiVolumeArjReader" + ); + } + + internal override bool NextEntryForCurrentStream() + { + if (!base.NextEntryForCurrentStream()) + { + // if we're got another stream to try to process then do so + return streams.MoveNext() && LoadStreamForReading(streams.Current); + } + return true; + } + + protected override IEnumerable CreateFilePartEnumerableForCurrentEntry() + { + var enumerator = new MultiVolumeStreamEnumerator(this, streams, tempStream); + tempStream = null; + return enumerator; + } + + private class MultiVolumeStreamEnumerator : IEnumerable, IEnumerator + { + private readonly MultiVolumeArjReader reader; + private readonly IEnumerator nextReadableStreams; + private Stream tempStream; + private bool isFirst = true; + + internal MultiVolumeStreamEnumerator( + MultiVolumeArjReader r, + IEnumerator nextReadableStreams, + Stream tempStream + ) + { + reader = r; + this.nextReadableStreams = nextReadableStreams; + this.tempStream = tempStream; + } + + public IEnumerator GetEnumerator() => this; + + IEnumerator IEnumerable.GetEnumerator() => this; + + public FilePart Current { get; private set; } + + public void Dispose() { } + + object IEnumerator.Current => Current; + + public bool MoveNext() + { + if (isFirst) + { + Current = reader.Entry.Parts.First(); + isFirst = false; //first stream already to go + return true; + } + + if (!reader.Entry.IsSplitAfter) + { + return false; + } + if (tempStream != null) + { + reader.LoadStreamForReading(tempStream); + tempStream = null; + } + else if (!nextReadableStreams.MoveNext()) + { + throw new MultiVolumeExtractionException( + "No stream provided when requested by MultiVolumeArjReader" + ); + } + else + { + reader.LoadStreamForReading(nextReadableStreams.Current); + } + + Current = reader.Entry.Parts.First(); + return true; + } + + public void Reset() { } + } +} diff --git a/src/SharpCompress/Readers/Arj/SingleVolumeArjReader.cs b/src/SharpCompress/Readers/Arj/SingleVolumeArjReader.cs new file mode 100644 index 00000000..54825712 --- /dev/null +++ b/src/SharpCompress/Readers/Arj/SingleVolumeArjReader.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using SharpCompress.Common; +using SharpCompress.Common.Arj; + +namespace SharpCompress.Readers.Arj +{ + internal class SingleVolumeArjReader : ArjReader + { + private readonly Stream _stream; + + internal SingleVolumeArjReader(Stream stream, ReaderOptions options) + : base(options) + { + stream.NotNull(nameof(stream)); + _stream = stream; + } + + protected override Stream RequestInitialStream() => _stream; + + protected override void ValidateArchive(ArjVolume archive) + { + if (archive.IsMultiVolume) + { + throw new MultiVolumeExtractionException( + "Streamed archive is a Multi-volume archive. Use a different ArjReader method to extract." + ); + } + } + } +} diff --git a/tests/SharpCompress.Test/Arj/ArjReaderTests.cs b/tests/SharpCompress.Test/Arj/ArjReaderTests.cs index ee9cecca..5295076c 100644 --- a/tests/SharpCompress.Test/Arj/ArjReaderTests.cs +++ b/tests/SharpCompress.Test/Arj/ArjReaderTests.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using SharpCompress.Common; using SharpCompress.Readers; +using SharpCompress.Readers.Arj; using Xunit; namespace SharpCompress.Test.Arj @@ -23,5 +24,43 @@ namespace SharpCompress.Test.Arj [Fact] public void Arj_Method4_Read() => Read("Arj.method4.arj"); + + [Fact] + public void Arj_Multi_Reader() + { + var exception = Assert.Throws(() => + DoArj_Multi_Reader( + [ + "Arj.store.split.arj", + "Arj.store.split.a01", + "Arj.store.split.a02", + "Arj.store.split.a03", + "Arj.store.split.a04", + "Arj.store.split.a05", + ] + ) + ); + } + + private void DoArj_Multi_Reader(string[] archives) + { + using ( + var reader = ArjReader.Open( + archives + .Select(s => Path.Combine(TEST_ARCHIVES_PATH, s)) + .Select(p => File.OpenRead(p)) + ) + ) + { + while (reader.MoveToNextEntry()) + { + reader.WriteEntryToDirectory( + SCRATCH_FILES_PATH, + new ExtractionOptions { ExtractFullPath = true, Overwrite = true } + ); + } + } + VerifyFiles(); + } } } diff --git a/tests/TestArchives/Archives/Arj.store.split.a01 b/tests/TestArchives/Archives/Arj.store.split.a01 new file mode 100644 index 0000000000000000000000000000000000000000..a27d4f009018690ceae79ece321b76a11a7f0ca4 GIT binary patch literal 19400 zcmYdzWzL|)&B!gnz~tySBRLv`88CojQI=kDNq$kPUU5NAW{F;+fguA!%*!2L7#I>> z*)ZsFGjhu?FgQ-1Ssr2Q&A!0Q$ zA|9QlFP=Iu#K$du^3;JL`sCrz?l;}O65XyM!C}pc4Be#y;oY@7#~B#GIyhSYmvD5N zHy>x|tmSF2P%3rl3Se|-_@z{$*>b5wm4Dl%Z%qeZI54o3@cd_N{Z_)(CD0+}<^X12 z1+!nD19Mm!)EL}A2DmxAb_R>Ef~C6z9Qe20`qqqW2y2%_hn$;3!!Lyr&X!9hoDIJ? zOV6}iDrNR~&C&X;gry1Ve)b1Aof{1_p*M0gzf&kUD0E*B`;+Cm0wQkR9J0 zD)OJ{xGM+9U&gl^EMiJo9GqW&2RTXS+hN91RpbAbwGt(~4Hb+^y#b7+EZv7*Gk4Z< zbl372U$P99;Gc4+GgRW@>+Z|mt(QvpoIwsb#unrDpV7PYbC*ENr4p~^S_y_yE|62~ z8-8(?ST)yjFqG)Eek+kg@**1~e88T6&5sm-%ntt<|1&zgjQIcmKge)UfcRW%PR&328bLJ0|Ud$eg+1H<{ymwt&I!}4A!4Zc_8}v zTMjWWFr-<^bssC?b8twrlqmfPp+0FJ>$d&V;J|S4M{ux1aBx6aaB!!Kipl@$-7l

Y!T+zf9w_DeU!o%L;>h>^|06qNR0O(X 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

Vz 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 literal 0 HcmV?d00001 diff --git a/tests/TestArchives/Archives/Arj.store.split.a02 b/tests/TestArchives/Archives/Arj.store.split.a02 new file mode 100644 index 0000000000000000000000000000000000000000..0d40578c29c85530c120341bf3905104e877d42b GIT binary patch literal 19400 zcmYdzWzL|)&B!gnz~tmKBRLv`88CojQI=kDNq$kPUU5NAW{F;+fe{14;grdT7#I>> z*)ZsFGjdBXFgQ)0Ssu|Q$-n@@b^9EfSr`-;7#OOiF)$pQmK-hN6(0>U*)_sdKg2aS zM9($Cm4V^u(S1T7(NR1a0;3@?8UmvsFd71*Aut*OqaiRbA;7QUz|a7~$_{V`+%j-r zurqdGc#`A5(2|c3e{76kPel@kXGU^fe462cs)7?MFS zCxFaEF^7SHAqFO?ms*jE;-371)I69W3Mq*tiAjmYsSLVM<3VP5=4F;-Cgx;TC6;97 z=P4xT=N5pxzy*@a$t*5O%~MEA%*-hU2_$9arNDU3iFxWJ3du#Oi6H;xCugUYfRr#e z=jY|6CYQJs<>$iKA^8jp3{IJODIkV#Vue#;UP^gpN=XLDj__c|;F83mlF|a0$qWoR z`RNRvxryni0f}Hm!I8lsuD&tOrA0-lc_q&Ic_l^pIl-wVF~N}ND24|Bt}rex$uB5K zP2pl-@J+19%q`7T$SciFN-a{zPg6*SxHvOEuUMfdH8D9OHAM$WP@yO_t+W`dH@LK- zLXnGs0mbi`c}e-Dc_|9T7-0a`0}T&Q*uo8REGbFNEhx#%OIIk#S4d1wPAvcj9w-1& z%uX#!%_~vJPs&P7E>Xbkx5T0nuw52SkaVqQ?--VuU+e(kF)$#D=NFe0r6%Tr<*O0YzV0W=<+Zl!0NJy8{Cw z0|SG?YlsU$G$Tj=Y#Rdug8+jSa$u-pU|WPT(A0|UtJ9H@9Ms4N484Fdx>tcsxS2l)e}z5yC%jZnG?D&Gt>uLWw( zL8BY zgW|2S3FLo}__F&Tl7V62QV88R{{bi}864^w!1M}c28M%+Z!HFmhCx)Il8yf$d$+13=Dy{;%+H0#NW!gWdv1) zpc*gVxcA^E1A}25OeaEalrn5%PBNuU;tsg32);db2%VC zA3~bT@d|K<%;k6mxHB*;TV(o_f#Ls+{|`MTyH;eTF)(;~YJpoF+zfn-OyJp|Nem1O z{ESQtpf<`TP}_@<39MoV0|SE)BQv;f0&3q#F|vZ$2N)O_q@nB+3=9k!P&J_ThY=$a zg9rly!vzKg24N z)dcZJ9uot@TqwJYiGe|>1L0nEC>t~e!Z3lI0o0B&FfuY^o&fP*9TNis3zR*HiGhJ} zB18=%6Eg$TM2PvzKx!s&f$d($#K6Eh2_n9YiGhKA62vZ0m~%kcpqS)@vO#S|E~xr_ zObiS)lh_%)urn|m0|n*+h+PJT1_q1^Am)JLhiL&Mj2jpk7?`1KP=k~e%H9QPTrOq@ zyN4MRicmI4FXIx3IUqMMA+ec}*lb8_4kR`w5}ON&4KfR4r2`uSgFCc+h%L6TiGji! z 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 E03ei&EdT%j literal 0 HcmV?d00001 diff --git a/tests/TestArchives/Archives/Arj.store.split.a03 b/tests/TestArchives/Archives/Arj.store.split.a03 new file mode 100644 index 0000000000000000000000000000000000000000..150626092c0d6e7389a201230553babff6e6beac GIT binary patch literal 19400 zcmYdzWzL|)&B!gnz~tmKBRLv`88CojQI=kDNq$kPUU5NAW{F;+fiVNa7rwy53=9dc zY#8*o8M$Q`7@VfhERV4DW?%r}&K`aT76t_d28KdI28Kh^lA|TO;-f((dj+`bhqwlZ z=y?UWGcZ^h|Gdk7e(`%iTTl+h;WumuiLOo?5f)m8rS*zKmtFul(Ej>#2+zSI6+9Kje4+6ZrA|(5(87H(T_DZu{EK?OU{T?YgvW6)IgG zGq&zBc9U2vekZ)#^lvZ6Z>`LO+5gJz{ChU5Ta_Ae-nFjdpZ?xn(5Ct$bL`*!f2tqZ zch8rvQ;)r0Q@2~2S)@^U%Wo$6JGY~5r*J&%^bB>eWY;-*S~$-4BmX!5k4!f*uUWCJ zHt&$~^xRP_wSJl#lM>Sn*3P6$hFq(xCwF~Wk@D}B+_gDdU+wwzpJC>ogR{~;hc4w> zz54oz&-0t|vlmv(KDJMO=Z1^#wlbZ~`Q%$A7kR|9UrXbOYg)&r+a1h|uC?4tBVt#1 z>s(wDF2v+;;!qVst@g_zOU=NiH<$fqFn(&R^7HnczcD|iKRD0xC-?Fm%SUUAc>NDY z8NK|Zx+trm`^CbJO)G?+?l1drtVNF_LAJuW_~+EZ_3;%!+PV6Nw^!x<%$|K>&BM!Y z&7!lW#d*5*{Y(DN<9b`oAzC3j%#wqqc8-_$Gd@JKyzv^Cp!~%8Xu=^)l*J z)a#Ne$zHq6<6=wGO}=EO?!6y<`+V%~x&Imd2=gDDe{28N{|rs<_4U*}-@H-3>bgnu z(~>heJ)Smg?o&#iKePM#m%HwYfg^kC*N6v`6#g@$S>CHWEWrQBDEn{7hqO;10H?p?a|+t!D3joq%9ESPq^d~%uuOK@e6bhc2RkE&;?PI-cU)gS#M zUNJYPJgqi+EWLNSQQ+>{tv|EQ-`-)wWfF32_doIf49Z`$A3lHc@PWNpjrIPIcI_X9 zJudw-dT~!@tFL@SbbGh|?)En)R%T02^7dF$^Wv!kSK?u&3i(CzxoWc0KRl24vG{R( zhxxAS-T%y9Zx@R)xxCxyyL>_;`{db6BFM&T_42@RwRe)+WldAi+)?wZOUJkiT8 z$6sIh`ai=Kw)RyuG9R@n=DYsbyD&3Oa_819EjN!R3uOtravYy7sJM9IP3GM6Gks@n z+VIpJuRCYIZTbQG26>(@wo1nz=pTumFA?ju{nppVuf@9Zo)vyFTG%5J8l!crc>A-b zohtYAndA1@wpuP-mG2*a-`qX7x7OL)>(4aas+3D?5hsHT889UcsS$|XbU_57?(hqj$YjzwJzmM!Q z`M|cbTJ`MxuKdRneAjI8OZc3dI8iX@&d=PZa~FCf+_x*L6WSIW)RwT~;Jw-5`J4Bx z-h1!)n@Dr%T|YPjm-Bh5-7eof>E-v*&-SYI+3_+J-Us)82)FMntBO6kcUog=^0FUx zC*=~9jc-OcTOT=75aly_&73)NkL|bm&+uUL^nH?lSKI0S5W0O(&iq5!(j`Ci5B(~e zxY{$ZV!LtFtMB5Qy>(|#Iko0w-l{hKSmvDSUQpp1>&rmMdq|1%umajWP5 zTDRoYsn5ZMTfgSdGTOg%U7b$F^lv^N-6m@6`_SKQayCyi_v6wNW|Nz&L<_v0e-!=V ze`s}nXHDZdvxDPnS9|7tC)Ls26P#DKI!=#o?E;kODOVG z(zZ4o=B>f%{~6ZDJ3CETxomd$?)1(mFTZd088!B+e$+p*f3q-i<mqw9$$(-J4%|8)J>ea@|km5+AM=dGCJZJSn+r~B_@j@?P#D-(@Q zZ9Bv+dE;T(DvdiSj2mt$?LX$v`uU7o@cic@ALo3vEEM+KUs>dJR^!(7z}_iu9t07Ke;=zB||mSJYn+1je-jQDqhE% zS12Ex_D`&}#(!<*^r~}{~m)N7Jh} zw{DpwIWJc3+%0!wx6Nh(C+90{eymd=@iM;bhxeg)j(>*PyZ%jn6wml_*4uxx6N?^) z&wBTc=~MSLN2U%HhnEsu5BuuU6Zja{U*EyZ>m^ZRE3sYu&E@j)noHm3-}&-0;>%{s zbBm_j>w5d`Q+(y_^xxWlljF=E z^|yuBiGBEbbY1Vq$&W?v?Uszxz4z(U$DPM?+sccwkI;_r?#bK z#`LeBt*-BtF5PMVHa>CnAO8>Htv2=#;#(g-GVlB+AjekKX%la#&uwq(?9) zGDR`8JY9N*qRjO#t^XNV9{=6{Pw?OA`J3vRKg>Q}6}Dfz=a2Bi9lCpLa{^BPXW&#h z@XX@wmHArvMm}dJZ_nDTXkWHxPoCIXuXkHb7j5@0jxT?;UwgjigtU?uai(@x|HXfJ z{`vB%isMJ_3;d~m^p^WuWPkHr5#Uo+9UU|cf9RAPey-r-$Wsxeq<6ZczVwM;)??sQ}4A+-^seV_< zdGEVj)rBu}%}!lh`;f(>h^Nmk{osSizpm!`z0_Irtl7KkQRTsdCH7jyC)KvE+O;H= zH#&EI&>y`Y+aLXB;LeVd`S5P@3ilO%Ean~i?#XYpK}yL(W%8Mpw}$x^;H@k>9@2zl&^Z^|!1n znck^vHpydq)+TrDY4>E7v`!86IAp0~!Ty)^VO6PSipkzt*S{2(|B?K;G~I7mrhd+w zz3=zB`yV_0JpXNNsp#StN7v;p?kX`@F{Q+!ex_%Fk@3s8*az|Qrytn2@0#Cks?VAo zwXA!U@xJAC7tR*TOzSu#yOAZe*RyEBDd`Hs1uQ++AKjeB`=22CZGSCu>yN*; z_dTI@M`ibJ`4#q?^pDoF*EsFEyhr)Le(uu`=Sm-z((zyAXf{_S;r@9=Bacn1_eFGE zVe;C@SHvL`{&z{8dBx=ied|ALI{$D{_M+cG*OqSE+3tT!WpBr7tJ{BWxal07pZVa8 z%EbF`S3Fi)<+e>S(p6=@@|#4jxTDAXOMlJy&#?LW+vtz^(LYw#=RV?`cG`W1l69A zdHQQP=LrS}KhNRa^Jw?emPNDn?hl@1G;Qttp#Kbq+*8*@rTg#9oH6&9ZA-4iV`T~1 z{|s6Owr-jbV{@axJmv9R+M`FIvCAq&9eAGq z=wp!l!n8;DQFxEA`{k0gp@!wlJ8xM|ztW>zv3*@zt>;M0)AhQ4)@Ays z`Z;-$#~-oTOMQ-)%)I{V?xLHKF{W#leu|M>P|vyc(zEG%e$6o|^Yi%d)~))l-DCGn zzg;#?D|ed66yzf#x2O5*_qDxVj~<=&oMoMDF)flqr(CYKs5WcWG2Pu=Mz#J$AE!63 zU$kS>hXv$Xg)3!T&kHJXc=|x z)wkNXU9tN^pQY;b8F+4Ab-DWM>)b8&0rn3jmv4UgpJCJV{?f?DpM37=?7X#m=02Au z)mIK*Y(CHVx?cRp$w!iTHOb2s%&rltXgIyyX41xw{}~oa{bz7BvRLtC%g_3$_3@oQ z$_oE8C|4f;eddGyt?L21c3iO$PTqFv(J5JtSH-ve4gF1LmG#+Z9MqjNkK>&7i8VHv zAGQ87xNrE8xXQnrzja#1Ep6-bstY}@*35ma$aR6$UCSeRD!al2j(-`C_MF=$Zn)Me zXuI*Y{mS3=NiO7?B0Tkb{cOAEe`nN$Kh$rzXYz5|%*E#mS7*G{nN_xS^=-xK=+!IE zgfJ^PlO5x5tml^Znraee|Ey*5AP|R;0Sl_ShMs zSjysLbo#27z?tGt-;}@36FpcR_R#rW!QJxDzrV)%CmSBsstDEG9ee9PL$~pNhP1WJ zPP;z%_td06jOWOjCAPTQZhp1VJ>zM+clX`@tN4&F`gE|eMW}>w2HW22N2SbWepEk@ zvH5U*v5wGjle(nUyo+3Ude(4FNtIA+JTH^BH!`Guo1fOHzcuIU8C~~C`@TN?FTLmH zAO5XB${+EIR`h#a-D>#Yu4k^|Rg>79ZF~#=GjP}~x7c-QkNI=A!``P@lgb!GK0RRlSx|YWa{a>f&0DTd-hcnX z&n(mEz2_IJUV4+OxU(X$>lTBEj7*7yv4g&#br~ zx?|F*XTMKQT+_%^W`4%e;z{|FFYD)RUFI*W*16<#ZlU~C?K^vnZck87u@13(Wyy2n zxY9yX*)v)9s+9GkynA)O>`*N0y5=c;=7!xjxB9u2ayviz+4E)@y}bOg+&q|_r(Ezz zZC`Dz=4swDKewfEEslF_^E_xzzVNy4*Sezid=zZ0_QZbxUPb`yyCFc{tynnjEiR|64DzfbtNU*Sh|{Z1U^$tmFt_TL%Zl6_O~;KY$G=G}jyhf}dSzdXprPyJN}d%nEhTl>jE~j|PwLmXGiUAf{VTsphN#-u>u%lt z>U`SnA2rt}zTCC+-NM?+6pW=4Rg;bSF=>Pp*=KJrjFUrsP%~ktSbNcHa z{<&ZGcUYP2T+c1-{ku}JEA~*}r{?1h{L4*VujhU#wf$D9 zVJf%Wk8=E}|2Y5Q_CwbF;uZ5BzMCj|Zg%S5l}zV##NFH`$y!SE-`~CZZP3H+b#CSJ zYL?bif7pKLKLclJKV!wD*ibvwexaDVzAOJTq_4m6_M)gLOYo}c!YZpCPI7GExK$(} z|9N{;!H%3mEh`_&B=;6B3|o_^t(P{r@OsMCyYoxeuIaBgS{k@pd&|4YRq^q!cYfRc z#_{o4dB-2}>nr4ZgKlp1UK{p3aC?uv@u54F%{CL~^n71G!zO+W_xesL6>gKP&dO4S zv>KjCMxL5#q&10w_iCechupD!I)@Z_%e?xBlHbyI%Lf)_RjY3)|1!v^c5G zyv{28bGqQcHK9=#!izF%W_xa{cPQ8*bja0w-Tt}fH9ng6>Z@Oy9lT}MFK(e}A7?zB zvh8~>)BDu(GU?nm!cv!am!7rr)%tZg;>z0mwXvyNrm81gTf^tr^IZG<^2hO>)1Tfu z*J`o%(WKwIYj{40ACb;3zqIcC+k4X8Ig^xjwa!%G zy1}qgD}r(E!lrqStA1VmWVu7@P>{suJJ(-IsI7AJ`SV_AXO?O8UcXfRH}4jI%1ic$ z^mDX*tslE{n^>Ak=aV-Qe9K?EW@INUORZSKm~w}LXum)yI(!6U}c!6n?)+#(=1Fg!jfJtN)D zx3IDxr6MLZJsD&Oqo9zGgs6nRl$3t5lZ8_<$>9G120;!c2F3C%vL8JT-%*?{T$i&LV{{IMrtpEcP6C*PdD-$a-6AK#?GXoKbJlOVGogFVCJ{|qZruFWp6 zZb+7YRi-xg&eR~g3I3j^u4k;i92|P;oack@@`kbB5}rR6e*T}qU-oRVGY zgzHt=J2rCuJ@w9dLuBRiJ+n*_)8tuCJowMh(YtD`>RT1d8rJif>vm0g(jl64?M7F? z0{JkOyeXfwHDcx`Zi~u_+VWX`0)O5zrnAwvo=&$lU1&dS=YsnHJ4)mJvztmf}r&8=+q#zKO5 zhLZ-z4a*IEcUis^UY^^S@aE-_^R}CnEpF}m@#I-(%Em8GJEyWnC+^lgIi>5?;Ucl}On&@4uKM>`wWTlDh^l%@DhqG_dh?yj&7URN99uVhWtX2)YIJPT z=6>_#4o&*Y_v~WzlCCbw$zzm#SmW%Qdr)Vo|B{5pdj*>+(|yy|d*&X^v5UM_RWfP% zEt_MtyZxDW8c6x@{8KStZ_S@^{a4YOwDMExKHHg}MOQw*>Z$vk^KS03`$k(WZ2CLH z;*M={-WJ|$WvZ2R(b;~vB};kJAGKMV9>3Blo>U=tzUE!hk6%T)k_i^)vUY#Fm zT_ItcTCr@Q!K=pd^tpSUKR5K}4ci^!J$Y+2-{+f;^Q~(wlXqrq%G?%qBdLP@UU)m# z)f2lO?&)j4r<=x@?)%W1saPyJHsU`+e~?=K)OmZ=SG>D%t4gG$;N4*xIi-K{E5#zt zCMWYwGQOti_glQQtL$@MVQ2KLBWg=Sv=o|Lxb*DjN3;#D8!%ba{T*|Kxr-}#%*diie45$!A3d*=DgC7Z); za0x4`KPuU>>sBeB^vMK&hU6aS=+rvzv`w9@PY=5jFTmCACS z|LqrgefQm0>di7&GiPLZUprNJeU4DNdEkyX$0y&O8^5TDIsN|a>9-dzKM#<+chpsO z_l$4zx~BhbyR+UwjNLu(a)`~9drMM&^Y2;fylBIx&>WU050ZstKkr-W>G$egL8HKg z1=T4>Gxjpvxu44Z_fc5fo88^%a}r8~OJsKP{`Ne6{4saES_6Y{TUnjEz_}jnXs(6^ z21c8W-@BJCxZU&gx5l@*EPHcK?XA8c!_zl;eq69&8hdEi3dL`2g>#R5k-HFf_qEE( zjhh?7H?;UVOPg(G+}$`)>{|Bz-J3tHmz!s#@_cq?{?aT4)&C4atf{q%jt?CUKE87< zd#-B#zJ*)eb&RhG{Y`p(x3~LCNzOc_ZLLL-{xM~*ZR_R5{4?{nJNvE_Gv0S`d*k^n zhhI(2Q4!r(mCM}Pc|A=y&uHcg3LuTELTJo&f#*OMjp4?dc9XQ#V#{Sl6=Opz;* zMX~Kgh8^A_YqNJsh)IS8o@1}y!h7ib;ilQqJDBK5;zbWVEPx#F9UJAG}U{-Rf%mhJDX{yP4k(TV`F&TES{RbEjI;n#!}gEfbHa zy~~}(a(g#31OI8Q&3~V=$kjfttIr9$?3mlRzu=ae!}lNkFHJg^+uyytTTS;O*$I6Lz*)!co-!do`Y zpIO!I`03lecg9VIojX5ze&xOVMOW?Y*~6`JeFb)(#TgS+KebzgzWv^jnZNa}&4wc5 z-TxU3e@?GkbL}|$%9q!L{xgIJFFt))JnGv<1y+{FkA;|*uUk_!w>_r%V1(qcuff~p zw=m^OvYxPQ5WZ}AewoSJ?&QFo2N-(RTPk_!CM~>>XTv=2LS{1K)|+M32d~FYjVN2G zUcUU6-;&K@)+I4lx5ai%DiGm0ZgXnpfoKPnIq%+E@>g8`@W+}zSnkrx{i*J}J7>2h zSkANCCtbVC@AKt_tG339O-l{6wK&ooxol;b*|P)3eV!G(+jH+Xo40-ixBgCP)&7mL zY0p1?OZC2cw`#6-XaR3jgCAquDZ8Y7rj8qJ_F7Gz7uooL^W>%MH{QIBze{X+I@dX_ z(0TQn^ zb#@n{O^$Azxm?wHvhC$N-<~9UuMlGo&tW|&b9C0#Cs@B z=h3a|?|6OHjmA*-n0Zznx0aj;)jc2MWwO;H(j%$r$f=1LaeJTDsAkp5MVA$(cDol_x?u-yTa^enjea zC*Kp{E9b(#XS2odS1wCv=J2$AmVWTe+UOkfbyugK+AY{u|J7A%P29oehWiz4;VI_> zEbRs7O6Vr6b+Fzwr$l(0pXHanRxvxX1t;?OqHVl$cNzQ+*l6o%*}XbfOgCZO<#X>o zi{29K=4Q10yIlL+%P+RmR$hLh$MLrBgH?6pjkgQ}mKIIBj-~6qzy8Q@$)%rLC&=f$ zOPzDlcHJ-cAPI|?{~0W@-X(6GGI4%o_OdJ;?!*WG64Lx;m)_RiB6VE-QPRz?!6rq= z&)z+eWVPXe*K#+TM^BsQlpbgDntJqT@zn3iD|()D-JCo>?osrQ%0&UjMGW^({r+ej z<T&BC%^Zl7u+&3nzdnGKxe6Q;FYkTe}IhoGjr!&kIYX3f( z`e^T}o98Qz?pknU?x`g_UtbHIpE>Qk-R1e>>#L^i_IwomMmM+jrPB(Lk{`{nu66Sb zawPuT`7-CqN$Z9es(Tw7!Wd3p`Sd$2JUDhu*xH)z0#D0>Ge2B*o^3Cjbgi|(;^et> z)lLV-JY&5@yk~bWvwb{IOtkC_*LCTyS4cv_#Oe_55~ylFAr{85^Y6L(KO zuNHV&P~H46T_aPFVC-9Zl$O1jU#*td7ar*AK}F*t8OSJC~C>Gi3u z>BY(F+Z0Qxsv{3?a|mv5SAXB}*Q$3-*ZljcKX2{0Z4vkD@#|YBxz{&Gzi{$QJAcc3 zRp^DK8QDC?Cw@Hsk$=@khizOdSG3Fe$GDhsl!jX0TKZO9g1?XD@%h;AsqbIzp5LxG z_kEf5LCKf%Hof}n%o29&oq_7C+h-3euBZz=ZWRA_w`iH&!*j)FzW-;Kc>cw?zO_dd zDQ}*9QdU`iA=5Ygvfu?0&joGyR<7DQz0xIlvenhsCEJC5dlnu`pZ;|3=WEBF#cx+S zYumxCG_h}{V5xi6oN{^N3vrs8Hnts5zIxoadyVMTOcAqkzQ4=;yPtge>TUdTs&ZEI zozkAnb*4`^Ha&d7cATNFfwOeK@*KX;Yx_)|KibQCf$=@V_4aepg)$!$ZuVUg-#P2j zjem)2R|iFWa1T~#oT8J(et%=f)U2=7{&COjt8RpgKCnN-x7ak}W5DUJ<>x$&j_s71 z&L4K`+eTYIE6(#*^mI?lu?uC~?E2-ua`z1F(AEZf!}CS~whty*AG+T1>q^Oc_Jq{K zdiHsfEiEN2)k@9=pRHnfDE^;e?&4p{aYxMNu45C=cx$m>k|VRtm)^_CA@@@IH^`Z- zk39V3$KRC5oORPSP5$AU7{_R-`osS3k$Ud;A= zMKdegD?clKTshPG{mbTMD<|vJCttIStcaH+Ba*#Vu9szw&CH|CpQe z<>a)#tJo2tLKn@#09IHUM2-!;)wa|C&2m2Q}{^O-=#c)G zxf5rai1GoBj@l3oOqYK_CZzeD$&XPGvyDNs-5mf+*J;8H~L~1T;b+sQIWf#?w&O1*tYYxlFolL)9Q6KsV_S% z`|ji+zUKFaKl)9!T?)5#OOso$>h_c-|3aqS7aO@JUhqf++a}c zu-Hg?Z{&H&@3VaM4;EEDU#Ixx+{sr#rxx#ct822;={d`9Z<9>{*O(8yHLv}Z6SyXK z2Fu2CZvGxyw{`34-Ox4IYH@hugEMdRL%RC%2;V(Uvc=YLh8B4_iv>wm=<$rn_oHe!S1C!(#(?$ z>*w$}s8o0C`*u*zLw(`5>GNv!bY4m7raoTpk+!?=j{g#Q55usv$JYq>M_B9X9q6-o zmVYe1aL<>jZ{Atfm34buLL)oB3!J(gY&r8D=V_t3OXod0lS2v&ca$4EJHBa+u~6{@ zYey+=hC4i8gg%@+C^6|#$g*cEHr(=-v-&ct)-ju{sPMhv{CE8GHiun}YA8P0GpkB= z?dSUc3;`L-jve~)F2Ts*wQ1aba-vjrU}-Ua!7lbX zj3ozuh3}d#O}0O0?D5}LeDl=TYn!BYO?&xKJpERv@C2**#d-^$EY$sKG|7&A58s@o zN}D5-bGzrwU2AI>Q_9EgG3yq)vzgv}$7h#U-FR!h=eLXNe+FZx{|qyoAO2Ho?$7Ah z{VXT;vqE{n^qom{HJ9!(ZU~EG?Cx&4b<0>magF5UfN!(JI2XLCKGan5>TZaH*@a7Y zv*T}>N%$6aoUrtN@GJd4!;b^MUEh3=I(f=^{cGzTLf@Lzdsc6KcD`xX1m}0h(}cx; zl>RQ*y7K#xFHc$4>-fZX&#DaX`_JINZ#TE8@AeHdqu#H)@g{fePmg&=uI;;!>-F2S zPV#rW)hF*-?Yx>zEv4r@!mk8JoMJfgeO~96t@Bnb|I!uxaEs-+qkos_fBgPwUY`2A z<<)!<{}}{If2MQXd_7M+b&tOPKPH|ZvC0dM-#GF^=T}y_%$fbJxi?<1NAB8M`c^yP zRR8Js-}~fw78Ez}ADn3?A8zf*{@~kMWNz z;Yn|N4p&s=9`mX9jeqlG_Dyd~&I8}Sw|I++2;Dq>X0?f8RT}$At-_A|LT}bqcExO- z!(p7g+nBlGZp;0Lhxv*%GP~xiREj*Nvq5#+!2@N?w+$PEBiiT8pJD9bw^QDjcfZ}F z8$yw5b4<3{b_pcNf9t#%Ke ztv6g(Pw=n1^jhr7?+NQzjxH}eZO`(pTW{T&FQ!MDryR3WdDxJ5d_~K8-{=7Ox<}RN zOU{-WY*}RV`}3v5wld|IGk&5jv3J+jJ6Omnu3IzRwEgb;{z~oC%TMNcyfu|#ZL?b} z{b8P%&t`Y%Z3r_G+?`P-IGe)IW9Ue8LEO}Vdb zFEYIz9OAVx#m#=r_UgQ#r5lz{s^(D4FfmwtX@!GK>AbqiSNN$tLPgK3rVoiDuxCwBZk)V+7XmtE2FN3wUHT@bW* z%00dp*H-nK`cB#0R3-M(@VUA4zumJA>=Vp?zD{ZO%e%e*88*(Ai+q`LZ)4lhowkXs zb6gmi7jw8K|8xG{@S&jkM2u@_pNd%$GfSsyo6@uMGbbmuNX~II?oi*(#BzJ`6)&!D zoNXJDIM=Y>;#?yyxUzTeBGxqmVUeH3Hk~gj{HVITZ_M(8_%|Axow)Ms+K!ni>|4ZVpOh_ptFT>tNsiB& zt?V|wOI=D|no0br`_$W7)&I=1GW$j&gTxWxOEb@@eEz2<_2%2GFXuPvXL&U&>EWBv z#rip(xlwsvnt8&7zr1FTu4%J&P``7)E@D#EOo!)NHo15z^)89(W=vFgW;rqS zVCd&QL*dJD9ZPwuXZEujcK4RPn6p@;%p#|L%hM~nYCBhMmG*cUoSw(1yeDY7_L4e# zgBi>JGjNyRkQDyU!13p6qVSwA7q*36eR*SI&trL`Og7QGyE#|uf8LVSzN&C$X+q|C z`M~a1)mHx*c$L=ix!W#%b3VfAy;JRCkFUv-txwBrQS_MpW?h-UGsjC|MpA>%q{TaWGjum?J1ZV{nRUshUcYQd_qqvRFT1wz zo2=jG60wctWOC1$+xva}G9SB&e%X`8b2ngfw(Q9}>jnLy?;Fi6+s1h2%zuXLh!+b# zd_F$o@RL55)hjQp&H4JuIeF3J$(BzYWK)F?Nc>Hi^YpHdbit963I4(s(r%VU3JE`% z)$&i;L}oe`DashWT9z2{j)8CAr>sX!za?{)?rsEr%H!}P={MPDf#+TJox86MUo5yWG_rq%nJRILn&ir?BbssNFWmxmw zim7ulH@>^P@R60)m#g`UrzSU_D-=jo(dt{46Y3@<{oChH!v z&vE@0p&;Gn9(X>&;YN_-!Da~;6~4VswHuG|Or0ar^Zd`Uj=ZIt>Ub6u&6{{FS;s=z z-YBzo&Np>o-`$dTe-|1?zb)`e;XA&k#n7gw#_d{->xx@vx5hkwZ*o0mmC^C>aRI%wSSXjZ1r;n%@%*bsBlDh=dM0Asbgsej=z+v zRquR%?41RN&*`i=GL>%XI}aCBIrVxT_n9bHtJ-9?^gqMjl-g%fzYV`6rGDi(k?`mH zZT0CP^Z#U@-Pmu#zvXCm#w$;@l9eCo1+M(4dabp>G+l+EQu)5nix2TaS6>`kHLG0R zhWV93jr(77kjivlOX~ zUk=Lc=}h6N_EqD^b^Nm8QT)s;dB-j@FtBA89OIEwlAd{{=ch!ob>YG3^Orwz7L47+ z%(eZM$#c_NZV6{y`+`!g9bW(Y_^N9rdK+%OvaLG2Y+(b#!}c=~tPduim=(rsQ=oL9 zT37EOb3(c761&-)q0g7OdvJY<*eGvwz3$H^wZfny){V+NU#BLh{&>kT-R_SWhx(lF z6Hn+)v9NrRl>cOv6W1f&h?drW#U0gt$s+g1 z;mLFMnM>JkEBQ=_O_|MTtJuEk&IG?S?K^7^Jd%;UlPqjol5}yKGSlM1?*i`A0x$4a zlqK!?diS`;PU+6aGgYtr>E5uu!1#_tc1dnT@b+rK$!%|M@rvf8ED8!_=cPavQyiw7fBY0-2h2ELNlQ@4DTUliZ2YV+qL|k=I39_p7~>CTyChB zVDkjEva~ggC+6Kh`k!IB#OX;jnli#LP#=nw(dHzVn zx_NgkZtZHnoyX3+uRil-$uFx_mnu0HW^-;~e9IRh^G7mz^MOg_XZKB)$qoOqzumrV zR?yV7pEx$u#_xIg(&TH#mQzzTTpSy0TWovGKHn|*gR0^eBATzTb> znvHtbJySdFRae4l^)r><8ZTdV`+d~wu=G5p#%syG%W8dJhAOTpd$CG=`=yK(|K@$T zZ8~d_)Q3GA|B3jdT{+(QQCIbsZFF$aic*FN%Pl&U43myX{97FJYqj?cw(lw%jY9K8 z8aRJT&c52+vhB$;ccNL2DU8_xqd z%Z|07%d$Ha8rUP;maMRLP|EkrV4d7J@rd;%)$~G!iI<9BueLh+wdGT&?Pm6KoR%kN z+kEU}*|1zVL#oHj=QcxxfYFXwH#mRxzWkE9<&8J1ZJXLw&ZS@FBt4$13EYodv#EjO z0Y~Ta8C9$K4BE?&OrI&`c39)q0{PC;>G#iEx>BBdj7M?B^)?;GpT=hA7mH3Zp4?M1 zJuuDU$)A%O%cki`mDZSq#!XzeVKwXNT-&FQDr3A~bX`r*lHPHGEwv(@CHcv*t^B@K zU0+Ra#8*DGKPL74QoNr)@;3iH`>+36xkTes1jhrua=x@nA7j^M8739k#$AdI3`-Ag zxx0;DbDHm+KF04xXFJZ#R(r!Zr+MN#~8~}$^!HZNyd2E~$Ll^gZPlw(;(u!XMe_*v{v0=GAQC4IUD12;c%qGZ-`;takMFl#=KXs01^f1s^QIpwJs->Lzw~)v{ZjuQ zeQ!lB>GdD@QoSZ|$0z@1#nzs$B{$9du%7ec54EXllNL6dzIE^ZmwE2Lx{vjDXPI4} ze|Y(Yeg7HM3?JL+uKMWq>C$!)zK#W->e5wfjKf~f`Z8VY`)$?Nb(3YjDi^*!a%-y0 z6Sp-VUVquzZ7Mpe@d5iW|Ch|ErEgAsH8%Ula3#;~QDE$Hq3pR&&$8LWME-owG%%tK8iq=6x|X~EY? z7xWu-J0GNXZd$I|@F>~hiCoInT*-j8b9FpvYl9dMDnAx9wVhG7S@)RTr@yVgIK7Vg zg)5wS7BRO`bk=FcwBu(sNtbb0elwb^<;=Hu&f%YBJH&F6C!hBD#d0Y?N4>Ob#+$p3 zPkUdnWnn#k`Mv1ntNE&K_ioO$m76p#>RHj-KQ0~KAJ)7%^2_1%5xrTn{5D+q-8J#x z`x&RNhI$<}RWXz>3SPE$o8`t0RZnW;*SH?K*B#LPUG1C*<5$;nU2m5iao$iq_v^AA z9)-t`M6@1DJc_o@>|^VQn>Dd0#3Qh|^V<3d-UE?)!)4ydq{&?3SKy5Ec&E1X&@p|f zXxa4%T>4J#!KM$Bwy{pl{yL{e&SB=&%%fK;YsGIkye#ovw)u=(!jUq=%_WC-?N!+D zD}?QBeYh!R({F>W?7;kk1>DUO8ynQBp3mDm+511kay{m! z+a_Nq6P&$AwNz1RI_J$DvoA)cUD9>@Ro;C4NAH$rt0r72JejwD$^Or0zRkO{w```# zwYT2pk9(LW@r1;9i>98mHNKVmdduABI{t;%gt~4@pV{u4yw1A0^V!b)WzU*Sq^2KU zD`qwCp{L+mv-xq;u0DA&w@hZ*jiO?y#YeuHCIqj@dL7v6Cdp9kzWU?ZVzu{Ha~JRQ z@tgDfO=d~e*?{;X83$}{7swyk{%=mW^;B8^dybE*zCDPHe;E@V`smid`Nq-PZKv>@ zuI#O>JD+J|9{Mn4ulZD#PwT%tD%HOBob9~hapmnVZR)n&4V{(Xx9GZFg>>gX)fY9M z%nCa@l~wj(BIp_GY%e!B#GgJChai^N&*NcpR+$$T4*gVx4{I!?U-Mm|FqRDA<<-SW3r2Q9^+HhR` zGS^5UVfT!5$&BC6DiUsvn=r9QL1K zrHk;Ls7L2K+iO}AzdT>i;MJI8&b)K(GNTQW2Y*i8oFA8Hu=38ls?NM6qPYhfpTCt3 z5Ibn8z~MD#Dud3^=6Z`+4&j*xne4fvRWy%T&QvYF+_`JZ`{KFn5>IBb%{+M{!Y$-j z*&G>%`5sSXj%O{oR(v>lDUXO-#d&?O;_7y9P%Wc#n%cz62grybIf`{vm$ z_bZgRy2!ZdOVZJo2alz_Ox&WmaDqOApwy?(DNjDQKQ-ia^$eb>Ulo3QrN6Uj<&n9v zEQ|+)4*OMQvCk5*yv1(ac(S*0#+q%{B;L4j{`N6RFljr$?sH&q8^iCjJf0oBRr)#( z^2S*&4l6ePmM{xVY-8xpQ1!~%T(~wz)@bcIO*D9%h9QmuN?$e)uTe~K$xF*Uh>&GHnHQUCn z-=O)~JtNLH3Vf>rSDZ{bQa-0@Q}Kk($k01EyYuXW(yj-4x|v1p^gMTC@e0f15o#;m zJ}P>y9PJyu#w=oMz(J9Z6QwR?2F=-cc;~BQ`im}gwSAXc|E=fNneD1ROP%HXH_Yox zTVQAWcdcz|Ow)5#_bpFfYGv!iF5c()ZLYo8y0giOEBHN+*|uDp?zcsaU8ics=Gy_G z>o1#Jtuo|U-08zV_x$B8Ny$6E+^_eLBuUfX*TeOd52)*!sN_wxoEDFPY!7>owHI< zd9~T4z&8I3ktAv6=C@XntJf`1I4dm7`b$BjZ_k-^Yo2FX+E;d;s7mkHaJ8YpQRqK| zfbn(7$;Xz=dU}>~X64*tSB`yg)(d$&zd~2n>v{3673>S&%WV!@_q8i4s%yjH-)^b` zhPj$1+owLAyrcY?uw$<0iapj$krnDY`(h*ZduOQaNs#^Vp=J!dn&6*616R#O;Q?}f=>Yl?bi}&}^&i;yUG&P$YGCiTd zjostg{K)cYQO8-Ddj#sAifv)Nsu}ZS@&uk&A@iLT*!C^?UHeRB^}4p+;K1e4vIhQV zQZlwYUz_mv=gfusw=o_+rr4ZRdgN-jtH;lfn7%nBbM}^9e7wtlLa~+KoAwIH??;}z znw$4=ubn^B=1X4YOLt_(T~XIKaZ?gw~_ ztkyX6TTr9ymgWw|)T|pXCthOvYwGTo6>@7$BcW>^s<7p?f_}I_f+bZ@}x5H|x#hhP{La%ep4U*)?wva7RWgBP+IIL7^Fs62b&_37MIXKD=J zOI*!n&C?D#`0Yc;cf(1uDg@jOYu&B}?QU0?cs?>DdarH7iHGfH9=^)Ymd~r-wx+B< zQB3OH3w`sK$KH8;@VWTm)%p#$y(`Pst1up%`JpBCg8sK1Tb}HE{-gJLaNt_^bJ_KN zwSSjAS@XjBYkhYVSAA}qIpgJf7FW35-nk~b&g^aS9Cx$EORA4n2VAtE`i3U(|@MTEu2&E zTDj=?OZFMRu1uTa_5I0qmEV3VE{4W)`^Nugh&iO2wO2dT?xD+$8ApGm?{^I?dBFO9 zPKrzJMawI17@F_PJpMX2c6|?%%a#?)(=3(mMZfu|n%1$jLg_&D#4QKH&br>7Th9O2 z+UJe%{4H}WWH>G#J$LmL>r~6Y3%rXLo_YQ23;rJ6@z$o~<~{YF{XHHQYDL z;or%((;k1D_S;`ZdF!873{R%2q=~y1mVcU4cweAtmO`m9E&!!0r;eKj-pRZK?I+SLnOAS1Nbesfa3xf|LtS z%eT*B%$fJ^n86zh{x84zHcx)IbysY`j_0Qp3(|co%ozL~XC|Cmw|K>ZrQwy{-{#ea zOv}8_^y$arqRH0NlB0Yxo&+twa`>}+qGi<5ik_TIRbxx!@EO0g9=-vtxDOzzCu#2I`%Q1`7) z@r8-!&n$U*{9Z}cMXeihS3Ya~`C;#WW^8#u-`Lbj2olu6gPE58D?={~2XYhITJ>*xJM*UtyK+nW{2( zzT0+T4I9(%6JN6a_($bv9OQg3ufcEjOSx6utyh*dHyk$97vFU&E6jzjy^X~!)6v&6 z;>BX&bRL6Bp_?z|TurWJ>mMzBZ1acX-*lIFKg|ulW^S9RefhcZ*4(X`!G&B4{!Ko2 z`%#(Q=Ci>)G7PrMZRY%4ZKwQjv1j(1%^AnSpA|)`e73r$ySmo9HRYE0M4??vqOK?2 zshVWP->Lgo)5lw=SmBwg%q!ijX=|UKmR)?SHa6S2a@x&3`b(HCXC9pOR_E1`gC$kl zE@vIRTlvg##mDq&$xI0+N6A+_&yv-A9vq+gD_;24+S*&k*F2?SlEd*Vm+nF1vd5uu|0G z#rpBr)N);Nr>$20?Gu-E>YG`m_E!Nr1<#fHCjW7X+bvUcWPVXvpziwB^~S3nKALw~ z)lsI$f!pI%@wX|ZF%NhSHa(Z!<@MFz9N)b=1qo8WC4Pk@KlA-QtF9HcNCvZr74YhCS}~mrXg{XPmG~mwe)> z{)}a-nCY6O`!%@KoTse3-eWMAm%m-sYqvQA5A$c?t1oBuIxKlGZ;$u%w~T8gnht;B zIezJQz><`Aato~cKIbp_W7m5k_vi*b+lMcgbInUQoGjyeGN^UU*1T1_UaKrKVC?GW zGc&vOCM@x4b)#IZ;M%CC$`UG!@5MfN`#+v-GhOIkZNtmfkk?*W*#UbkWtBZ2ZQr(2 zd(EmV(is63N}7-MC0yNggROW%opQ+wxmVg(6*yklO}sB?Ql)gK*x<>s7z+lT3F%X> zR`jj=cCctcVe2E)1s}ye#jSPDJAZlRdW~eMxrJAxwcy4%e$T1=?6*R)gI8xCGh5Z4ptLMVF*B%qvVh`S`NaXZ@_7>@ z4@cZkzookUl0i}ZEt_rO%P(#fS13+6p;hJU%=z=0aKqd4XR@PW_GaDoTw)`}PYhHt%EE{ol5 zG`Z-#j&)mequw5K<{4{m)q3RnD(?S&DERq`uR-E+XJ^jOl?$28Ri~hRg}IOaE$@D2 z6@$NO8|P-|sXi7~y)DUo{a)g|^QYKYl5#|6Xq*;cKNGn%x>H1P!|yKwetD|Vml$n- z8Y}(IzE;T-(jI$YeW0HDqzJujUt{L~Ri4bd@05;D&%y_Nk9am;d3fmI#tZW{>7LG1 zI#4dRq>yJ9L)$TayMGtT}!f76~1J6#Fig#A`+%JBVm5W)>&znFK_p0E|kpX zPn3_^*i(EfJMiyX(-xkOm%Q2e9)|xaGL2NPUpsrHVXxx4^}I?~?>;kM>K<&_d?q$nrU_58@}!D4-Ct}eG2>6rKgPBE?RUyn zzU6%!mGqTcTk=+I#2l-irR>YnbdQ#>cia%*&c4TQcd=IWKSTS~%7cY{O`!{GF07tl z#q(`eh)aERPr6L`jJ?4;ud+5D$<2P{!zweWaE8{_@U{M4H$vn#mn~TPO`AFJiD=%W z^_R4Qp9LM=c$)7=w=P$X!jopMtW6)zO#Q1o$MN3D7Sp^ZMH0_^bHOu07h_^YL1|l)%-@TkVG%jEoFf z#F-7IMdc`LJby2cK||qdV^7sCZ-m5U9vPanwrnD%w1W3iNx16u@BhKeoE z)^~RnZZd3Ac8J^N_n^tzQ6TZ#gVM*hQm$G4XIPTeC~4Av@Mnua@p0RPQ~dRheC96n zRAD}HWkuFpwoRwG*l!(Ra?J5t*L)~qrPZCU!}u09KH|F5 zAI{zPEQIa1&8j&!`#n!|zv!Q%ea&3&+Jiql$pTip)?eLr@zBbbT(idCil(?gwl7{6@)eJ*X^ z(OTEg{-w2U=Bsz8CNQ70@seJ{u*c_BPRQjOXN;KUG>R_|p40Yl@1i=z+Wnm?vrj8C zamYSuURo9FHf>tG`}7le4~|Ct*1x)J)=_Dla}fm*Wm9AQ)23YM-DrG$xBJS=8awlp zS;MnFE3UKee4p*~=9k6&z70}dA6_SGRvk{9{;&8#c2@PPPnR>;SK2PO_l zf6LkDx1(QP6xEM;8(_h3_WE|+$#be_Onx2mV5PJ_i=fE0Ec@+UbDsX@+?(=g!_{nW z1-VdJ{+}l5otd`-m$NN9ta*ng*ysJy4_`k`t`>eJU-{BT|8Pv^)UPY{Wj;UsW`BLL zah~hsIL{jY;IOQn&dJU5csRVG%^QF2^v`@@zp6%Q>!muQDYsrY6j%wq?|lA8eXifV zo$O`lmbuXe(O=v?>0F+4T;`ds+w`*=t{hoCZ|3*8uVu5=Y_vA8YP8&D{VG3TY61h_ z$AjlTn^wA8z2emioFOLL@F~ zuKwM~^{jKQv;?pA?nwo&_J8W&l8iBZ@j9;Z)VUee9RC@56XXtV{C6Ro&E|da_oSq) z7E4RDmxbmltCyKg)_9%&>0-^n7ZS{mLZ`m7IlbCzn~Z5|{kLP&XEQKLa;6>Tn^QXT zSh`1r-@Blv%1@m6xqTk&V3tieHRDNAuKR1N$A?xP^IiL$Tlh*~sQbmTI*x-gH?0fG z`C%cOW^;142w(MqBa;PukCaczvpbZQ>(q7I;(Vf>OTd=zO!?;?%Y9H`uzu$AQIe5& z=PP9^TkWhF6F3~NZWKII?)#`bbCu}|iD@3TR*P5}7#lAe>|WsPn>Vj5T36**>f|F$ zGx}y8Y%Ka~AW<%4y655X8)szCo?vx+z<7^^C+nBPt$K~`6TNo}oibX^z<24g-p?Xi zl|D5_)0?|LZEWmXoqE+;py05j-3O`fpBZk|nr?XfpTR6~tJIa%j2^1H625ds-QKE| z&A8e}$iMi#THo9m7O57>xA&|!h-xkT-cVlipCPA-6Dz`B25y(Tym0Y{&#Nxoc(`ptg1D_+{ZqXs zG1u*`9h!GBXj;q}R+p)g>XH(D*7=LxcfZWhRwO{_KC;;rscn>V49yYK$R`vcBKU==;`^%prp1x*Yeqs)&@gZ7Z5A?|bFZGM z%4fKAJ&V_YVZkr{^LxH{M}(YU?RaB-;Ki4hzM+?+T3sXyBK!I&fLm zRxXK%))@ZznV)x?tbG`DdsXPY6GuHQpZKqsdSIUUvCNHsvR=Jn*=?Y}KS9aI?p}H5 z%0GV7rDYjy3lIKH{_=8NtwGh7Z*M~XGYJ1@IBYB5_JcQcV&0-H)w>@Q*!w*z7xwEu zXCGNMY_iho+k?>SeO^-hLo$%B7wd{?a--c%oby_Z{H=Ye;LXB&F@Z@E2Xy)Kj7 zsVTSq=V3!Jy?2jSG_NT&GRfO}$a zS)Tk(_Zf1DU#{sbSuDKUg8iO--0ZX|Ph|eMzqza^qw#w8*XB*jG;Zeb_&ivg;3Ifm zrgOp?_Ze<>>=`aj+5rxhvUQ1NsfHhK1)kj^ZIRPtyHIOwZ1cRujqJs{A|it?PvV@p zK0H{FG5YME#rIN7L!D0N6jZ2Z{8bd1?A)}2Vcw*mwvBQ8td;VHYns$roNhj=;(z&{ z!Eb)Ry*CT|?PtEQ;cUFP>$jc%8K&qRs(%Dy#itXl+|tj?L* zNojnXxY2(5mR*GxzSzIFZtzYL^?ZLRecd0mnX8s2YaclImeG@I!Mq9Ac0~PnuV1h7 zcy_(d^NrlRJKqZU8u9vWZ=9`bGe7Yy-@2#;)~ACQ)Hif~Do)vzX4c)n5`JuJeba~A zIqcUCXVso5l(so9`8V{DetE|%f&UD7{eHH$_y1M*{W2-H@K%@p$%AWmPkmAMNO{f0 zy;)~gNLKIqRR2~|tf9E4`ceM5#8<)dw^Xg}W3-NLKAy}Ux>IIey3=31`4OIvX4jwK zWj3RC1rPZg#VNbHlCRj8FbP+Hqu>T-JNgEM@ly)-1>Pu$=c(n2BtHOH9Rk|Bp#ROzP&$_b;q}MHKvPqI>ZB$7RZ#e z3Y4y2lJJ?6!TgF%TZqr(H%U^l8qudVs7`rqFT9FR>2<3ADr@;``vbmDI;e9$wr=X3 z;!Bc#A;Q<<9#lzKuZ_yqd)~;fdE*1I#J4NHDj3Y+)mvC{~eV!;0<7>uulfD}Md<@;q6Fhgp{2nyU+T zoIlW9F6USKfIELH`wj0u@2A&!+aG!S_|N<>1_rfF{(=raHXgLJ>`{L5b^4>9YhTZt zpHq5H((kloopoN@Dz`~bLu=hj11H#i{yx`5S<;5lBI=j+M{Un7<| z4%j*?XN}?0yBy5V!dB0ICiBVV!nG>iGKG!&p+@W0pWOK>f2G9AzX}_w9voTb{q4lk znhRIbGi_GBwH8_QvqFcve9qAgD~bHhE+o2=3burk(sKLoh?9 z#r$5jh1^nwKa$Hb-2?b#&X^TS)z01}$a2u%O>)MHh~|4~va3&iZ`SLR@(H@QIGbg2-;eA&4^^2_SzS8{O9w%U z=Y*xre+J=tuRk+lU6P}JdG>~`5Gy#s_VY!Oq~(cOb$6Fe`EB>R@KunV3$xPX9WrME zS8Bhg51LW7G(vpElWM10vDAalja43ZxP{06k`TJvF~NC$<%Ggp83sp|y*$#j;lS6~ zYZPtf)INH?q_Ja4$t$lZ&+X47v`W0R_?IcLIP@6Loi!0}&N@z;#ol@I=whSPXDKrz zjh3D=(2-no##_LArppPH#>rY4oo=k&LL05@co(e?Eqk8eB=hF`e}*k*cWlb8lYdx! zVBg0%{a%8{Y|oVLk#WP^Q#n&R&l+F0hkiGuL!|M;Ggsxs47`Rbx z+uepc@;m0HzBCK|+EBB2;yi25%5b^2rn6#`Th{jKlxs3u{OEm|XS(0s^Of>U_E+ys zpDN23u-`al?YFm@^Uj6e)2Ae!KhbxiXpifg%l{ctRy^TzS!+A{<*mA<56;yYg}$mR z-jL9E+ur8^`Lpl{%B|cndt)O5=kcfi?B&((e4A4q5r+wPF_taM$sMq&vzqI%K$vL^P@olv;)s-!6pBK%VcP`XZ?z5fp!?R^G zRtCtgn)Agt^!c7WyCo-8{Frp4>dxYoVX{3-C10QEOA1-K^O(c5J74GWiYk^|k2-v5 zMM&)#&uaz@f4uT;&MIs?a@d@?$DzI1Y}-_Zl?n$-r!5otTHalu!uHMf!P=N~?Pjqj zGRIb4VKTdAWczm^x6$V#6K7}22ML6H7c6s9Nb}>_z`tbxwl`D_)SV=z5__tyw zgLpvyr{$S_;eUgd+Q*u!-)0MTQ&_2Wn59(c>c@jG8PofJge|C=cO~({tTRWg{_0-K zS@$)~mW|{5i?qV)vtER+xOqH~HNoHf?CPGs-WsiiQ!Nbm&g_xY-fsLQQJ(jjgju>t z{MHQ@uNI^w+kS2moM_fi$i6H6?CpD*$B*?EKTKzjE!ZCXm7(*X`V#%_AJZpBc>UbC ztET3hYSL+Gy<*F+WsmQE`1siL!uF7B%O|^q?R$H7;g%|ccgE-UACa5xcTI+G?)fdR zuXIPf4g7U(lI5Sd9ydcdMBNysonmVcKd4&&YeqR2r>tbX_!XOj4!*1T&3DMqYLk9! z(Vd!I0^wfsM0nDlDV=gZqHQ6dpO&(&dO`HNq&LOf#mtx2#7s82^x3RMm__Zi%>hM; zDMoy1Z61>)pYghEU7crD?fft==32r1M+vf(Ggwyh6eNf=sd4^j^=|%fN4~yNvbvL@ zL8w-}S?94$r<>#T>9-u!)K@-tJfk2i%X8f*w8PzUs!5e&#L zS9#%y*2$=TrtCy05@y_9aSCbqYy@PzQpC7*S!ytBMzd*s!`nGKDe2bhf_ z%%p83%r)lh4E&T*9(8524C9rfeKWGwf1Ym_|CIf6&EEwg@v(D4)+Wl9_1Ra1t~+fv z>!97?`OlZU$Sm2qHoJwrZ|?q#N0*Ky@bD)ZKY4Gbf47jW>r-uN_`}M!)rV(1E;j#n z&wl1jshH9>UpsdHd$Q^_=NFV5`*lU{(}DWwYUa-jB~saD{BK&thNWB0q$S>|-`-N~zl@o6huq~UQ`utrHW}Trig-}}%J96! z)%PF1bmx}p8Le7;=aKr_e+w>U3cofpPiVG3?|Cq*TV|umpE;*$%TM zzwW=X>#X<0uv@_!Wai&fn3h#~?X8(<{}pZX_${nkMRja<{e95pcxJuo>-DEMFOAn% zYz(q$QqTTMyx-I@v+T)+jX%;;;$kC zMV8%SL3^4zqTU_ny?l?ijo-7`Xv<;NJjX`~jW-UiZA}zCEY}p1dLw?4qG(88L|Vdx zY7TSe^-ASM5^sXfrTL!VGhz{+aUi)ZK3RM#TRD^0foe-hb|r@;O?TTP*6MEMgoS0Lze zdUx&vri9zsP1AT!-Jd3S`vdo}-G?v!XRw;I#{Tw?BX6#|v3wHAoHflnV=KFFg3N;t z_m`afm@m5M@{ZY+zxpNTd^)~--qU&au7rqqb1^)tWc=&8j`@nXeNob_{#W(_Nlv!} zYB;h_&%b@g@PJK%U*75?Tc*shTeRu^BWd*?^P~gUTzTb}zwfjiw~XKXhKj-~JFi6S zzvbNepW)2?Z@ub)FIMe{ejTbHe9zp~WzNjd;M;<~Rvi#p`(pPc1B;Fyi&!t*sFJh4 zSH_ic-tuqyia&N;vqCp~+xO0P`oCvdew(H&t!VpnxbxVBA5;H%CP&>8eswsp#o*t< z%Z>jTn9lq?a(elE^G`4S$#DmKeVKhX@%aW>pXafEofCtfToHaUXXc6Bk-6`pj;YLh z=Dok^&z$q8zLr;R+nm6A+(IznXh=`#taB+xHYK0E`e~P3$}~4suS02Kt9xt88Ydjf z+_BA4<@ceNc_wk&m>gsaS$8~MvqIL^Z_`|_wwmd3e=N?ssZP?1m^sr(+BN&O-Q?r9 z0(Snh&+HMrlKfsl+3u0StuNl0_L=)Ox~9cE%FVYu^5U8H+{N!T-Q0>9QxER;S=wH3 z@=?IGJ0-IiCiY!wl$aIP=*sYN=A2v^-^r6T`YRYy&nvGHdlq~qSz?B=0h_dnn`o8e zDh4;j;>J$VJ&$6JrJUhTHoBR|cyOxeM`p#Fl{PM4%WipU9nm=M@j?`pJC;XtgyEr0H#4TXeR6L(38F9!a4MDbuwi zBP?EWEH{W<+T46(K}(9`2Ilu1YxwVlHuoHm*&2IXh;g!7L87EWbF<2(qEv^Ks-22L zaj9t`ynJaXlLA#Hc?iX)d61*2ryQDoA%@+UWFWhT&JIjR)Bo{vKHp zSFE5Ud{0JzJ%T~4&1J#uHdP^ook|W%4k#$au?VmmEWYO&Fl&m1#3Yspa;m~wf;$;! zo}9vYMq}oj{|o{(o0e}^v*CFfcl&MHcVpYo#RrRG+^d>5+4y$Z*0`xb zn>_A(5RZQvv22a@`e%aQ>-DzfC(b;vVOrAhmCv$%dA!Nozv_>-e}M0aA1@+`#Xic* zT>sH=yY}tV{|vvbxBlIIE@x-kw`J^+D$_Z|6mAwz%6%G}JK95-;>=JpNFHKk6kl`TpRi&%~eO*t$4mgSCv z;uM)Qy=xQi8(r)!YdENsA*UviE;;M%nXWx2=bU-o$@r~tjrVOMew(w;SPPBZZMNq+g8?>v&t#H3I!}gil-0ePxR3?2eD7==&`gh5MiJbu|lRTNd zj(R9>*_~r%_Q)VjWvcL&Hctgll}RjgcD zxj6^!99Bc#=%`DfiZL7>H@L?&n>)jr5g#BB?XU8XfiR;dWnI`k}o)AoPTH9oh zZgnL$W;0`-T8}_l9J^$zO;1NCv+CNekM9*8uMyt%?3{r@p!Ke=GpDPu*(C~khOs!A zHuSL@b1<86PHYT2*f>-5anA|Hx6DS~N9J2j37PCuROIJ5wL?^8lEWlV6;3dvFQCtJ zV4D%kq{Bwd&DYXcpKp&0@?_qd`f3rwy_m-fniZx_3}-7zIJC|^a)Tk;+Rn8<8+T4t zFzRezKJCpc93gq;D={z&nr5>vS)m|z$*9NiCu8GDd!f)?wMFkW9`O5Dtes|ierLPA;Cg+Lsglq5 zefp+-TF&0ttueX2$%(un1R#mjp_i3Jmaf}whD8fN*KRTnj4FZ z*MvxwuSQEB%)2Du@GLNBDX2{G5b{)=A*!;uhlj8FB$M}CBT|-`L?OzV6J7coWX6EJi;0>I6;8s+h3q zg8Vi6CTkTd8gZYwG*5wZR+x=bS7C=yLF&8L20v{M7+4A|nA-73(9eZaLoU_uxM%dv z76C~$$441n#@ad8+)`5{M8vdf^G~WPZz=xL9RJRkEhfqPZGx534&~2o9Nb!CZLtPWw+n0b5;jTAFfvTaAWcnrk!Tn z<9H-xPU}Q7%$wA4fGu^|c7Yw=XH37sUkNI0m^@XQSdL73(ik!8R&^&s>(@;U{sPn5 zR?k~5#M&NmXWJSm$w{aeKUn+dOs8T7cBxdj-QonWga7~ntv$~uU&mcli{m4QLJUs4aW5Q9|B z;Pn^YPb#xOnk~SqI7Ap2oF2_$46W8=U;yFo^@;Zxz^gbwmLEp4ImFdDL@y*Fgn=Q! zWWEOjLuqklUb;eXWpPPrt~Dkga;idbMq*KcbAE0?QEG89FIP1$mx6+VLS|k`YEfQdjzV!sVo7GQ zLUK-Gaj`;ZNoG!FNhL%HR3%7tL1|J>W-?4|P-=b_yZ+Fmam@JB^Zz z%wh#k*Syl))S|?soK%pC%#zgHVoiwQAXAYn0C9^_OG=CK6!KEb6<{Wz*q{N{uNRW< zlUZD%p{Z$&FsT;gWsn<go-HU{hS0o10ivX@^h)5)Mc$O3N?GEmla(Qz*?V&P>ls zO;Je7EGf?{PE{z%OwTA$D9*@CD^V!VEXhzP$w*ZwE=WzzOv_A7QOGOJO-e07HP1#L zyFE4qiA9OI3ZO`^Rf1?#vhxEQpiq*pkYA8mlvt9gke_Fx4_1lhOcd=&nI*+ac8qTEWg%!2n4iD9S(>VmCCH z73}Q51|r2VNKI-^aVjDPKq4Rv)d@ErqE%BtTS3D}!Nx|R4ito=$psW^gCn`* zqZcU|U@r_{i4Br;bQD0TPIELmOY$M*6n&!;9Br@|0dru{0xAo@v4Y5)Xz@8v`QK-> z002eI0M!@ZM1nQNfMq}~qi+%5mYI`N46geUi;5B}A@zJ>9;}*ARwzr%DNTjckjTQB zc`2zCpg_bB)I%hBPz!^o76I69C2-{oW`Yb(N>xb9%*jbj(Zi9c!3_mylLAzOgPjC1 zBrUV3xI_UgK(bLK`CxqzgK`qdHm58x2Vw>!1WWS4-a!j$EPg|6V3g%&rYL|S3DkxR ziH=nOhYzHI0rxb73w5}TLI^0*G!@D-Qj1a*LKLhNic5-0lS>fsf~6<|8>{D&nwMUZ zp`dIXOY8X{kl2dC94+70IaupjNsDati~bp%&o+5EoPe z!o8qirvP<7Qu+s}!fUZ(QF>`^YF-IRc4{CjwNWt8RH&&@(9nQ%IrJPsnLra97@Dxq zup!4~o}m2UUs~dy7L=HmPJE!G zPyuai!XXOwa5UJ^SOr^9@cl%(bsDA+0(pyej8aE&b_PNEC)i(?hk6bvfT(y*zsv9VRKz$Srg zfP%JyAvFv!qJ|;HI1GV=x&p}eNd6(5q>D51i%LK_0oD)!r3X-KKmrg~qRz=IDak?V z9fMK~Bq~P}IcS6n60D$P9t;X#A8>F%0*KVK4vkr-%o6APyt34ylGGx-kbKX)5<@ds z$p*?Rq{Mn2c_rCsq=Uu`@ef#mqTDmDgeDPgY(#p5hZkjnDk$U_&&(^y2N&OjvpJ~l zN~KZVg{U7ug$EJ+5OS(3tUn7jLr1~LL{k%5pCLD0K#h60F_8L-pizcqL>XlS zYP1q?l?72I86%qn_766%;Hk2pX;}eMxPnap6=cLFW^BdR$W7eJnQ02ao<3o&K|Y@D z9wDHfnyFa~~LCFfXu&GpdZJ~jb zgkaSLXof1K493&cQLw-?4{S9!;VHoD4d1q~z<&^)5A4;pmRNLBz3rGN*1;ED|l zG!+y<17Ao%5Agw71nBF7gyB}ARb^=6+6tKUWJ(#xWAKVaL0cgi)0?PS0X2ofCvz3R zF$0>s1%)!W;2EuLpd$z1&>*ELMYq}p9#=>y4K0lgySj!5KU1rw$;>Muubu&AYY@g# zocpHc2B(%l7IA=9TiAdi$W9?QH5bx+hKx=@*g4=qblh6T>lbVkAbJ(F z6)-e{9D|lHKthNyV({3KLZ$+SA=V1o+L=gB0BHkZET(~kLC$eZNzs6`p$*VWBajlL z@(7I!ZVe*}C@i7pn34h>1qaPxK-R&atYc9~Nd?tqiJ-Aa9rQIa#rdU0$*D+QLGwad zeo<;-a)yFNhyrLij6!Cf0)`flgVD5sgpjP&1Nk1LAKmLn-Uj;u7H96ZazXUX~1hFkYDJwO(L?J&ZO9wQa1zx<9n2RS} zfO1)WQWj_~E3Y&s2g#i{0u3>p1)Eg@*^Zc50DO z1uX?b10$1Iq$CH5bx!hsJBzVup*Z0c0|Nk_9-_$r literal 0 HcmV?d00001 diff --git a/tests/TestArchives/Archives/Arj.store.split.a05 b/tests/TestArchives/Archives/Arj.store.split.a05 new file mode 100644 index 0000000000000000000000000000000000000000..a75c4ed3678a94d4587e52249634bb429a92f3fb GIT binary patch literal 5014 zcmYdzWzL|)&B!glz~tmKBRLv`88CojQI=kDNq$kPUU5NAW{F;+fhhw+$A+Vk3=9dc zEEx2-8M!4G7@Qu>VhrUMW?%r}L&yAUImFdDL@y*F zgn{9-uF_HlhWyf^15*1vHSErl0{* zpkSk5pouA6jVS~&AgL%dF&m3%wV28iQ_2$al2aXXK`v0xwFNr|i&l_BP}SPn(!fcz z3gsD@IjIU7B}JvF$N^Hz%Y|@!L1|J>X0k$YNn%N6vO-yYW{N^^c4mQNPL4)NMrN@> za7j^WVy;3lIKYvD4K28mDoawMV-+BAp7BeBwEO}JF=)tQ2}_VH)KmpSG~a^cz;JuKtW%@%+%D_Oj8Hp5>TMy#Aw=8q1rJ#1~Y(YZ-J{=%6w&PqzU#E zk&em9&r4SbDN4*MPD?Ec$%o_$lopK+tbvn~T3nKumspaSpNBihLG^fatU_W@5xBB} zH*!o2EX~l{H=yb(8PpO)E3v?CD#Mk?84u0` zAmt#8npTqX^K%qHZFslRoSaJ3*a0^?bs%j>Si2H;#DD@DY%!KF1<8Th{YY*CIRzHf zASqBtgDr%FG^A~*qX0Hh2eo0TpbHV!)Kst|E!;sCp}7I%4p6}hwg_Y%#AaC3VrE#h zA^@ZxgkeEnRGNy#2DErW<3jan;BW(yd3a*7xTGi(oYgXO{YrCkiXm|c6@|3maYr81 z1rTL=L8%2fiOH!N>M;iDItuCv>Y92XMVYx8$f*zP66MS^g#iDc5Jx8;S42pmrZ8}S z#yP*B5|;Uqb1*!0A*FmB1yFLy%u7kd)9QBw<$pbpu}E12&5)GT3LQv60gFxILK0j& zc;pwCgyj3BmXzlgW&0PUq!wv_#WV7YO9+OeMrK}#rUqDpCKiLh(r5;O(hvx%DU{|V zXQU=)r=~y+&_EI>1-U^}*HBXvT-g~LAwnIb8H8&Tp!#rGtO2(k)E6=~(ggKdkn8|k zfx}Ytx)o$02%|KU+Q3RujANPtWwoF2exHKAStX;Dy9Ffug- zJKO@~Zm^fZ5_Wb97EoEV{04Fx2&1|W6kQ6?bQ+Qmawk%1&4Z+0f(`^}Lrd*2t;B>8 xC}y!Z0VE7F29Z#)$2o;A00%I(V1P(a-4)8Ic`2D`5Kq;b&YV<4{;3+(Q}P(Wnj3w zHcE?u!8d9G12Y2y0}BHK!~g#b3_Cyy85kHGpfo<}1Oo#DpZqR9hAo_D6?ZWDoK+0T z$ShVUD9TSSO3YPAPRz^8FHuNJRVXUWQ^?FyaPbdT$jwhl)#K&mQh^%Gc~dyscSo%S z44+$4Y~i@0)?(@Ma*OmGwH6|?^DJDz@--GBVDU1G_#L$tL7B-JAU#lH7y?`w7SGqN!-6fiI_G(bc-4H+011Ympz2wMQ+e~=1LIDlvd21bY+0|PjG zz#Nc1kY+Fq7J(>bU|^8wWMD{v^Qg#ZU|`5##BH8lNoqw20|SFp8q{APze3#y)1|<` zkf2wTl30?+z>orx1BC@Bfq-b3B1oJ&=s}b*Xn<180;riF8dco^BpjuFh~Yd*l#e2l5(Wa%B_1Fu=74>aHS->oar z;K0y&fWLJE0|P@AQx-!O!~d(@H(GC(a%BiCbYOVN%*eoyab%SPL&ghc28RElYZ@FF z_A@MWU}!%1-}u0%b>A;){|xB<-hFXDNKy02|DV=%pYlKWlIio(fPjDiu-1SqrtVW& z0vQYp{0z+xnKM2taA3%IvcQ2M`16wgq8eZqlyYU9Sm40$axw!0L&k~)4h%aho;onR zP!(Zd$S6>DV94U?KJns$5CcQ^i5Ho?5HEMTv+SF*z=44zFSi~jt<7Qz2>5@s^*|{* z*psgn!A=7^Dd4}TOoIbMz<*H%h`V$$8sM&(E{yCNCx~lq^Dr>P$HhiB9}zg55d&A7 zjiOczqINwG11OI6g^=ND*MM#p6^-zK7gdZ549!P)S`U;Oy{JR7yw^uX!1zGmaTgU4 zP~aYSQIQA`a$x9mQIY9%QBn9W%F^Hfcj*Ke2n;j+mhnKsfdL#X$5|a#IWQP7Ffbfv zby?-WzyxM_ta1R2t}t|(`mAzb=rj!glObR-VwD5Ke^HeN2L|h7i}$Q@VBl}r#=yYP z?V}>l9iqb1>!QLE5E%60CL_26K2wD68>n~!t85kCVG=WtIAge~V?Em$6 zuqCjNfzXE`6r5~)vw@L;p}R$83nK$VaA>zKLxTf@@$InYAB^G0T~q`>*`%zryGP{& zBLl;JP(*hZvUG`c9kLQHm9aWpBGMJc*mcM%oUxRz`5064aVD$7r4Qg4()w_zWw#|# z-s(Qs{T-aOz*(yMgzXsfQ7)h?fXT~?u(rvDgv)PdVN%60<#!{Gaf8-V8~!% zU}*S%wcABSrZ+@IAPAfjgM%}!ECi=+fd&U~9C>zvA_}DOzbFStEJQ_M{{>k7?%i~7 zl>-ALmv@$^$bekaU85p{-7y`rcEVNnx~Ld*U+n(Azv7_-LjXkmsSHL?(gnHyzi2=s zsNgA4dNKRo|Nj|#7CJDznE3Di|K=ksJ3tWw%2AC+KtX-D*GEMHi?<{o-UY0qMT=nwjTt=mOKq}vu0 z5CQ+Mzh;9lyIoWyj8B5B>-14kfP`eHkBUxkaHo%oMaB}4)tx>nE+Fec(GRh{^*~7( zC`hds~i~6{lwqW#J~V@mq6NaR*-Hc21p?v zoF$L};-?*FRa)i1zz}eZ6=Y(4hpg%<2Zjz=wN(xb$5_=tB?-tiNPff~IRc=lfP^*3 zk02KX{J+)>QvCn=YXwkjfU+CNS3zKlVSfFO?neWJA59>Bv;g_B2kb{1LVg74M)o6! zpLU$p2YT~D_t$n=c=|Nqwq z{TGdZ>AU{x|No2#kiN6Ou-cW80Inu{8XOp2tO6;v0V!SpQEYqwDYt{Fgs^T?Pyz2z z>H;ph!y#oiq>Km6ef+<+Fy*NOL$_@RID;Q&O?V2aph`HqdDpCSUXHGbQAfWPlF0|P^FSorQ8o4}bs0Ay^p zGf(S*y5Mf^){`Z^3qeIkck!2*-)%FVIxx7+{Ql4SU>#HU!EWydSquT)&VK>||BHG+ zBBeyG^+26eH@EhQPVVmNKiwC5P1vD@BDg&7c4lckP$JrBy*!bDp_aGXMMa>SBk;c{ z$b-$+45f+?tEIY~Ia&|Y3WJrG@^lA3$YKooFX{lv)B<4VyEY$UX+CUV{Q^`e@b`H9 z|NlQeE*k2|fCdMK*vLa7h%jh=qYw<01cgAiC@5r&Z?|6J@0-WSzz`Z1zJJCh2Znth z|L@(h$$_D>Mn$KyL`CJei;Bzw5I;vn1Ju^o0|_XR0}xu^$R-B{kUyF&82EeHL3O5& zib%611Ap%?Q2W3|MFJ$#`WD3TWe9wcD$2mn%?q~uK=Tn6>l2_xOP$5eHJcn5tPht+ zc893QbPHJrektYa4pC8X>I_j)=oa+q6ofe0q4}VJ^`RP2g{RPZpp@-DFDO>J*#aPe zm}T@|)CE+(@qr=*!~lEL%la0`oLb%PW7?N{^9^?LfSmKS`2fr3rQIA}ogRO>|CT-n z+1Fj8qSIZXqSBqCq5*2$>;N^Av`=_L>rWBw6V2~fI(<|`x_wk6v`=Wi==4#M==M>O z(LT`$wyG1v{_&a>tPx~_GxLe&V<0U8pi+(b1T#nrSUd9x<{vQa%qOgGfr7g;M@0i< z1St6Vdlvr##cC`x;y|$)-F!p=)K+PJV-gH*tG|#JVE{G$cou?khw*Jtm>%YDSoDB%BfkmA=?-M$Rn zVLyTcgZ_(}fbxLbkAVN8E{zThopCJ3-8laL|Np<+??D!0AS92xyb6k4TabAx6iWD@ zDvrCcfQ)W_z*r*EXa~xGH9SzUmrEEJ7_1MMa$3f*@V86{>1MM9so?MJVqjp{1!4wk zUkK_B`@?)Fpc`cU_2wV{OW3Rr*D*1&S;leHadgJ9bo+5wpRSFzjN_?Q07*+*AFdPc zlR054+{+54#!3n6_M};Hs#VbKj zpF6SM*{toviw{}2_P<|8cK$1qCI2@{&%_ylLXSmeO);?fsz(QkY^I5;@? zzo@pag7vn7>a4l!QTrnPn_XjYzlajouIygP`C5Y^m4a z^Xe`a6@wKDCCS~sH@ZzhDJ(eSIWx5H9QgklC`P5M57&uxhu%Pv2?EQMKI?Y90ZqBb zU0J}%)|CO|h+a^V^Zk&;1Wm!6u|HndtY9puu#9D>E4GaNQJRNtpeV@l?iZa}=Sw_s?A^E@g|Nqj<-L5yX7!Xbm z_>VBJbc6A2l!OLPWj9e%8Kjla>!V^27#su%uWv3Y1|0k?x=aiVjkcgd9#jeN_i{5a zFua)g>Hq(X4WM}M|MdSqM04{I7Et52*GEMmU>~TF7Z}u80_wyXfbu!Gn&{>6Jou2M z`N#jxMo1Gi2C#I8sOWThaC8Rnyw=W`0CLo?kN^LJwKX4MF+SNV;&AX0 zOXDH1Caz8|mQF8@PA?whMi?X`A~|ovCI^O6{TCZQ{{Np*05Wnpl93PtyPH6MfTn?$ zY>W&HVHuznAGCFb$Wjo)vkU_|S$aVQEX11bi6A?m#ULn$3B7Oz*_Hva&GI8SV}kt< z25u`uJl@>_(iHe#RHG5v^vPI}$iM(`Q0FXA+JA8iG}Z#Hzd*kK*2@!g@F9!!<<3TM zQ(z{jbnl!As`~5Xc7ST??qA&*U#wSx8V03o-5PGLof^#t4E#%9T7T}`2vShW_Ma70 zGcN==-YEc5H$v*@*FrD)KK%cmp#ySs%LlNdU&MU>|KCy;RE6=knErtkT0DXOMPKMz_Q1sqsCt0Z2GFJ;xDk~BTKfV?=G~y~@PAPcP+L?EWFHU6J`sq0;35aq zE`;H39~G9D#~B%5Ev6TsD(j^f156-`ac9FS2Zk3utPBjG`Zr^PvID~lIbH^aNDz0z z&JK|5eO3krFzclm8%!s}hS2UeVcj2JfX2OA50s>JvxRp%urMEMt}tLIk?C^fXh`K| z=y2ugb>#}k$N>5D+>1F(3=FSL__x(^bbGLbzc2$0t^D|3ssz#7?PI{w&G`iA~0h z#SRQF{CF8aotVf{gv*&gF3sITRL5U{|48)_pAQa9D5QkMQ0)j_&g>8bK~S|DuM4f#I8r3J+rmd)SNZ zTnr46-N)iVHR6tGr49@);)NI(0t1^K}$~w*RFZ-3~0rSqut5(aP5C!NPp*g#!x%L$~jj<}?64(LFUKDs)h--AK+2JwR|Rq2U1lWbNgz9K7sz=B1aUgA1?0Q{ROe+ebf5cQ%JD)0 z6mV?azF$C=vlujhoQlI;Ai0;J|Ns9F?S2y&7#tSf{SjnBwjcw;|5BdrA1@LG85p{6 zbhAZv#)AA3*(+k*%VW^(Vqjo>sEkwlu=epz*FUdWK%w)^QH872soV9>f8Rf?2kI=k zUH|k(FoM$#^D+Ky9y)>D9xN|x{{H`uC6#-FG~F)0*d6<$^?!*> z5#x}I0ZoW193{5hwST&g`?ntGto>7G;ErzRi9cBF^at7bzx-l1TQJD84lD@E4&$_p zsl>e7^-uQ+kJgiQy1f+`{)@q3SLroS%8Ldiix;d63=A(_85kILoC8JkO@0Q3z$}Xw zN*ti{d7{(zgYg0D6P>PqO4zd)U$`?dFf{xA`JcrY02yC@@b~}!Zr?Akbapr+OT&TT zMFL3k;jn!TpicI=7n1+}|L;EcqK1)yA?`55LS+U9$OwJ+!PWyMTnj;i_27~s>wmz` z0?^34I0FO2;f$Ri;{?IRfrVd!mJxP`sIWBGsBkcJA3W|P1IiFJyvLmsKxWjjG$XVSfR#;Wd--f#87da~-jNUikj`|GyiNq$hxqG${HzYYb$-;R*|l zLo5tPrGN}1o0TyjWwVWJAj=@7KsP*tf=qnr1G43y@yX*1Ye0=s50>K&9H6nuP7j_= z4}ne(g-#EZ;|?02Qt+6AjzXu0L8pfdxEK?G*uViUXZ#^HfQp&0?vKrNG7QJrKn9lZ zcKflko-ASOX3S#zF90epj=O;^0GEXzg=k8;T~s()4|KY*l(03Yar}PG((K2<0yX!A zJ~IPDbD9Z5v!B8L<7{U@K>{iRyFb1#Mt03XR`KR_fwdAqsJgrS7}g**cT!)w+Tpg{&ulI%YB;xouN-!Je|4-^{V z&2*FP{ z-REA|F)}b%A1?{&_Ty+hS<2t-CeZ07(dj1B?IzOcreIm4!c!vNda_iy+fByWO`%x$ ze~AiD_qi7jfBgTS#TWrD-+NtDc(ND+{+AiNI0Lf$2v745#*&BK$6r4H6?I@sn;94w zS`UA9wO_cc4bMqmK23VrK0_hd~v!iwZ}u@$E3}!`&ZCcs)wkJxVpQm|inwF-CWv zd!YnrIh2S7|1VJy09n&70Co+iP-SjD@jov55D!BzDB+#>AKvX}V10tWMJ(DsUNag0xBgwCA080+Vi6D6BWV*{F zw0|%k3l9i;Q6vOb@jABqTxXm_XPiuDoWcw1|NsA6AFd1Nt~2O9-+leyPuAu~^4&bW z46hs*x?(P}d^_AwBH8Vy(H*8^eX5wV!IG<#(ZTWc=WmCZN*Eo!-^gMN2!C-B5?CN# zur{Cg|60)acC#PP|IRp-&Nz+EI33V{V>BprffE;3bDao735)T8*BX#KQX<~%qr%gA zvW}nmL>5C}K=-*9{}~w=UbDjnA&$j?D&&L4C!0NZ{vT)f1Igf^UIQp+i*$NObb81@ zvUsP5MyH1k$gUSC`MR75IVT-w1DWx{95g*r$HGv;*Ig#i`VG|1@CT`jJKTM+xk7-U zR2|eBZ9Q2c)*Yh4(R!(buhT<-`BZZP2ScZa$ZPK74&Xr&P^vk^!2n8|p!^ox9m^Be zeb~G8KzR4Z64UNl4p15_6@;dE&My8Aj{j~luLbzG@prQYcAtZ^9ZR^~|GWMH>nlCi z?fNG^4qV~DO%3b*7!ES1#I?DO2UNkb{SQ#+bmQrcPCap%5}Tx zfZDd*ej3^bJpuw9178^NGca_!X*3_<>5%9?91SXzyB#$w9aW0?JvtpVx_nevIym_E z9emBrzb{0ErJFJ6e}Kv%7LZd|USx@aIw)D7ras4uc_2>Y;jsUvA6_~zybzXPVCWVF zF(bQq-@J5S=>DkvsreX-^|82OtDqNO#2FZx4+sQ6RUZ}wXXDlbrHqFm%C&hxdKZI; zgFl&ic{(~FrnsoEbTT%xf=pyN{J%tnh>25qM(8_60EzF zH%sEhX9fm_g&?ycn-w68#UK+7hjzco`k$fE_1mb@JW-F<%HQzVg(8A&cR~ z4;coA$kqd;99c3iW`W`ul#5>Q@qpGptY~mxSgi8ff#JmhX$FSHJ3vhxPe}%b7u^yJ z3@@&Wg53Jlfno8Nr=V$8(-%)282+0+0jYAn2kOxBbhev)AvC@ z;ER)D3=ENxhr3f>{4ag*;v6VQZ4W$kU|=d?ebFY%0Ex40vJ4CvAjkg~-LTjJq`n!h zC=sS;qAUYLBurI<1H<94?h+M_)^DYpVJ{|vJQH^~>;G~-EJJ+cG^E$ z|JSL72mCJ+cmZk)H6P)zK3>Y#?Z&gBp@dK6Z>Jm2YxZV89);%9|GV8dK&_Ncw)pPD zanXmf7+-)E7epQo4huK_W_;WDzon_dZwH1t--Rr%9T>VE{p;Y+WL8cPEfEU70sZu8HA8yuQ!)i8zlrVN5E@A3E z9v>Hdcp=D&uq=_*197G7J3!g|HJkOZTK4W^i$OA3ECDZmfdX(b$PKLrB1;vsSi(BN zX1#cbBEgX*^&;Zm|NoK3CwJ^v?7+}13ewWaBG`ODq4^+-t;I42hMHH#mv){2NgnF{ zbnpjj^E3HwmR3+z*3I$(G$P2-dZ3iKne%`1K?SGApBhUX7;3J>9e(lP-~ay&wj9qK z7#K=eUp|v%U^sl7(W1$Lq1zMG=3@_hv04z6eL({UkN^Mw|II}O(ppsf^Z$P&WSACI zPJ{Yjt~|{LcsgDGq;$)IGDbIZ%3?6>$^j~UMnt5$-;C5@hC|ZdaZxhJgPC0{;s*vKT;aC;(MrFF^UI`G^A4Vw2#o z@aEJT498vX$e1}Wbh}D)x<2T31!dxHSD8-N7u~K3ovv@do&MA>49%%O7(ivkan}#; zOdS|HQ@?cP{(uBXr|XU0)*Eow9d|tg>i2ZJa&)?0=ynz8biLB+dLf|OmE*s`e^H(1 zpxoV@dWNC7_76jeI6UsUV{gEN^)+X=>kX);qP|k zIqskWvMh@+;U+Cj*WKP?%S!FqCrtFXi}O%Jbqa zsH+&u)155SovrXcSpwWTjs^!*U~m{{%p<(JmZQ6zr#oJt`&efwN2lwb8q4N?|4Uh4 ztW*JwY6$rCvTU>TX=dqVX|83p_TZ>v1xfROeC-QLqn)K3AaiO@fqKQhB5s|A-M$i? zjMnZvt$(<21jIYSa>LC)mny%xdQ_zMF!Y0FvNn=&(qk$ zpw`lNM;1^Y3%sbLgdfzv1C9T6GVK6OB!dbc(1><{Ncaxq2_}uD;XFW8%thvJN{`oP-4{bq(o&U z1H*rY65*Ag1tTR)ug~^6{s)<=eeiIv<3Bj-FP!xU$^tD&?57)vt4UmRD44EL4TH2-HTVQv1;R4SIm^kRcD149;L z_lp2UeAgDpfv}e9Mkwl1U%-(5p2y1 za(7rbe{&^h)bL>UM@*M@xfrmlVB~KJXJlY7{%=_;&{_MVv-U$NyYYdSAh8t+B|KS7 z;ejt)LA}2tJl)KoaZr{9NWZDul?SB7^-pIl2Y=gh&`O%tH@`tcFn_dtd8~Z}iZ#1^ z|NM9T)5Y2FldF{dzw3u%47?5<91h(ldZ&U^YM*NS3EKNvbEf-8FIcbkk6za=SquRX zUU)z^^M4bA|Dt=qOCw60yIsF9y8f^}Uc=q(`bXQ9$J$k(sLS|&H%N@XwVQ!~!LpX4 zBtDBZ!qSza)aN)WEQl6^g6t)zO$G_*PFIfC$9sLhgoBDzP>GGOguC1IOJ^-dr|XZ` z%Mps_fU+a2A}A7UAyMv7!qe@_(_kUR-*Wcf|NjuXK;tT%wjj%1i)p)lz!h1L?B4u_ zCpfITlq1~Q6cktd%|}5ob*%ZB{J|fr2cI!R6B)FYWj@vw!1C=7BYz8clp*y8Lw7At zbFBbF_xY0aZ-KAfIR>X*itKqN3&QXtq+!pLc9V>S)IHfue<~eJ2d~u1*Z#BMh1p}7r*5h7$RS) zf!xd79r}ea^hd9c0Sh=iHSo9m0QEpFm2fuLbCt62u)Jnc`P~63s=GlooB;C)>w}%X zKlqzLt5UjM1-ck)r1)FbF)%RL@Ro3Qu)F_v6?h41-FaI23KUCpy9zioSa6lHHMwg=r67gf~ zyxrXH9WI8fuQjb}c}lq(YX5VUvL0jSdM%N~nDrkN-Tt7wb%X~bQ^EqWx7+uJrLO>g zll%Yw|6dDqGxwGluynDla42QrVd`MhuI1^h{n73E15d1j76b)bvx1^KEWEh5`$YE# z(5S#O`Cc3Fr~s%y;s54h$ii3>7Vx4>9#Wu`@*tw*wg3MT6$x-3OeWyJ=n+t<0h%8z z<$%N?sK4BLpoBBvMYtR&wJLP8gNl*Ay)FhU-G^~H?QruO7f_Lx0a_dT!h?f>q5DH* z>$g&lEa?|^U;h7(>@)>6^^Sv`4%)rj+Xhl;{h?T@A&rHhneYEGH&(8NAT`a$I9Ne) zuOIcgs0al77roNpz>wBlqvFKC-vU}X+wG#_(t3cuWhbaeHR#P?*}=fUz+nBMS4OXf zsr!Q^I5*S=?Pq!AzyNX24t53xP!r#x8Df7Ydv6EG3hRT#5)BC~49y(>k2$b%b@MkL z;AlJul6n24`8W&2q?+BY*}B1I8vk$oR_E5u-2CHziCLE~!?%NsC3@cua+Goh{1?3d z&I%=R-N(DngNn+Bu;y(q%ZYC8PL3{Lh7J!Fch}~_EY|;Ob{XG>c-H2||6Y?DrM|7V zkGZilma=Aji+Ih|eb@uk6Kp>4HQ>MK8Bi4c0FCd7hr_MmQ3dsVI_;W&FqN`3_^~*= z=5PMNT*}qp$HMWNrNNJ-!MXW2bIt7kV2A$~Jpo_t>;kD8LDl1#(C#=;6|5c`TI5;qLAKwL% zY<|g7#MAtMnfb(jmDUCJ4h;WQdS^H|FiiNb(kla^H`qHc+_86HU~q6?P`=p3*1_K8 z#@OM`*yYA_@Fi1+J5%#9=H}yI!_UAC@AX8e1*>9&tPch`VHsT21c-TV2VXL|gJgQ( zGQFM*^$rdUISvjCDGm+{F%Aw4Ar1}3`Dg()Xg%rT;~@ zOW&JLm;N{1E`1+5UHU(CyYzkObm{-n?b7$7)207Mw@crjPM7{ay)3<;W)brT<{z+- z_z&{%0tW|%H4Y982S8@Ka>T`-JUjv9+ioN_#OF|vUQY&)JVdO^4HOhmnF+lmhJSi% zEdM~mUj-5VynjD0{qtXCs)CaPL-+shH~*{jUT}0^==Frh$4^LnXoKQI!x0=GAjK0b z932=U932=M932?C+?bUwcDOV99el~;4+^<$NXCNP1(ip{(L1K*_e>y_JxD4iz|4WT zzRQgf8dvX_o8N4}>UHWCZUHT+CUHT=uUHU{iUHV13UHSw%UHS#OUHW)BUHW;tUHUjWUHUn? zUHVu$UHVy2;|1j9?*9f(4h$Af4h$Yn4h%6Mvte=J#@yk~3=M6Fe>>cnA-;f$g8T*- zgTxV3CQI@~&inuWBM+Y;JO7+;#-4v3IDzBqhBGAp#DM4zP7Vw*&JGL?&P3)Pkl}>$ z4@edE`~#Bd^<>!Z?7*umevvg76C=mdQ z{Z<6m_NDiX4?qU|tW5=0Ixv)ThrKYBf=J1EkR=Whk|KJYoa`$y~l631>7Q=%cJ2t!PHEsv@{ z7~$^+;6_I4|5DjzTTpm2l!%1A*rWgsE&f*7|NsBL6a=k)I1cV9F8uNmykUju|Ah<< z&;~Y<1r7`^&Vjb834pi^Antx}^H<<7XhZ@uk@!LsEWiU201dVCyZ}uBHy`0S9G=A( zZ)q#=%z>d)5Ht<&U-SiJ+u0M)`otO)9tKc^h;-WWJOk~X0F4Ef+JJ|_TMv{dLB`p` zdJF$pe<%{}W@|lA!u0<_^E(!6@CbhK+qeu9kfU@!j?w~+`bK6rfCMZ+0+L{X*4xpg zpv1$`33kSR(G8&X5;XOcsPGi?!p%L#^7<`k0;EKRBkV=L2sng5Q=Na}nqP1pMoLO= zz)2~z`%N&YGhoWd0BVBrwj|*zi)EmJ);G%>7?>}HS)ZyE?KSb#zSwKBwPKkA zL$ew~^D!Q;((m02-KJlbIWXAvF)$nebp$}1X3#WCf$an&A<(*>*Ri$}k%U@6s=RC` zBMG&Fgv@Pwk%T~7U|y@(_9F>_#yVaL+D-xqaUEv`*$7%8{2%O)ERO$|BRj#&$hg-W zAg>4hzZ}`^%CQ*aU(ggKC#Xj)`k}#rAv*RjXn{mG?}ud$43?q=%N!WOc7VtdkZ*fU zwu0Er2Y9TH6|-0hlz#2y@r>)`=>>^e9|Q@NFc}{>9Bh2sQuf752ZpflQq~u%l^7Vh zO+k|t#{aw6tPYn5+1Qpax`(|u_xAt)$lek*#@8=;S@wbwXTXa((165;NbAp?rXQX< zFqCp+alXiV4jNdt1({$WUt$>={$k48|NpyRM7lQE+mj3tu!uZ4W+$=Ls3N4$9R3)DT51sT^V7aw<=^~p=f299XZh)iH0s_Wk> zGBE6uc;>*60a~aX7W`lI3uvzfXcnf^l;N2JL-#)mi4vynAHA+W0(xEl1Ox|%zwiYm a7}p=&zJGdIIs#s-{Pq8T_lJa63=9B*Z`Gdw literal 0 HcmV?d00001