From 1555f09baa63350bc53ad0629547ae36e4b34eb1 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 16 Jun 2017 22:56:58 +1000 Subject: [PATCH 001/135] Begin port --- .../Common/Extensions/StreamExtensions.cs | 2 +- src/ImageSharp/Formats/Jpeg/JpegDecoder.cs | 10 +- .../Formats/Jpeg/Port/Components/Component.cs | 53 ++ .../Formats/Jpeg/Port/Components/Frame.cs | 73 +++ .../Jpeg/Port/Components/HuffmanTables.cs | 15 + .../Port/Components/QuantizationTables.cs | 43 ++ src/ImageSharp/Formats/Jpeg/Port/Huffman.cs | 6 + .../Formats/Jpeg/Port/JpegConstants.cs | 185 +++++++ .../Formats/Jpeg/Port/JpegDecoderCore.cs | 522 ++++++++++++++++++ src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs | 33 ++ src/ImageSharp/Memory/Fast2DArray{T}.cs | 32 +- 11 files changed, 967 insertions(+), 7 deletions(-) create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Huffman.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs diff --git a/src/ImageSharp/Common/Extensions/StreamExtensions.cs b/src/ImageSharp/Common/Extensions/StreamExtensions.cs index 6de94dd229..6b474b92e9 100644 --- a/src/ImageSharp/Common/Extensions/StreamExtensions.cs +++ b/src/ImageSharp/Common/Extensions/StreamExtensions.cs @@ -27,7 +27,7 @@ public static void Skip(this Stream stream, int count) if (stream.CanSeek) { - stream.Position += count; + stream.Seek(count, SeekOrigin.Current); // Position += count; } else { diff --git a/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs b/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs index 56d025504d..e900e51ac8 100644 --- a/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs @@ -21,10 +21,12 @@ public Image Decode(Configuration configuration, Stream stream, { Guard.NotNull(stream, "stream"); - using (JpegDecoderCore decoder = new JpegDecoderCore(options, configuration)) - { - return decoder.Decode(stream); - } + // using (JpegDecoderCore decoder = new JpegDecoderCore(options, configuration)) + // { + // return decoder.Decode(stream); + // } + var decoder = new Jpeg.Port.JpegDecoderCore(options, configuration); + return decoder.Decode(stream); } } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs new file mode 100644 index 0000000000..524e3b913d --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs @@ -0,0 +1,53 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + /// + /// Represents a single color component + /// + internal struct Component + { + /// + /// Gets or sets the component Id + /// + public byte Id; + + /// + /// Gets or sets the horizontal sampling factor. + /// + public int HorizontalFactor; + + /// + /// Gets or sets the vertical sampling factor. + /// + public int VerticalFactor; + + /// + /// Gets or sets the identifier + /// + public byte QuantizationIdentifier; + + /// + /// Gets or sets the quantization table + /// + public short[] QuantizationTable; + + /// + /// Gets or sets the block data + /// + public short[] BlockData; + + /// + /// Gets or sets the number of blocks per line + /// + public int BlocksPerLine; + + /// + /// Gets or sets the number of blocks per column + /// + public int BlocksPerColumn; + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs new file mode 100644 index 0000000000..7e72df8b0a --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs @@ -0,0 +1,73 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + /// + /// Represent a single jpeg frame + /// + internal class Frame + { + /// + /// Gets or sets a value indicating whether the frame uses the extended specification + /// + public bool Extended { get; set; } + + /// + /// Gets or sets a value indicating whether the frame uses the progressive specification + /// + public bool Progressive { get; set; } + + /// + /// Gets or sets the precision + /// + public byte Precision { get; set; } + + /// + /// Gets or sets the number of scanlines within the frame + /// + public short Scanlines { get; set; } + + /// + /// Gets or sets the number of samples per scanline + /// + public short SamplesPerLine { get; set; } + + /// + /// Gets or sets the number of components within a frame. In progressive frames this value can range from only 1 to 4 + /// + public byte ComponentCount { get; set; } + + /// + /// Gets or sets the component id collection + /// + public byte[] ComponentIds { get; set; } + + /// + /// Gets or sets the frame component collection + /// + public Component[] Components { get; set; } + + /// + /// Gets or sets the maximum horizontal sampling factor + /// + public int MaxHorizontalFactor { get; set; } + + /// + /// Gets or sets the maximum vertical sampling factor + /// + public int MaxVerticalFactor { get; set; } + + /// + /// Gets or sets the number of MCU's per line + /// + public int McusPerLine { get; set; } + + /// + /// Gets or sets the number of MCU's per column + /// + public int McusPerColumn { get; set; } + } +} diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs new file mode 100644 index 0000000000..5c4ffce248 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -0,0 +1,15 @@ +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using ImageSharp.Memory; + + /// + /// Defines a pair of huffman tables + /// + internal class HuffmanTables + { + /// + /// Gets or sets the quantization tables. + /// + public Fast2DArray Tables { get; set; } = new Fast2DArray(256, 2); + } +} diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs new file mode 100644 index 0000000000..f808eecfde --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs @@ -0,0 +1,43 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using ImageSharp.Memory; + + /// + /// Contains the quantization tables. + /// TODO: This all needs optimizing for memory. I'm just stubbing out functionality for now. + /// + internal class QuantizationTables + { + /// + /// Gets the ZigZag scan table + /// + public static byte[] DctZigZag { get; } = + { + 0, + 1, 8, + 16, 9, 2, + 3, 10, 17, 24, + 32, 25, 18, 11, 4, + 5, 12, 19, 26, 33, 40, + 48, 41, 34, 27, 20, 13, 6, + 7, 14, 21, 28, 35, 42, 49, 56, + 57, 50, 43, 36, 29, 22, 15, + 23, 30, 37, 44, 51, 58, + 59, 52, 45, 38, 31, + 39, 46, 53, 60, + 61, 54, 47, + 55, 62, + 63 + }; + + /// + /// Gets or sets the quantization tables. + /// + public Fast2DArray Tables { get; set; } = new Fast2DArray(64, 4); + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Huffman.cs b/src/ImageSharp/Formats/Jpeg/Port/Huffman.cs new file mode 100644 index 0000000000..75b6dc5624 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Huffman.cs @@ -0,0 +1,6 @@ +namespace ImageSharp.Formats.Jpeg.Port +{ + class Huffman + { + } +} diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs new file mode 100644 index 0000000000..236e38f961 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs @@ -0,0 +1,185 @@ +// ReSharper disable InconsistentNaming +namespace ImageSharp.Formats.Jpeg.Port +{ + /// + /// Contains jpeg constant values + /// + internal static class JpegConstants + { + /// + /// Contains marker specific constants + /// + public static class Markers + { + /// + /// The prefix used for all markers. + /// + public const byte Prefix = 0xFF; + + /// + /// The Start of Image marker + /// + public const ushort SOI = 0xFFD8; + + /// + /// The End of Image marker + /// + public const ushort EOI = 0xFFD9; + + /// + /// Application specific marker for marking the jpeg format. + /// + /// + public const ushort APP0 = 0xFFE0; + + /// + /// Application specific marker for marking where to store metadata. + /// + public const ushort APP1 = 0xFFE1; + + /// + /// Application specific marker for marking where to store ICC profile information. + /// + public const ushort APP2 = 0xFFE2; + + /// + /// Application specific marker. + /// + public const ushort APP3 = 0xFFE3; + + /// + /// Application specific marker. + /// + public const ushort APP4 = 0xFFE4; + + /// + /// Application specific marker. + /// + public const ushort APP5 = 0xFFE5; + + /// + /// Application specific marker. + /// + public const ushort APP6 = 0xFFE6; + + /// + /// Application specific marker. + /// + public const ushort APP7 = 0xFFE7; + + /// + /// Application specific marker. + /// + public const ushort APP8 = 0xFFE8; + + /// + /// Application specific marker. + /// + public const ushort APP9 = 0xFFE9; + + /// + /// Application specific marker. + /// + public const ushort APP10 = 0xFFEA; + + /// + /// Application specific marker. + /// + public const ushort APP11 = 0xFFEB; + + /// + /// Application specific marker. + /// + public const ushort APP12 = 0xFFEC; + + /// + /// Application specific marker. + /// + public const ushort APP13 = 0xFFED; + + /// + /// Application specific marker used by Adobe for storing encoding information for DCT filters. + /// + public const ushort APP14 = 0xFFEE; + + /// + /// Application specific marker used by GraphicConverter to store JPEG quality. + /// + public const ushort APP15 = 0xFFEF; + + /// + /// The text comment marker + /// + public const ushort COM = 0xFFFE; + + /// + /// Define Quantization Table(s) marker + /// + /// Specifies one or more quantization tables. + /// + /// + public const ushort DQT = 0xFFDB; + + /// + /// Start of Frame (baseline DCT) + /// + /// Indicates that this is a baseline DCT-based JPEG, and specifies the width, height, number of components, + /// and component subsampling (e.g., 4:2:0). + /// + /// + public const ushort SOF0 = 0xFFC0; + + /// + /// Start Of Frame (Extended Sequential DCT) + /// + /// Indicates that this is a progressive DCT-based JPEG, and specifies the width, height, number of components, + /// and component subsampling (e.g., 4:2:0). + /// + /// + public const ushort SOF1 = 0xFFC1; + + /// + /// Start Of Frame (progressive DCT) + /// + /// Indicates that this is a progressive DCT-based JPEG, and specifies the width, height, number of components, + /// and component subsampling (e.g., 4:2:0). + /// + /// + public const ushort SOF2 = 0xFFC2; + + /// + /// Define Huffman Table(s) + /// + /// Specifies one or more Huffman tables. + /// + /// + public const ushort DHT = 0xFFC4; + + /// + /// Contains JFIF specific markers + /// + public static class JFif + { + /// + /// Represents J in ASCII + /// + public const byte J = 0x4A; + + /// + /// Represents F in ASCII + /// + public const byte F = 0x46; + + /// + /// Represents I in ASCII + /// + public const byte I = 0x49; + + /// + /// Represents the null "0" marker + /// + public const byte Null = 0; + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs new file mode 100644 index 0000000000..bb2d099382 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -0,0 +1,522 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port +{ + using System; + using System.Buffers; + using System.IO; + + using ImageSharp.Formats.Jpeg.Port.Components; + using ImageSharp.PixelFormats; + + /// + /// Performs the jpeg decoding operation. + /// + internal class JpegDecoderCore + { + /// + /// The decoder options. + /// + private readonly IDecoderOptions options; + + /// + /// The global configuration + /// + private readonly Configuration configuration; + + /// + /// Gets the temporary buffer used to store bytes read from the stream. + /// + private readonly byte[] temp = new byte[2 * 16 * 4]; + + private readonly byte[] uint16Buffer = new byte[2]; + + private QuantizationTables quantizationTables; + + private HuffmanTables dcHuffmanTables; + + private HuffmanTables acHuffmanTables; + + private Frame frame; + + /// + /// COntains information about the jFIF marker + /// + private JFif jFif; + + /// + /// Whether the image has a EXIF header + /// + private bool isExif; + + private int offset; + + /// + /// Initializes a new instance of the class. + /// + /// The decoder options. + /// The configuration. + public JpegDecoderCore(IDecoderOptions options, Configuration configuration) + { + this.configuration = configuration ?? Configuration.Default; + this.options = options ?? new DecoderOptions(); + } + + /// + /// Gets the input stream. + /// + public Stream InputStream { get; private set; } + + /// + /// Decodes the image from the specified and sets + /// the data to image. + /// + /// The pixel format. + /// The stream, where the image should be. + /// The decoded image. + public Image Decode(Stream stream) + where TPixel : struct, IPixel + { + this.InputStream = stream; + this.ParseStream(); + + var image = new Image(1, 1); + return image; + } + + private void ParseStream() + { + // Check for the Start Of Image marker. + ushort fileMarker = this.ReadUint16(); + if (fileMarker != JpegConstants.Markers.SOI) + { + throw new ImageFormatException("Missing SOI marker."); + } + + fileMarker = this.ReadUint16(); + + this.quantizationTables = new QuantizationTables(); + + while (fileMarker != JpegConstants.Markers.EOI) + { + // Get the marker length + int remaining = this.ReadUint16() - 2; + + switch (fileMarker) + { + case JpegConstants.Markers.APP0: + this.ProcessApplicationHeaderMarker(remaining); + break; + + case JpegConstants.Markers.APP1: + case JpegConstants.Markers.APP2: + case JpegConstants.Markers.APP3: + case JpegConstants.Markers.APP4: + case JpegConstants.Markers.APP5: + case JpegConstants.Markers.APP6: + case JpegConstants.Markers.APP7: + case JpegConstants.Markers.APP8: + case JpegConstants.Markers.APP9: + case JpegConstants.Markers.APP10: + case JpegConstants.Markers.APP11: + case JpegConstants.Markers.APP12: + case JpegConstants.Markers.APP13: + case JpegConstants.Markers.APP14: + case JpegConstants.Markers.APP15: + case JpegConstants.Markers.COM: + break; + + case JpegConstants.Markers.DQT: + this.ProcessDqtMarker(remaining); + break; + + case JpegConstants.Markers.SOF0: + case JpegConstants.Markers.SOF1: + case JpegConstants.Markers.SOF2: + this.ProcessStartOfFrameMarker(remaining, fileMarker); + break; + + case JpegConstants.Markers.DHT: + this.ProcessDefineHuffmanTablesMarker(remaining); + break; + } + + // Read on + fileMarker = this.FindNextFileMarker(); + } + } + + /// + /// Processes the application header containing the JFIF identifier plus extra data. + /// + /// The remaining bytes in the segment block. + private void ProcessApplicationHeaderMarker(int remaining) + { + if (remaining < 5) + { + // Skip the application header length + this.InputStream.Skip(remaining); + return; + } + + this.InputStream.Read(this.temp, 0, 13); + remaining -= 13; + + bool isJfif = this.temp[0] == JpegConstants.Markers.JFif.J && + this.temp[1] == JpegConstants.Markers.JFif.F && + this.temp[2] == JpegConstants.Markers.JFif.I && + this.temp[3] == JpegConstants.Markers.JFif.F && + this.temp[4] == JpegConstants.Markers.JFif.Null; + + if (isJfif) + { + this.jFif = new JFif + { + MajorVersion = this.temp[5], + MinorVersion = this.temp[6], + DensityUnits = this.temp[7], + XDensity = (short)((this.temp[8] << 8) | this.temp[9]), + YDensity = (short)((this.temp[10] << 8) | this.temp[11]) + }; + } + + // Skip thumbnails for now. + if (remaining > 0) + { + this.InputStream.Skip(remaining); + } + } + + /// + /// Processes the Define Quantization Marker and tables. Specified in section B.2.4.1. + /// + /// The remaining bytes in the segment block. + /// + /// Thrown if the tables do not match the header + /// + private void ProcessDqtMarker(int remaining) + { + while (remaining > 0) + { + bool done = false; + remaining--; + int quantizationTableSpec = this.InputStream.ReadByte(); + + if (quantizationTableSpec > 3) + { + throw new ImageFormatException("Bad Tq index value"); + } + + switch (quantizationTableSpec >> 4) + { + case 0: + { + // 8 bit values + if (remaining < 64) + { + done = true; + break; + } + + this.InputStream.Read(this.temp, 0, 64); + remaining -= 64; + + Span tableSpan = this.quantizationTables.Tables.GetRowSpan(quantizationTableSpec); + for (int j = 0; j < 64; j++) + { + tableSpan[QuantizationTables.DctZigZag[j]] = this.temp[j]; + } + } + + break; + case 1: + { + // 16 bit values + if (remaining < 128) + { + done = true; + break; + } + + this.InputStream.Read(this.temp, 0, 128); + remaining -= 128; + + Span tableSpan = this.quantizationTables.Tables.GetRowSpan(quantizationTableSpec); + for (int j = 0; j < 64; j++) + { + tableSpan[QuantizationTables.DctZigZag[j]] = (short)((this.temp[2 * j] << 8) | this.temp[(2 * j) + 1]); + } + } + + break; + default: + throw new ImageFormatException("Bad Tq index value"); + } + + if (done) + { + break; + } + } + + if (remaining != 0) + { + throw new ImageFormatException("DQT has wrong length"); + } + } + + /// + /// Processes the Start of Frame marker. Specified in section B.2.2. + /// + /// The remaining bytes in the segment block. + /// The current frame marker. + private void ProcessStartOfFrameMarker(int remaining, ushort frameMarker) + { + if (this.frame != null) + { + throw new ImageFormatException("Multiple SOF markers. Only single frame jpegs supported."); + } + + this.InputStream.Read(this.temp, 0, remaining); + + this.frame = new Frame + { + Extended = frameMarker == JpegConstants.Markers.SOF1, + Progressive = frameMarker == JpegConstants.Markers.SOF1, + Precision = this.temp[0], + Scanlines = (short)((this.temp[1] << 8) | this.temp[2]), + SamplesPerLine = (short)((this.temp[3] << 8) | this.temp[4]), + ComponentCount = this.temp[5] + }; + + int maxH = 0; + int maxV = 0; + int index = 6; + + // TODO: Pool this. + this.frame.ComponentIds = new byte[this.frame.ComponentCount]; + this.frame.Components = new Component[this.frame.ComponentCount]; + + for (int i = 0; i < this.frame.ComponentCount; i++) + { + int h = this.temp[index + 1] >> 4; + int v = this.temp[index + 1] & 15; + + if (maxH < h) + { + maxH = h; + } + + if (maxV < v) + { + maxV = v; + } + + ref var component = ref this.frame.Components[i]; + component.Id = this.temp[index]; + component.HorizontalFactor = h; + component.VerticalFactor = v; + component.QuantizationIdentifier = this.temp[index + 2]; + + // Don't assign the table yet. + index += 3; + } + + this.frame.MaxHorizontalFactor = maxH; + this.frame.MaxVerticalFactor = maxV; + this.PrepareComponents(); + } + + /// + /// Processes a Define Huffman Table marker, and initializes a huffman + /// struct from its contents. Specified in section B.2.4.2. + /// + /// The remaining bytes in the segment block. + private void ProcessDefineHuffmanTablesMarker(int remaining) + { + if (remaining < 17) + { + throw new ImageFormatException("DHT has wrong length"); + } + + // TODO: Pool this + byte[] huffmanData = new byte[remaining]; + this.InputStream.Read(huffmanData, 0, remaining); + + int o = 0; + for (int i = 0; i < remaining;) + { + byte huffmanTableSpec = huffmanData[i]; + byte[] codeLengths = new byte[16]; + int codeLengthSum = 0; + + for (int j = 0; j < 16; j++) + { + codeLengthSum += codeLengths[j] = huffmanData[o++]; + } + + short[] huffmanValues = new short[codeLengthSum]; + + byte[] values = null; + try + { + values = ArrayPool.Shared.Rent(256); + this.InputStream.Read(values, 0, codeLengthSum); + + for (int j = 0; j < codeLengthSum; j++) + { + huffmanValues[j] = values[o++]; + } + } + finally + { + if (values != null) + { + ArrayPool.Shared.Return(values); + } + } + + i += 17 + codeLengthSum; + + this.BuildHuffmanTable( + huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, + huffmanTableSpec & 15, + codeLengths, + huffmanValues); + } + } + + private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengths, short[] values) + { + Span tableSpan = tables.Tables.GetRowSpan(index); + } + + /// + /// Allocates the frame component blocks + /// + private void PrepareComponents() + { + int mcusPerLine = this.frame.SamplesPerLine / 8 / this.frame.MaxHorizontalFactor; + int mcusPerColumn = this.frame.Scanlines / 8 / this.frame.MaxVerticalFactor; + + for (int i = 0; i < this.frame.ComponentCount; i++) + { + ref var component = ref this.frame.Components[i]; + int blocksPerLine = this.frame.SamplesPerLine / 8 * component.HorizontalFactor / this.frame.MaxHorizontalFactor; + int blocksPerColumn = this.frame.Scanlines / 8 * component.VerticalFactor / this.frame.MaxVerticalFactor; + int blocksPerLineForMcu = mcusPerLine * component.HorizontalFactor; + int blocksPerColumnForMcu = mcusPerColumn * component.VerticalFactor; + + int blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + + // TODO: Pool this + component.BlockData = new short[blocksBufferSize]; + component.BlocksPerLine = blocksPerLine; + component.BlocksPerColumn = blocksPerColumn; + } + + this.frame.McusPerLine = mcusPerLine; + this.frame.McusPerColumn = mcusPerColumn; + } + + /// + /// Finds the next file marker within the byte stream + /// + /// The + private ushort FindNextFileMarker() + { + while (true) + { + int value = this.InputStream.Read(this.uint16Buffer, 0, 2); + + if (value <= 0) + { + return JpegConstants.Markers.EOI; + } + + while (this.uint16Buffer[0] != JpegConstants.Markers.Prefix) + { + // Strictly speaking, this is a format error. However, libjpeg is + // liberal in what it accepts. As of version 9, next_marker in + // jdmarker.c treats this as a warning (JWRN_EXTRANEOUS_DATA) and + // continues to decode the stream. Even before next_marker sees + // extraneous data, jpeg_fill_bit_buffer in jdhuff.c reads as many + // bytes as it can, possibly past the end of a scan's data. It + // effectively puts back any markers that it overscanned (e.g. an + // "\xff\xd9" EOI marker), but it does not put back non-marker data, + // and thus it can silently ignore a small number of extraneous + // non-marker bytes before next_marker has a chance to see them (and + // print a warning). + // We are therefore also liberal in what we accept. Extraneous data + // is silently ignore + // This is similar to, but not exactly the same as, the restart + // mechanism within a scan (the RST[0-7] markers). + // Note that extraneous 0xff bytes in e.g. SOS data are escaped as + // "\xff\x00", and so are detected a little further down below. + this.uint16Buffer[0] = this.uint16Buffer[1]; + + value = this.InputStream.ReadByte(); + if (value <= 0) + { + return JpegConstants.Markers.EOI; + } + + this.uint16Buffer[1] = (byte)value; + } + + return (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); + } + } + + /// + /// Reads a from the stream advancing it by two bytes + /// + /// The + private ushort ReadUint16() + { + this.InputStream.Read(this.uint16Buffer, 0, 2); + ushort value = (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); + this.offset += 2; + return value; + } + + /// + /// Provides information about the JFIF marker segment + /// + internal struct JFif + { + /// + /// The major version + /// + public byte MajorVersion; + + /// + /// The minor version + /// + public byte MinorVersion; + + /// + /// Units for the following pixel density fields + /// 00 : No units; width:height pixel aspect ratio = Ydensity:Xdensity + /// 01 : Pixels per inch (2.54 cm) + /// 02 : Pixels per centimeter + /// + public byte DensityUnits; + + /// + /// Horizontal pixel density. Must not be zero. + /// + public short XDensity; + + /// + /// Vertical pixel density. Must not be zero. + /// + public short YDensity; + + // TODO: Thumbnail? + } + } +} diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs new file mode 100644 index 0000000000..a279339e78 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs @@ -0,0 +1,33 @@ +namespace ImageSharp.Formats.Jpeg.Port +{ + /// + /// Represents a jpeg frame + /// + internal class JpegFrame + { + /// + /// Gets or sets a value indicating whether the fame is extended + /// + public bool Extended { get; set; } + + /// + /// Gets or sets a value indicating whether the fame is progressive + /// + public bool Progressive { get; set; } + + /// + /// Gets or sets the precision + /// + public byte Precision { get; set; } + + /// + /// Gets or sets the number of scanlines within the frame + /// + public short Scanlines { get; set; } + + /// + /// Gets or sets the number of samples per scanline + /// + public short SamplesPerLine { get; set; } + } +} diff --git a/src/ImageSharp/Memory/Fast2DArray{T}.cs b/src/ImageSharp/Memory/Fast2DArray{T}.cs index 260c829e21..ee8a609836 100644 --- a/src/ImageSharp/Memory/Fast2DArray{T}.cs +++ b/src/ImageSharp/Memory/Fast2DArray{T}.cs @@ -106,11 +106,23 @@ public static implicit operator Fast2DArray(T[,] data) return new Fast2DArray(data); } + /// + /// Gets a representing the row beginning from the the first item on that row. + /// + /// The y-coordinate of the row. Must be greater than or equal to zero and less than the height of the 2D array. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Span GetRowSpan(int row) + { + this.CheckCoordinates(row); + return new Span(this.Data, row * this.Width, this.Width); + } + /// /// Checks the coordinates to ensure they are within bounds. /// - /// The row-coordinate of the item. Must be greater than zero and smaller than the height of the array. - /// The column-coordinate of the item. Must be greater than zero and smaller than the width of the array. + /// The y-coordinate of the item. Must be greater than zero and smaller than the height of the array. + /// The x-coordinate of the item. Must be greater than zero and smaller than the width of the array. /// /// Thrown if the coordinates are not within the bounds of the array. /// @@ -127,5 +139,21 @@ private void CheckCoordinates(int row, int column) throw new ArgumentOutOfRangeException(nameof(column), column, $"{column} is outwith the array bounds."); } } + + /// + /// Checks the coordinates to ensure they are within bounds. + /// + /// The y-coordinate of the item. Must be greater than zero and smaller than the height of the array. + /// + /// Thrown if the coordinates are not within the bounds of the image. + /// + [Conditional("DEBUG")] + private void CheckCoordinates(int row) + { + if (row < 0 || row >= this.Height) + { + throw new ArgumentOutOfRangeException(nameof(row), row, $"{row} is outwith the array bounds."); + } + } } } \ No newline at end of file From 1abe63113d81b1dfae2c779cc733630661c319cf Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 19 Jun 2017 02:01:12 +1000 Subject: [PATCH 002/135] Fix header finder --- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 78 +++++++++++-------- 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index bb2d099382..50ac407a4d 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -10,6 +10,7 @@ namespace ImageSharp.Formats.Jpeg.Port using System.IO; using ImageSharp.Formats.Jpeg.Port.Components; + using ImageSharp.Memory; using ImageSharp.PixelFormats; /// @@ -99,6 +100,8 @@ private void ParseStream() fileMarker = this.ReadUint16(); this.quantizationTables = new QuantizationTables(); + this.dcHuffmanTables = new HuffmanTables(); + this.acHuffmanTables = new HuffmanTables(); while (fileMarker != JpegConstants.Markers.EOI) { @@ -342,55 +345,62 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) throw new ImageFormatException("DHT has wrong length"); } - // TODO: Pool this - byte[] huffmanData = new byte[remaining]; - this.InputStream.Read(huffmanData, 0, remaining); - - int o = 0; - for (int i = 0; i < remaining;) + using (var huffmanData = new Buffer(remaining)) { - byte huffmanTableSpec = huffmanData[i]; - byte[] codeLengths = new byte[16]; - int codeLengthSum = 0; + this.InputStream.Read(huffmanData.Array, 1, remaining); - for (int j = 0; j < 16; j++) + int o = 0; + for (int i = 0; i < remaining;) { - codeLengthSum += codeLengths[j] = huffmanData[o++]; - } + byte huffmanTableSpec = huffmanData[i]; + byte[] codeLengths = new byte[16]; + int codeLengthSum = 0; - short[] huffmanValues = new short[codeLengthSum]; + for (int j = 0; j < 16; j++) + { + codeLengthSum += codeLengths[j] = huffmanData[o++]; + } - byte[] values = null; - try - { - values = ArrayPool.Shared.Rent(256); - this.InputStream.Read(values, 0, codeLengthSum); + short[] huffmanValues = new short[codeLengthSum]; - for (int j = 0; j < codeLengthSum; j++) + byte[] values = null; + try { - huffmanValues[j] = values[o++]; + values = ArrayPool.Shared.Rent(256); + this.InputStream.Read(values, 0, codeLengthSum); + + for (int j = 0; j < codeLengthSum; j++) + { + huffmanValues[j] = values[o++]; + } } - } - finally - { - if (values != null) + finally { - ArrayPool.Shared.Return(values); + if (values != null) + { + ArrayPool.Shared.Return(values); + } } - } - i += 17 + codeLengthSum; + i += 17 + codeLengthSum; - this.BuildHuffmanTable( - huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, - huffmanTableSpec & 15, - codeLengths, - huffmanValues); + this.BuildHuffmanTable( + huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, + huffmanTableSpec & 15, + codeLengths, + huffmanValues); + } } } private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengths, short[] values) { + int length = 16; + while (length > 0 && codeLengths[length - 1] == 0) + { + length--; + } + Span tableSpan = tables.Tables.GetRowSpan(index); } @@ -432,7 +442,7 @@ private ushort FindNextFileMarker() { int value = this.InputStream.Read(this.uint16Buffer, 0, 2); - if (value <= 0) + if (value == 0) { return JpegConstants.Markers.EOI; } @@ -459,7 +469,7 @@ private ushort FindNextFileMarker() this.uint16Buffer[0] = this.uint16Buffer[1]; value = this.InputStream.ReadByte(); - if (value <= 0) + if (value == -1) { return JpegConstants.Markers.EOI; } From d4d74b43c56fbbee8a770795cc976dfa1dcb7659 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 19 Jun 2017 02:04:57 +1000 Subject: [PATCH 003/135] Add js source link --- src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 50ac407a4d..3d36d61d9e 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -15,6 +15,7 @@ namespace ImageSharp.Formats.Jpeg.Port /// /// Performs the jpeg decoding operation. + /// Ported from /// internal class JpegDecoderCore { From f63f85aaef42fbe31f14239ee2cbc12482d4d958 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 19 Jun 2017 02:08:24 +1000 Subject: [PATCH 004/135] Use buffer --- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 3d36d61d9e..300cb7aefa 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -362,26 +362,17 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) codeLengthSum += codeLengths[j] = huffmanData[o++]; } + // TODO: Pooling? short[] huffmanValues = new short[codeLengthSum]; - - byte[] values = null; - try + using (var values = new Buffer(256)) { - values = ArrayPool.Shared.Rent(256); - this.InputStream.Read(values, 0, codeLengthSum); + this.InputStream.Read(values.Array, 0, codeLengthSum); for (int j = 0; j < codeLengthSum; j++) { huffmanValues[j] = values[o++]; } } - finally - { - if (values != null) - { - ArrayPool.Shared.Return(values); - } - } i += 17 + codeLengthSum; From 2c629c7fd82d47da6e21f01bdfd1556f362f3f55 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 19 Jun 2017 02:09:30 +1000 Subject: [PATCH 005/135] Remove offset --- src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 300cb7aefa..b29446fdb3 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -54,8 +54,6 @@ internal class JpegDecoderCore /// private bool isExif; - private int offset; - /// /// Initializes a new instance of the class. /// @@ -481,7 +479,6 @@ private ushort ReadUint16() { this.InputStream.Read(this.uint16Buffer, 0, 2); ushort value = (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); - this.offset += 2; return value; } From b025ed6bb66a19c9bfdefe45ac72dab6efd4b102 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 19 Jun 2017 02:19:15 +1000 Subject: [PATCH 006/135] Fix progressive bool assignment --- src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index b29446fdb3..1b2b8b99f9 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -287,7 +287,7 @@ private void ProcessStartOfFrameMarker(int remaining, ushort frameMarker) this.frame = new Frame { Extended = frameMarker == JpegConstants.Markers.SOF1, - Progressive = frameMarker == JpegConstants.Markers.SOF1, + Progressive = frameMarker == JpegConstants.Markers.SOF2, Precision = this.temp[0], Scanlines = (short)((this.temp[1] << 8) | this.temp[2]), SamplesPerLine = (short)((this.temp[3] << 8) | this.temp[4]), From 3728b821ddf25f3738bc240b875d09398c7913c2 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 20 Jun 2017 01:19:47 +1000 Subject: [PATCH 007/135] =?UTF-8?q?(=E2=95=AF=C2=B0=E2=96=A1=C2=B0?= =?UTF-8?q?=EF=BC=89=E2=95=AF=EF=B8=B5=20=E2=94=BB=E2=94=81=E2=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jpeg/Port/Components/HuffmanTables.cs | 30 ++++++- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 83 +++++++++++++++---- 2 files changed, 98 insertions(+), 15 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs index 5c4ffce248..5fcc2007b9 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -1,5 +1,7 @@ namespace ImageSharp.Formats.Jpeg.Port.Components { + using System.Collections.Generic; + using ImageSharp.Memory; /// @@ -10,6 +12,32 @@ internal class HuffmanTables /// /// Gets or sets the quantization tables. /// - public Fast2DArray Tables { get; set; } = new Fast2DArray(256, 2); + public Fast2DArray Tables { get; set; } = new Fast2DArray(256, 2); + } + + internal struct HuffmanBranch + { + public HuffmanBranch(short value) + : this(value, new List()) + { + } + + public HuffmanBranch(List children) + : this(0, children) + { + } + + private HuffmanBranch(short value, List children) + { + this.Index = 0; + this.Value = value; + this.Children = children; + } + + public int Index; + + public short Value; + + public List Children; } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 1b2b8b99f9..db25ba8453 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -6,8 +6,9 @@ namespace ImageSharp.Formats.Jpeg.Port { using System; - using System.Buffers; + using System.Collections.Generic; using System.IO; + using System.Linq; using ImageSharp.Formats.Jpeg.Port.Components; using ImageSharp.Memory; @@ -346,9 +347,9 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) using (var huffmanData = new Buffer(remaining)) { - this.InputStream.Read(huffmanData.Array, 1, remaining); + this.InputStream.Skip(1); + this.InputStream.Read(huffmanData.Array, 0, remaining); - int o = 0; for (int i = 0; i < remaining;) { byte huffmanTableSpec = huffmanData[i]; @@ -357,41 +358,95 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) for (int j = 0; j < 16; j++) { - codeLengthSum += codeLengths[j] = huffmanData[o++]; + codeLengthSum += codeLengths[j] = huffmanData[j]; } // TODO: Pooling? short[] huffmanValues = new short[codeLengthSum]; - using (var values = new Buffer(256)) + using (var values = new Buffer(codeLengthSum)) { this.InputStream.Read(values.Array, 0, codeLengthSum); for (int j = 0; j < codeLengthSum; j++) { - huffmanValues[j] = values[o++]; + huffmanValues[j] = values[j]; } - } - i += 17 + codeLengthSum; + i += 17 + codeLengthSum; - this.BuildHuffmanTable( - huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, - huffmanTableSpec & 15, - codeLengths, - huffmanValues); + this.BuildHuffmanTable( + huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, + huffmanTableSpec & 15, + codeLengths, + huffmanValues); + } } } } private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengths, short[] values) { + // (╯°□°)╯︵ ┻━┻ Everything up to here is going well. I can't match the JavaScript now though. int length = 16; while (length > 0 && codeLengths[length - 1] == 0) { length--; } - Span tableSpan = tables.Tables.GetRowSpan(index); + var code = new Queue(); + code.Enqueue(new HuffmanBranch(new List())); + HuffmanBranch p = code.Peek(); + p.Children = new List(); + HuffmanBranch q; + int k = 0; + try + { + for (int i = 0; i < length; i++) + { + for (int j = 0; j < codeLengths[i]; j++) + { + p = code.Dequeue(); + p.Children.Add(new HuffmanBranch(values[k])); + while (p.Index > 0) + { + p = code.Dequeue(); + } + + p.Index++; + code.Enqueue(p); + while (code.Count <= i) + { + q = new HuffmanBranch(new List()); + code.Enqueue(q); + p.Children.Add(new HuffmanBranch(q.Children)); + p = q; + } + + k++; + } + + if (i + 1 < length) + { + // p here points to last code + q = new HuffmanBranch(new List()); + code.Enqueue(q); + p.Children.Add(new HuffmanBranch(q.Children)); + p = q; + } + } + + Span tableSpan = tables.Tables.GetRowSpan(index); + + List result = code.Peek().Children; + for (int i = 0; i < result.Count; i++) + { + tableSpan[i] = result[i]; + } + } + catch (Exception e) + { + throw; + } } /// From 0ea7a6f687a818e17fa9c6b1d5f8937bfb76abea Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 20 Jun 2017 12:13:11 +1000 Subject: [PATCH 008/135] Can now build huffman tables --- .../Common/Extensions/ListExtensions.cs | 48 +++++++ .../Jpeg/Port/Components/HuffmanBranch.cs | 55 ++++++++ .../Jpeg/Port/Components/HuffmanTables.cs | 67 +++++---- src/ImageSharp/Formats/Jpeg/Port/Huffman.cs | 6 - .../Formats/Jpeg/Port/JpegDecoderCore.cs | 130 ++++++++---------- src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs | 33 ----- 6 files changed, 196 insertions(+), 143 deletions(-) create mode 100644 src/ImageSharp/Common/Extensions/ListExtensions.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs delete mode 100644 src/ImageSharp/Formats/Jpeg/Port/Huffman.cs delete mode 100644 src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs diff --git a/src/ImageSharp/Common/Extensions/ListExtensions.cs b/src/ImageSharp/Common/Extensions/ListExtensions.cs new file mode 100644 index 0000000000..752f7ef21d --- /dev/null +++ b/src/ImageSharp/Common/Extensions/ListExtensions.cs @@ -0,0 +1,48 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Common.Extensions +{ + using System.Collections.Generic; + + /// + /// Encapsulates a series of time saving extension methods to the class. + /// + internal static class ListExtensions + { + /// + /// Inserts an item at the given index automatically expanding the capacity if required. + /// + /// The type of object within the list + /// The list + /// The index + /// The item to insert + public static void SafeInsert(this List list, int index, T item) + { + if (index >= list.Count) + { + list.Add(item); + } + else + { + list[index] = item; + } + } + + /// + /// Removes the last element from a list and returns that element. This method changes the length of the list. + /// + /// The type of object within the list + /// The list + /// The last element in the specified sequence. + public static T Pop(this List list) + { + int last = list.Count - 1; + T item = list[last]; + list.RemoveAt(last); + return item; + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs new file mode 100644 index 0000000000..0f0a9b5408 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs @@ -0,0 +1,55 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System.Collections.Generic; + + /// + /// Represents a branch in the huffman tree + /// + internal struct HuffmanBranch + { + /// + /// The index + /// + public int Index; + + /// + /// The value + /// + public short Value; + + /// + /// The children + /// + public List Children; + + /// + /// Initializes a new instance of the struct. + /// + /// The value + public HuffmanBranch(short value) + : this(value, new List()) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// The branch children + public HuffmanBranch(List children) + : this((short)0, children) + { + } + + private HuffmanBranch(short value, List children) + { + this.Index = 0; + this.Value = value; + this.Children = children; + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs index 5fcc2007b9..08c37bcbcc 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -1,43 +1,50 @@ -namespace ImageSharp.Formats.Jpeg.Port.Components +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components { using System.Collections.Generic; - - using ImageSharp.Memory; + using System.Runtime.CompilerServices; /// /// Defines a pair of huffman tables /// internal class HuffmanTables { - /// - /// Gets or sets the quantization tables. - /// - public Fast2DArray Tables { get; set; } = new Fast2DArray(256, 2); - } - - internal struct HuffmanBranch - { - public HuffmanBranch(short value) - : this(value, new List()) - { - } + private List first = new List(); - public HuffmanBranch(List children) - : this(0, children) - { - } + private List second = new List(); - private HuffmanBranch(short value, List children) + /// + /// Gets or sets the table at the given index. + /// + /// The index + /// The + public List this[int index] { - this.Index = 0; - this.Value = value; - this.Children = children; + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + if (index == 0) + { + return this.first; + } + + return this.second; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + if (index == 0) + { + this.first = value; + } + + this.second = value; + } } - - public int Index; - - public short Value; - - public List Children; } -} +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Huffman.cs b/src/ImageSharp/Formats/Jpeg/Port/Huffman.cs deleted file mode 100644 index 75b6dc5624..0000000000 --- a/src/ImageSharp/Formats/Jpeg/Port/Huffman.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace ImageSharp.Formats.Jpeg.Port -{ - class Huffman - { - } -} diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index db25ba8453..95a83b086a 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -8,8 +8,8 @@ namespace ImageSharp.Formats.Jpeg.Port using System; using System.Collections.Generic; using System.IO; - using System.Linq; + using ImageSharp.Common.Extensions; using ImageSharp.Formats.Jpeg.Port.Components; using ImageSharp.Memory; using ImageSharp.PixelFormats; @@ -50,11 +50,6 @@ internal class JpegDecoderCore /// private JFif jFif; - /// - /// Whether the image has a EXIF header - /// - private bool isExif; - /// /// Initializes a new instance of the class. /// @@ -345,108 +340,96 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) throw new ImageFormatException("DHT has wrong length"); } - using (var huffmanData = new Buffer(remaining)) + using (var huffmanData = new Buffer(16)) { - this.InputStream.Skip(1); - this.InputStream.Read(huffmanData.Array, 0, remaining); - - for (int i = 0; i < remaining;) + for (int i = 2; i < remaining;) { - byte huffmanTableSpec = huffmanData[i]; - byte[] codeLengths = new byte[16]; - int codeLengthSum = 0; - - for (int j = 0; j < 16; j++) - { - codeLengthSum += codeLengths[j] = huffmanData[j]; - } + byte huffmanTableSpec = (byte)this.InputStream.ReadByte(); + this.InputStream.Read(huffmanData.Array, 0, 16); - // TODO: Pooling? - short[] huffmanValues = new short[codeLengthSum]; - using (var values = new Buffer(codeLengthSum)) + using (var codeLengths = new Buffer(16)) { - this.InputStream.Read(values.Array, 0, codeLengthSum); + int codeLengthSum = 0; - for (int j = 0; j < codeLengthSum; j++) + for (int j = 0; j < 16; j++) { - huffmanValues[j] = values[j]; + codeLengthSum += codeLengths[j] = huffmanData[j]; } - i += 17 + codeLengthSum; + using (var huffmanValues = new Buffer(codeLengthSum)) + { + this.InputStream.Read(huffmanValues.Array, 0, codeLengthSum); + + i += 17 + codeLengthSum; - this.BuildHuffmanTable( - huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, - huffmanTableSpec & 15, - codeLengths, - huffmanValues); + // Everything I can discover indicates there's a max of two table per DC AC pair though this limits the index to 16? + this.BuildHuffmanTable( + huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, + huffmanTableSpec & 15, + codeLengths.Array, + huffmanValues.Array); + } } } } } - private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengths, short[] values) + /// + /// Builds the huffman tables + /// + /// The tables + /// The table index + /// The codelengths + /// The values + private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengths, byte[] values) { - // (╯°□°)╯︵ ┻━┻ Everything up to here is going well. I can't match the JavaScript now though. int length = 16; while (length > 0 && codeLengths[length - 1] == 0) { length--; } - var code = new Queue(); - code.Enqueue(new HuffmanBranch(new List())); - HuffmanBranch p = code.Peek(); - p.Children = new List(); - HuffmanBranch q; + // TODO: Check the capacity here. Seems to max at 2 + var code = new List { new HuffmanBranch(new List()) }; + HuffmanBranch p = code[0]; int k = 0; - try + + for (int i = 0; i < length; i++) { - for (int i = 0; i < length; i++) + HuffmanBranch q; + for (int j = 0; j < codeLengths[i]; j++) { - for (int j = 0; j < codeLengths[i]; j++) + p = code.Pop(); + p.Children.SafeInsert(p.Index, new HuffmanBranch(values[k])); + while (p.Index > 0) { - p = code.Dequeue(); - p.Children.Add(new HuffmanBranch(values[k])); - while (p.Index > 0) - { - p = code.Dequeue(); - } - - p.Index++; - code.Enqueue(p); - while (code.Count <= i) - { - q = new HuffmanBranch(new List()); - code.Enqueue(q); - p.Children.Add(new HuffmanBranch(q.Children)); - p = q; - } - - k++; + p = code.Pop(); } - if (i + 1 < length) + p.Index++; + code.Add(p); + while (code.Count <= i) { - // p here points to last code q = new HuffmanBranch(new List()); - code.Enqueue(q); - p.Children.Add(new HuffmanBranch(q.Children)); + code.Add(q); + p.Children.SafeInsert(p.Index, new HuffmanBranch(q.Children)); p = q; } - } - Span tableSpan = tables.Tables.GetRowSpan(index); + k++; + } - List result = code.Peek().Children; - for (int i = 0; i < result.Count; i++) + if (i + 1 < length) { - tableSpan[i] = result[i]; + // p here points to last code + q = new HuffmanBranch(new List()); + code.Add(q); + p.Children.SafeInsert(p.Index, new HuffmanBranch(q.Children)); + p = q; } } - catch (Exception e) - { - throw; - } + + tables[index] = code[0].Children; } /// @@ -533,8 +516,7 @@ private ushort FindNextFileMarker() private ushort ReadUint16() { this.InputStream.Read(this.uint16Buffer, 0, 2); - ushort value = (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); - return value; + return (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); } /// diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs deleted file mode 100644 index a279339e78..0000000000 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegFrame.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace ImageSharp.Formats.Jpeg.Port -{ - /// - /// Represents a jpeg frame - /// - internal class JpegFrame - { - /// - /// Gets or sets a value indicating whether the fame is extended - /// - public bool Extended { get; set; } - - /// - /// Gets or sets a value indicating whether the fame is progressive - /// - public bool Progressive { get; set; } - - /// - /// Gets or sets the precision - /// - public byte Precision { get; set; } - - /// - /// Gets or sets the number of scanlines within the frame - /// - public short Scanlines { get; set; } - - /// - /// Gets or sets the number of samples per scanline - /// - public short SamplesPerLine { get; set; } - } -} From a718bf852722d498c78568e9a1f4031eafbf50a3 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 21 Jun 2017 00:54:24 +1000 Subject: [PATCH 009/135] Begin ProcessStartOfScan --- .../Formats/Jpeg/Port/Components/Component.cs | 10 +++++ .../Formats/Jpeg/Port/JpegConstants.cs | 18 ++++++++ .../Formats/Jpeg/Port/JpegDecoderCore.cs | 43 ++++++++++++++++++- 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs index 524e3b913d..ca8744022a 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs @@ -49,5 +49,15 @@ internal struct Component /// Gets or sets the number of blocks per column /// public int BlocksPerColumn; + + /// + /// Gets the index for the DC Huffman table + /// + public int DCHuffmanTableId; + + /// + /// Gets the index for the AC Huffman table + /// + public int ACHuffmanTableId; } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs index 236e38f961..f26dbded5d 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs @@ -155,6 +155,24 @@ public static class Markers /// public const ushort DHT = 0xFFC4; + /// + /// Define Restart Interval + /// + /// Specifies the interval between RSTn markers, in macroblocks.This marker is followed by two bytes indicating the fixed size so it can be treated like any other variable size segment. + /// + /// + public const ushort DRI = 0xFFDD; + + /// + /// Start of Scan + /// + /// Begins a top-to-bottom scan of the image. In baseline DCT JPEG images, there is generally a single scan. + /// Progressive DCT JPEG images usually contain multiple scans. This marker specifies which slice of data it + /// will contain, and is immediately followed by entropy-coded data. + /// + /// + public const ushort SOS = 0xFFDA; + /// /// Contains JFIF specific markers /// diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 95a83b086a..9dd45f53b1 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -45,6 +45,8 @@ internal class JpegDecoderCore private Frame frame; + private ushort resetInterval; + /// /// COntains information about the jFIF marker /// @@ -140,6 +142,14 @@ private void ParseStream() case JpegConstants.Markers.DHT: this.ProcessDefineHuffmanTablesMarker(remaining); break; + + case JpegConstants.Markers.DRI: + this.resetInterval = this.ReadUint16(); + break; + + case JpegConstants.Markers.SOS: + this.ProcessStartOfScan(); + break; } // Read on @@ -319,6 +329,8 @@ private void ProcessStartOfFrameMarker(int remaining, ushort frameMarker) component.VerticalFactor = v; component.QuantizationIdentifier = this.temp[index + 2]; + this.frame.ComponentIds[i] = (byte)i; + // Don't assign the table yet. index += 3; } @@ -374,6 +386,35 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) } } + /// + /// Processes the SOS (Start of scan marker). + /// + private void ProcessStartOfScan() + { + int selectorsCount = this.InputStream.ReadByte(); + var components = new List(); + + for (int i = 0; i < selectorsCount; i++) + { + byte componentIndex = this.frame.ComponentIds[this.InputStream.ReadByte() - 1]; + Component component = this.frame.Components[componentIndex]; + int tableSpec = this.InputStream.ReadByte(); + component.DCHuffmanTableId = tableSpec >> 4; + component.ACHuffmanTableId = tableSpec & 15; + components.Add(component); + } + + this.InputStream.Read(this.temp, 0, 3); + int spectralStart = this.temp[0]; + int spectralEnd = this.temp[1]; + int successiveApproximation = this.temp[2]; + } + + private int DecodeScan(List components, int spectralStart, int spectralEnd, int successivePrev, int successive) + { + return 0; + } + /// /// Builds the huffman tables /// @@ -555,4 +596,4 @@ internal struct JFif // TODO: Thumbnail? } } -} +} \ No newline at end of file From 1629819f3cb442c206cf3b2fd68bbdb1988cf1db Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Thu, 22 Jun 2017 15:40:18 +1000 Subject: [PATCH 010/135] Can now decode a scan --- src/ImageSharp/Formats/Jpeg/JpegDecoder.cs | 6 +- .../Jpeg/Port/Components/FileMarker.cs | 53 ++ .../Formats/Jpeg/Port/Components/Frame.cs | 41 +- .../{Component.cs => FrameComponent.cs} | 23 +- .../Jpeg/Port/Components/HuffmanBranch.cs | 21 +- .../Jpeg/Port/Components/HuffmanTables.cs | 6 +- .../Port/Components/QuantizationTables.cs | 42 +- .../Jpeg/Port/Components/ScanDecoder.cs | 471 ++++++++++++++++++ .../Formats/Jpeg/Port/JpegConstants.cs | 18 + .../Formats/Jpeg/Port/JpegDecoderCore.cs | 261 ++++++---- .../ImageSharp.Benchmarks/Image/DecodeJpeg.cs | 24 +- 11 files changed, 828 insertions(+), 138 deletions(-) create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs rename src/ImageSharp/Formats/Jpeg/Port/Components/{Component.cs => FrameComponent.cs} (75%) create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs diff --git a/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs b/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs index e900e51ac8..117edb2254 100644 --- a/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs @@ -25,8 +25,10 @@ public Image Decode(Configuration configuration, Stream stream, // { // return decoder.Decode(stream); // } - var decoder = new Jpeg.Port.JpegDecoderCore(options, configuration); - return decoder.Decode(stream); + using (var decoder = new Jpeg.Port.JpegDecoderCore(options, configuration)) + { + return decoder.Decode(stream); + } } } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs new file mode 100644 index 0000000000..39adba5cde --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs @@ -0,0 +1,53 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + /// + /// Represents a jpeg file marker + /// + internal struct FileMarker + { + /// + /// Initializes a new instance of the struct. + /// + /// The marker + /// The position within the stream + public FileMarker(ushort marker, long position) + { + this.Marker = marker; + this.Position = position; + this.Invalid = false; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The marker + /// The position within the stream + /// Whether the current marker is invalid + public FileMarker(ushort marker, long position, bool invalid) + { + this.Marker = marker; + this.Position = position; + this.Invalid = invalid; + } + + /// + /// Gets or sets a value indicating whether the current marker is invalid + /// + public bool Invalid { get; set; } + + /// + /// Gets the position of the marker within a stream + /// + public ushort Marker { get; } + + /// + /// Gets the position of the marker within a stream + /// + public long Position { get; } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs index 7e72df8b0a..97c422ca32 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs @@ -5,11 +5,15 @@ namespace ImageSharp.Formats.Jpeg.Port.Components { + using System; + /// /// Represent a single jpeg frame /// - internal class Frame + internal class Frame : IDisposable { + private bool isDisposed; + /// /// Gets or sets a value indicating whether the frame uses the extended specification /// @@ -48,7 +52,7 @@ internal class Frame /// /// Gets or sets the frame component collection /// - public Component[] Components { get; set; } + public FrameComponent[] Components { get; set; } /// /// Gets or sets the maximum horizontal sampling factor @@ -69,5 +73,36 @@ internal class Frame /// Gets or sets the number of MCU's per column /// public int McusPerColumn { get; set; } + + /// + public void Dispose() + { + this.Dispose(true); + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + /// Whether to dispose of managed objects + protected virtual void Dispose(bool disposing) + { + if (this.isDisposed) + { + return; + } + + if (disposing) + { + foreach (FrameComponent component in this.Components) + { + component.Dispose(); + } + } + + // Set large fields to null. + this.Components = null; + + this.isDisposed = true; + } } -} +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs similarity index 75% rename from src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs rename to src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs index ca8744022a..18176bde73 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs @@ -1,20 +1,29 @@ -// +// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // namespace ImageSharp.Formats.Jpeg.Port.Components { + using System; + + using ImageSharp.Memory; + /// - /// Represents a single color component + /// Represents a single frame component /// - internal struct Component + internal struct FrameComponent : IDisposable { /// /// Gets or sets the component Id /// public byte Id; + /// + /// TODO: What does pred stand for? + /// + public int Pred; + /// /// Gets or sets the horizontal sampling factor. /// @@ -38,7 +47,7 @@ internal struct Component /// /// Gets or sets the block data /// - public short[] BlockData; + public Buffer BlockData; /// /// Gets or sets the number of blocks per line @@ -59,5 +68,11 @@ internal struct Component /// Gets the index for the AC Huffman table /// public int ACHuffmanTableId; + + /// + public void Dispose() + { + this.BlockData?.Dispose(); + } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs index 0f0a9b5408..d716355ad3 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs @@ -5,7 +5,7 @@ namespace ImageSharp.Formats.Jpeg.Port.Components { - using System.Collections.Generic; + using System.Runtime.CompilerServices; /// /// Represents a branch in the huffman tree @@ -23,32 +23,31 @@ internal struct HuffmanBranch public short Value; /// - /// The children + /// The children. /// - public List Children; + public HuffmanBranch[] Children; /// /// Initializes a new instance of the struct. /// /// The value + [MethodImpl(MethodImplOptions.AggressiveInlining)] public HuffmanBranch(short value) - : this(value, new List()) { + this.Index = 0; + this.Value = value; + this.Children = new HuffmanBranch[2]; } /// /// Initializes a new instance of the struct. /// /// The branch children - public HuffmanBranch(List children) - : this((short)0, children) - { - } - - private HuffmanBranch(short value, List children) + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public HuffmanBranch(HuffmanBranch[] children) { this.Index = 0; - this.Value = value; + this.Value = -1; this.Children = children; } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs index 08c37bcbcc..a040d21e70 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -13,16 +13,16 @@ namespace ImageSharp.Formats.Jpeg.Port.Components /// internal class HuffmanTables { - private List first = new List(); + private HuffmanBranch[] first; - private List second = new List(); + private HuffmanBranch[] second; /// /// Gets or sets the table at the given index. /// /// The index /// The - public List this[int index] + public HuffmanBranch[] this[int index] { [MethodImpl(MethodImplOptions.AggressiveInlining)] get diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs index f808eecfde..1ca31b31bf 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs @@ -5,6 +5,8 @@ namespace ImageSharp.Formats.Jpeg.Port.Components { + using System.Runtime.CompilerServices; + using ImageSharp.Memory; /// @@ -16,24 +18,30 @@ internal class QuantizationTables /// /// Gets the ZigZag scan table /// - public static byte[] DctZigZag { get; } = + public static byte[] DctZigZag { - 0, - 1, 8, - 16, 9, 2, - 3, 10, 17, 24, - 32, 25, 18, 11, 4, - 5, 12, 19, 26, 33, 40, - 48, 41, 34, 27, 20, 13, 6, - 7, 14, 21, 28, 35, 42, 49, 56, - 57, 50, 43, 36, 29, 22, 15, - 23, 30, 37, 44, 51, 58, - 59, 52, 45, 38, 31, - 39, 46, 53, 60, - 61, 54, 47, - 55, 62, - 63 - }; + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; + } + + = + { + 0, + 1, 8, + 16, 9, 2, + 3, 10, 17, 24, + 32, 25, 18, 11, 4, + 5, 12, 19, 26, 33, 40, + 48, 41, 34, 27, 20, 13, 6, + 7, 14, 21, 28, 35, 42, 49, 56, + 57, 50, 43, 36, 29, 22, 15, + 23, 30, 37, 44, 51, 58, + 59, 52, 45, 38, 31, + 39, 46, 53, 60, + 61, 54, 47, + 55, 62, + 63 + }; /// /// Gets or sets the quantization tables. diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs new file mode 100644 index 0000000000..09837aef05 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -0,0 +1,471 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System; +#if DEBUG + using System.Diagnostics; +#endif + using System.IO; + using System.Runtime.CompilerServices; + + /// + /// Encapsulates a decode method. TODO: This may well be a bottleneck + /// + /// The component + /// The offset + /// The DC Huffman tables + /// The AC Huffman tables + /// The input stream + internal delegate void DecodeAction(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream); + + /// + /// Provides the means to decode a spectral scan + /// + internal struct ScanDecoder + { + private int bitsData; + + private int bitsCount; + + private int specStart; + + private int specEnd; + + private int eobrun; + + private int successiveState; + + private int successiveACState; + + /// + /// Decodes the spectral scan + /// + /// The image frame + /// The input stream + /// The DC Huffman tables + /// The AC Huffman tables + /// The scan components + /// The reset interval + /// The spectral selection start + /// The spectral selection end + /// The successive approximation bit high end + /// The successive approximation bit low end + public void DecodeScan(Frame frame, Stream stream, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, FrameComponent[] components, ushort resetInterval, int spectralStart, int spectralEnd, int successivePrev, int successive) + { + this.specStart = spectralStart; + this.specEnd = spectralEnd; + this.successiveState = successive; + bool progressive = frame.Progressive; + int componentsLength = components.Length; + int mcusPerLine = frame.McusPerLine; + + // TODO: Delegate action will not be fast + DecodeAction decodeFn; + + if (progressive) + { + if (this.specStart == 0) + { + if (successivePrev == 0) + { + decodeFn = this.DecodeDCFirst; + } + else + { + decodeFn = this.DecodeDCSuccessive; + } + } + else + { + if (successivePrev == 0) + { + decodeFn = this.DecodeACFirst; + } + else + { + decodeFn = this.DecodeACSuccessive; + } + } + } + else + { + decodeFn = this.DecodeBaseline; + } + + int mcu = 0; + int mcuExpected; + if (componentsLength == 1) + { + mcuExpected = components[0].BlocksPerLine * components[0].BlocksPerColumn; + } + else + { + mcuExpected = mcusPerLine * frame.McusPerColumn; + } + + FileMarker fileMarker; + while (mcu < mcuExpected) + { + // Reset interval stuff + int mcuToRead = resetInterval > 0 ? Math.Min(mcuExpected - mcu, resetInterval) : mcuExpected; + for (int i = 0; i < componentsLength; i++) + { + ref FrameComponent c = ref components[i]; + c.Pred = 0; + } + + this.eobrun = 0; + + if (componentsLength == 1) + { + ref FrameComponent component = ref components[0]; + for (int n = 0; n < mcuToRead; n++) + { + DecodeBlock(dcHuffmanTables, acHuffmanTables, ref component, decodeFn, mcu, stream); + mcu++; + } + } + else + { + for (int n = 0; n < mcuToRead; n++) + { + for (int i = 0; i < componentsLength; i++) + { + ref FrameComponent component = ref components[i]; + int h = component.HorizontalFactor; + int v = component.VerticalFactor; + for (int j = 0; j < v; j++) + { + for (int k = 0; k < h; k++) + { + DecodeMcu(dcHuffmanTables, acHuffmanTables, ref component, decodeFn, mcusPerLine, mcu, j, k, stream); + } + } + } + + mcu++; + } + } + + // Find marker + this.bitsCount = 0; + + // TODO: We need to make sure we are not overwriting anything here. + fileMarker = JpegDecoderCore.FindNextFileMarker(stream); + + // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past + // those to attempt to find a valid marker (fixes issue4090.pdf) in original code. + if (fileMarker.Invalid) + { +#if DEBUG + Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); +#endif + } + + ushort marker = fileMarker.Marker; + if (marker <= 0xFF00) + { + throw new ImageFormatException("Marker was not found"); + } + + if (marker >= JpegConstants.Markers.RST0 && marker <= JpegConstants.Markers.RST7) + { + // RSTx + stream.Skip(2); + } + else + { + break; + } + } + + fileMarker = JpegDecoderCore.FindNextFileMarker(stream); + + // Some images include more Scan blocks than expected, skip past those and + // attempt to find the next valid marker (fixes issue8182.pdf) in original code. + if (fileMarker.Invalid) + { +#if DEBUG + Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); +#endif + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int GetBlockBufferOffset(FrameComponent component, int row, int col) + { + return 64 * (((component.BlocksPerLine + 1) * row) + col); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void DecodeMcu(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, DecodeAction decode, int mcusPerLine, int mcu, int row, int col, Stream stream) + { + int mcuRow = (mcu / mcusPerLine) | 0; + int mcuCol = mcu % mcusPerLine; + int blockRow = (mcuRow * component.VerticalFactor) + row; + int blockCol = (mcuCol * component.HorizontalFactor) + col; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + decode(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void DecodeBlock(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, DecodeAction decode, int mcu, Stream stream) + { + int blockRow = (mcu / component.BlocksPerLine) | 0; + int blockCol = mcu % component.BlocksPerLine; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + decode(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private int ReadBit(Stream stream) + { + if (this.bitsCount > 0) + { + this.bitsCount--; + return (this.bitsData >> this.bitsCount) & 1; + } + + this.bitsData = stream.ReadByte(); + if (this.bitsData == 0xFF) + { + int nextByte = stream.ReadByte(); + if (nextByte > 0) + { + throw new ImageFormatException($"Unexpected marker {(this.bitsData << 8) | nextByte}"); + } + + // Unstuff 0 + } + + this.bitsCount = 7; + return this.bitsData >> 7; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private short DecodeHuffman(HuffmanBranch[] tree, Stream stream) + { + HuffmanBranch[] node = tree; + while (true) + { + int index; + index = this.ReadBit(stream); + HuffmanBranch branch = node[index]; + node = branch.Children; + + if (branch.Value > -1) + { + return branch.Value; + } + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private int Receive(int length, Stream stream) + { + int n = 0; + while (length > 0) + { + n = (n << 1) | this.ReadBit(stream); + length--; + } + + return n; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private int ReceiveAndExtend(int length, Stream stream) + { + if (length == 1) + { + return this.ReadBit(stream) == 1 ? 1 : -1; + } + + int n = this.Receive(length, stream); + if (n >= 1 << (length - 1)) + { + return n; + } + + return n + (-1 << length) + 1; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + { + int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); + int diff = t == 0 ? 0 : this.ReceiveAndExtend(t, stream); + component.BlockData[offset] = (short)(component.Pred += diff); + + int k = 1; + while (k < 64) + { + int rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + int s = rs & 15; + int r = rs >> 4; + + if (s == 0) + { + if (r < 15) + { + break; + } + + k += 16; + continue; + } + + k += r; + byte z = QuantizationTables.DctZigZag[k]; + short re = (short)this.ReceiveAndExtend(s, stream); + component.BlockData[offset + z] = re; + k++; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + { + int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); + int diff = t == 0 ? 0 : this.ReceiveAndExtend(t, stream) << this.successiveState; + component.BlockData[offset] = (short)(component.Pred += diff); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeDCSuccessive(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + { + component.BlockData[offset] |= (short)(this.ReadBit(stream) << this.successiveState); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + { + if (this.eobrun > 0) + { + this.eobrun--; + return; + } + + int k = this.specStart; + int e = this.specEnd; + while (k <= e) + { + short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + int s = rs & 15; + int r = rs >> 4; + + if (s == 0) + { + if (r < 15) + { + this.eobrun = this.Receive(r, stream) + (1 << r) - 1; + break; + } + + k += 16; + continue; + } + + k += r; + byte z = QuantizationTables.DctZigZag[k]; + component.BlockData[offset + z] = (short)(this.ReceiveAndExtend(s, stream) * (1 << this.successiveState)); + k++; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeACSuccessive(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + { + int k = this.specStart; + int e = this.specEnd; + int r = 0; + while (k <= e) + { + byte z = QuantizationTables.DctZigZag[k]; + int successiveACNextValue = 0; + switch (this.successiveACState) + { + case 0: // Initial state + short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + int s = rs & 15; + r = rs >> 4; + if (s == 0) + { + if (r < 15) + { + this.eobrun = this.Receive(r, stream) + (1 << r); + this.successiveACState = 4; + } + else + { + r = 16; + this.successiveACState = 1; + } + } + else + { + if (s != 1) + { + throw new ImageFormatException("Invalid ACn encoding"); + } + + successiveACNextValue = this.ReceiveAndExtend(s, stream); + this.successiveACState = r > 0 ? 2 : 3; + } + + continue; + case 1: // Skipping r zero items + case 2: + if (component.BlockData[offset + z] > 0) + { + component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); + } + else + { + r--; + if (r == 0) + { + this.successiveACState = this.successiveACState == 2 ? 3 : 0; + } + } + + break; + case 3: // Set value for a zero item + if (component.BlockData[offset + z] > 0) + { + component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); + } + else + { + component.BlockData[offset + z] = (short)(successiveACNextValue << this.successiveState); + this.successiveACState = 0; + } + + break; + case 4: // Eob + if (component.BlockData[offset + z] > 0) + { + component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); + } + + break; + } + + k++; + } + + if (this.successiveACState == 4) + { + this.eobrun--; + if (this.eobrun == 0) + { + this.successiveACState = 0; + } + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs index f26dbded5d..0ad8afa911 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs @@ -173,6 +173,24 @@ public static class Markers /// public const ushort SOS = 0xFFDA; + /// + /// Define First Restart + /// + /// Inserted every r macroblocks, where r is the restart interval set by a DRI marker. + /// Not used if there was no DRI marker. The low three bits of the marker code cycle in value from 0 to 7. + /// + /// + public const ushort RST0 = 0xFFD0; + + /// + /// Define Eigth Restart + /// + /// Inserted every r macroblocks, where r is the restart interval set by a DRI marker. + /// Not used if there was no DRI marker. The low three bits of the marker code cycle in value from 0 to 7. + /// + /// + public const ushort RST7 = 0xFFD7; + /// /// Contains JFIF specific markers /// diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 9dd45f53b1..873d4623db 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -8,6 +8,7 @@ namespace ImageSharp.Formats.Jpeg.Port using System; using System.Collections.Generic; using System.IO; + using System.Runtime.CompilerServices; using ImageSharp.Common.Extensions; using ImageSharp.Formats.Jpeg.Port.Components; @@ -18,7 +19,7 @@ namespace ImageSharp.Formats.Jpeg.Port /// Performs the jpeg decoding operation. /// Ported from /// - internal class JpegDecoderCore + internal class JpegDecoderCore : IDisposable { /// /// The decoder options. @@ -48,10 +49,12 @@ internal class JpegDecoderCore private ushort resetInterval; /// - /// COntains information about the jFIF marker + /// Contains information about the jFIF marker /// private JFif jFif; + private bool isDisposed; + /// /// Initializes a new instance of the class. /// @@ -68,6 +71,109 @@ public JpegDecoderCore(IDecoderOptions options, Configuration configuration) /// public Stream InputStream { get; private set; } + /// + /// Finds the next file marker within the byte stream. Not used but I'm keeping it for now for testing + /// + /// The input stream + /// The + public static FileMarker FindNextFileMarkerOld(Stream stream) + { + byte[] buffer = new byte[2]; + while (true) + { + int value = stream.Read(buffer, 0, 2); + + if (value == 0) + { + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + while (buffer[0] != JpegConstants.Markers.Prefix) + { + // Strictly speaking, this is a format error. However, libjpeg is + // liberal in what it accepts. As of version 9, next_marker in + // jdmarker.c treats this as a warning (JWRN_EXTRANEOUS_DATA) and + // continues to decode the stream. Even before next_marker sees + // extraneous data, jpeg_fill_bit_buffer in jdhuff.c reads as many + // bytes as it can, possibly past the end of a scan's data. It + // effectively puts back any markers that it overscanned (e.g. an + // "\xff\xd9" EOI marker), but it does not put back non-marker data, + // and thus it can silently ignore a small number of extraneous + // non-marker bytes before next_marker has a chance to see them (and + // print a warning). + // We are therefore also liberal in what we accept. Extraneous data + // is silently ignore + // This is similar to, but not exactly the same as, the restart + // mechanism within a scan (the RST[0-7] markers). + // Note that extraneous 0xff bytes in e.g. SOS data are escaped as + // "\xff\x00", and so are detected a little further down below. + buffer[0] = buffer[1]; + + value = stream.ReadByte(); + if (value == -1) + { + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + buffer[1] = (byte)value; + } + + return new FileMarker((ushort)((buffer[0] << 8) | buffer[1]), (int)(stream.Position - 2)); + } + } + + /// + /// Finds the next file marker within the byte stream + /// + /// The input stream + /// The + public static FileMarker FindNextFileMarker(Stream stream) + { + byte[] buffer = new byte[2]; + long maxPos = stream.Length - 1; + long currentPos = stream.Position; + long newPos = currentPos; + + if (currentPos >= maxPos) + { + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + int value = stream.Read(buffer, 0, 2); + + if (value == 0) + { + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + ushort currentMarker = (ushort)((buffer[0] << 8) | buffer[1]); + if (currentMarker >= JpegConstants.Markers.SOF0 && currentMarker <= JpegConstants.Markers.COM) + { + return new FileMarker(currentMarker, stream.Position - 2); + } + + value = stream.Read(buffer, 0, 2); + + if (value == 0) + { + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + ushort newMarker = (ushort)((buffer[0] << 8) | buffer[1]); + while (!(newMarker >= JpegConstants.Markers.SOF0 && newMarker <= JpegConstants.Markers.COM)) + { + if (++newPos >= maxPos) + { + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + stream.Read(buffer, 0, 2); + newMarker = (ushort)((buffer[0] << 8) | buffer[1]); + } + + return new FileMarker(newMarker, newPos, true); + } + /// /// Decodes the image from the specified and sets /// the data to image. @@ -85,27 +191,52 @@ public Image Decode(Stream stream) return image; } + /// + public void Dispose() + { + this.Dispose(true); + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + /// Whether to dispose of managed objects + protected virtual void Dispose(bool disposing) + { + if (!this.isDisposed) + { + if (disposing) + { + this.frame.Dispose(); + } + + // TODO: set large fields to null. + this.isDisposed = true; + } + } + private void ParseStream() { // Check for the Start Of Image marker. - ushort fileMarker = this.ReadUint16(); - if (fileMarker != JpegConstants.Markers.SOI) + var fileMarker = new FileMarker(this.ReadUint16(), 0); + if (fileMarker.Marker != JpegConstants.Markers.SOI) { throw new ImageFormatException("Missing SOI marker."); } - fileMarker = this.ReadUint16(); + ushort marker = this.ReadUint16(); + fileMarker = new FileMarker(marker, (int)this.InputStream.Position - 2); this.quantizationTables = new QuantizationTables(); this.dcHuffmanTables = new HuffmanTables(); this.acHuffmanTables = new HuffmanTables(); - while (fileMarker != JpegConstants.Markers.EOI) + while (fileMarker.Marker != JpegConstants.Markers.EOI) { // Get the marker length int remaining = this.ReadUint16() - 2; - switch (fileMarker) + switch (fileMarker.Marker) { case JpegConstants.Markers.APP0: this.ProcessApplicationHeaderMarker(remaining); @@ -148,12 +279,12 @@ private void ParseStream() break; case JpegConstants.Markers.SOS: - this.ProcessStartOfScan(); + this.ProcessStartOfScanMarker(); break; } // Read on - fileMarker = this.FindNextFileMarker(); + fileMarker = FindNextFileMarker(this.InputStream); } } @@ -281,7 +412,7 @@ private void ProcessDqtMarker(int remaining) /// /// The remaining bytes in the segment block. /// The current frame marker. - private void ProcessStartOfFrameMarker(int remaining, ushort frameMarker) + private void ProcessStartOfFrameMarker(int remaining, FileMarker frameMarker) { if (this.frame != null) { @@ -292,8 +423,8 @@ private void ProcessStartOfFrameMarker(int remaining, ushort frameMarker) this.frame = new Frame { - Extended = frameMarker == JpegConstants.Markers.SOF1, - Progressive = frameMarker == JpegConstants.Markers.SOF2, + Extended = frameMarker.Marker == JpegConstants.Markers.SOF1, + Progressive = frameMarker.Marker == JpegConstants.Markers.SOF2, Precision = this.temp[0], Scanlines = (short)((this.temp[1] << 8) | this.temp[2]), SamplesPerLine = (short)((this.temp[3] << 8) | this.temp[4]), @@ -304,9 +435,9 @@ private void ProcessStartOfFrameMarker(int remaining, ushort frameMarker) int maxV = 0; int index = 6; - // TODO: Pool this. + // No need to pool this. They max out at 4 this.frame.ComponentIds = new byte[this.frame.ComponentCount]; - this.frame.Components = new Component[this.frame.ComponentCount]; + this.frame.Components = new FrameComponent[this.frame.ComponentCount]; for (int i = 0; i < this.frame.ComponentCount; i++) { @@ -389,30 +520,36 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) /// /// Processes the SOS (Start of scan marker). /// - private void ProcessStartOfScan() + private void ProcessStartOfScanMarker() { int selectorsCount = this.InputStream.ReadByte(); - var components = new List(); - for (int i = 0; i < selectorsCount; i++) { byte componentIndex = this.frame.ComponentIds[this.InputStream.ReadByte() - 1]; - Component component = this.frame.Components[componentIndex]; + ref FrameComponent component = ref this.frame.Components[componentIndex]; int tableSpec = this.InputStream.ReadByte(); component.DCHuffmanTableId = tableSpec >> 4; component.ACHuffmanTableId = tableSpec & 15; - components.Add(component); } this.InputStream.Read(this.temp, 0, 3); + int spectralStart = this.temp[0]; int spectralEnd = this.temp[1]; int successiveApproximation = this.temp[2]; - } - - private int DecodeScan(List components, int spectralStart, int spectralEnd, int successivePrev, int successive) - { - return 0; + var scanDecoder = default(ScanDecoder); + + scanDecoder.DecodeScan( + this.frame, + this.InputStream, + this.dcHuffmanTables, + this.acHuffmanTables, + this.frame.Components, + this.resetInterval, + spectralStart, + spectralEnd, + successiveApproximation >> 4, + successiveApproximation & 15); } /// @@ -430,8 +567,8 @@ private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengt length--; } - // TODO: Check the capacity here. Seems to max at 2 - var code = new List { new HuffmanBranch(new List()) }; + // TODO: Check the branch children capacity here. Seems to max at 2 + var code = new List { new HuffmanBranch(-1) }; HuffmanBranch p = code[0]; int k = 0; @@ -441,7 +578,7 @@ private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengt for (int j = 0; j < codeLengths[i]; j++) { p = code.Pop(); - p.Children.SafeInsert(p.Index, new HuffmanBranch(values[k])); + p.Children[p.Index] = new HuffmanBranch(values[k]); while (p.Index > 0) { p = code.Pop(); @@ -451,9 +588,9 @@ private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengt code.Add(p); while (code.Count <= i) { - q = new HuffmanBranch(new List()); + q = new HuffmanBranch(-1); code.Add(q); - p.Children.SafeInsert(p.Index, new HuffmanBranch(q.Children)); + p.Children[p.Index] = new HuffmanBranch(q.Children); p = q; } @@ -463,9 +600,9 @@ private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengt if (i + 1 < length) { // p here points to last code - q = new HuffmanBranch(new List()); + q = new HuffmanBranch(-1); code.Add(q); - p.Children.SafeInsert(p.Index, new HuffmanBranch(q.Children)); + p.Children[p.Index] = new HuffmanBranch(q.Children); p = q; } } @@ -478,21 +615,21 @@ private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengt /// private void PrepareComponents() { - int mcusPerLine = this.frame.SamplesPerLine / 8 / this.frame.MaxHorizontalFactor; - int mcusPerColumn = this.frame.Scanlines / 8 / this.frame.MaxVerticalFactor; + int mcusPerLine = (int)Math.Ceiling(this.frame.SamplesPerLine / 8D / this.frame.MaxHorizontalFactor); + int mcusPerColumn = (int)Math.Ceiling(this.frame.Scanlines / 8D / this.frame.MaxVerticalFactor); for (int i = 0; i < this.frame.ComponentCount; i++) { ref var component = ref this.frame.Components[i]; - int blocksPerLine = this.frame.SamplesPerLine / 8 * component.HorizontalFactor / this.frame.MaxHorizontalFactor; - int blocksPerColumn = this.frame.Scanlines / 8 * component.VerticalFactor / this.frame.MaxVerticalFactor; + int blocksPerLine = (int)Math.Ceiling(Math.Ceiling(this.frame.SamplesPerLine / 8D) * component.HorizontalFactor / this.frame.MaxHorizontalFactor); + int blocksPerColumn = (int)Math.Ceiling(Math.Ceiling(this.frame.Scanlines / 8D) * component.VerticalFactor / this.frame.MaxVerticalFactor); int blocksPerLineForMcu = mcusPerLine * component.HorizontalFactor; int blocksPerColumnForMcu = mcusPerColumn * component.VerticalFactor; int blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); - // TODO: Pool this - component.BlockData = new short[blocksBufferSize]; + // Pooled. Disposed via frame siposal + component.BlockData = new Buffer(blocksBufferSize); component.BlocksPerLine = blocksPerLine; component.BlocksPerColumn = blocksPerColumn; } @@ -501,59 +638,11 @@ private void PrepareComponents() this.frame.McusPerColumn = mcusPerColumn; } - /// - /// Finds the next file marker within the byte stream - /// - /// The - private ushort FindNextFileMarker() - { - while (true) - { - int value = this.InputStream.Read(this.uint16Buffer, 0, 2); - - if (value == 0) - { - return JpegConstants.Markers.EOI; - } - - while (this.uint16Buffer[0] != JpegConstants.Markers.Prefix) - { - // Strictly speaking, this is a format error. However, libjpeg is - // liberal in what it accepts. As of version 9, next_marker in - // jdmarker.c treats this as a warning (JWRN_EXTRANEOUS_DATA) and - // continues to decode the stream. Even before next_marker sees - // extraneous data, jpeg_fill_bit_buffer in jdhuff.c reads as many - // bytes as it can, possibly past the end of a scan's data. It - // effectively puts back any markers that it overscanned (e.g. an - // "\xff\xd9" EOI marker), but it does not put back non-marker data, - // and thus it can silently ignore a small number of extraneous - // non-marker bytes before next_marker has a chance to see them (and - // print a warning). - // We are therefore also liberal in what we accept. Extraneous data - // is silently ignore - // This is similar to, but not exactly the same as, the restart - // mechanism within a scan (the RST[0-7] markers). - // Note that extraneous 0xff bytes in e.g. SOS data are escaped as - // "\xff\x00", and so are detected a little further down below. - this.uint16Buffer[0] = this.uint16Buffer[1]; - - value = this.InputStream.ReadByte(); - if (value == -1) - { - return JpegConstants.Markers.EOI; - } - - this.uint16Buffer[1] = (byte)value; - } - - return (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); - } - } - /// /// Reads a from the stream advancing it by two bytes /// /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] private ushort ReadUint16() { this.InputStream.Read(this.uint16Buffer, 0, 2); diff --git a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs index 455af48ad2..56771bcf58 100644 --- a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs +++ b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs @@ -23,21 +23,21 @@ public void ReadImages() { if (this.jpegBytes == null) { - this.jpegBytes = File.ReadAllBytes("../ImageSharp.Tests/TestImages/Formats/Jpg/Baseline/Calliphora.jpg"); + this.jpegBytes = File.ReadAllBytes("../../../../../../../../ImageSharp.Tests/TestImages/Formats/Jpg/Baseline/Calliphora.jpg"); } } - [Benchmark(Baseline = true, Description = "System.Drawing Jpeg")] - public Size JpegSystemDrawing() - { - using (MemoryStream memoryStream = new MemoryStream(this.jpegBytes)) - { - using (Image image = Image.FromStream(memoryStream)) - { - return image.Size; - } - } - } + //[Benchmark(Baseline = true, Description = "System.Drawing Jpeg")] + //public Size JpegSystemDrawing() + //{ + // using (MemoryStream memoryStream = new MemoryStream(this.jpegBytes)) + // { + // using (Image image = Image.FromStream(memoryStream)) + // { + // return image.Size; + // } + // } + //} [Benchmark(Description = "ImageSharp Jpeg")] public CoreSize JpegCore() From 8bbc63f396e70f3d24878bdc19233f60043dd080 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 23 Jun 2017 01:04:13 +1000 Subject: [PATCH 011/135] Begin second phase of decoding --- .../Formats/Jpeg/Port/Components/Adobe.cs | 38 ++++ .../Formats/Jpeg/Port/Components/Component.cs | 48 +++++ .../Jpeg/Port/Components/ComponentBlocks.cs | 53 +++++ .../Formats/Jpeg/Port/Components/Frame.cs | 8 +- .../Jpeg/Port/Components/FrameComponent.cs | 5 - .../Formats/Jpeg/Port/Components/JFif.cs | 43 ++++ .../Formats/Jpeg/Port/JpegConstants.cs | 58 +++++- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 188 ++++++++++++++---- 8 files changed, 389 insertions(+), 52 deletions(-) create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs new file mode 100644 index 0000000000..130b7bdb36 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs @@ -0,0 +1,38 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +// ReSharper disable InconsistentNaming +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + /// + /// Provides information about the Adobe marker segment + /// + internal struct Adobe + { + /// + /// The DCT Encode Version + /// + public short DCTEncodeVersion; + + /// + /// 0x0 : (none) + /// Bit 15 : Encoded with Blend=1 downsampling + /// + public short APP14Flags0; + + /// + /// 0x0 : (none) + /// + public short APP14Flags1; + + /// + /// Determines the colorspace transform + /// 00 : Unknown (RGB or CMYK) + /// 01 : YCbCr + /// 02 : YCCK + /// + public byte ColorTransform; + } +} diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs new file mode 100644 index 0000000000..e5ae70f1f3 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs @@ -0,0 +1,48 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System; + + using ImageSharp.Memory; + + /// + /// Represents a component block + /// + internal struct Component : IDisposable + { + /// + /// Gets or sets the output + /// + public Buffer Output; + + /// + /// Gets or sets the horizontal scaling factor + /// + public int ScaleX; + + /// + /// Gets or sets the vertical scaling factor + /// + public int ScaleY; + + /// + /// Gets or sets the number of blocks per line + /// + public int BlocksPerLine; + + /// + /// Gets or sets the number of blocks per column + /// + public int BlocksPerColumn; + + /// + public void Dispose() + { + this.Output?.Dispose(); + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs new file mode 100644 index 0000000000..5b66ad5981 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs @@ -0,0 +1,53 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System; + + /// + /// Contains all the decoded component blocks + /// + internal class ComponentBlocks : IDisposable + { + private bool isDisposed; + + /// + /// Gets or sets the component blocks + /// + public Component[] Components { get; set; } + + /// + public void Dispose() + { + this.Dispose(true); + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + /// Whether to dispose of managed objects + protected virtual void Dispose(bool disposing) + { + if (!this.isDisposed) + { + if (disposing) + { + if (this.Components != null) + { + for (int i = 0; i < this.Components.Length; i++) + { + this.Components[i].Dispose(); + } + } + } + + // Set large fields to null. + this.Components = null; + this.isDisposed = true; + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs index 97c422ca32..20fd2e9e84 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs @@ -93,15 +93,17 @@ protected virtual void Dispose(bool disposing) if (disposing) { - foreach (FrameComponent component in this.Components) + if (this.Components != null) { - component.Dispose(); + for (int i = 0; i < this.Components.Length; i++) + { + this.Components[i].Dispose(); + } } } // Set large fields to null. this.Components = null; - this.isDisposed = true; } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs index 18176bde73..0cb9bbb1cb 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs @@ -39,11 +39,6 @@ internal struct FrameComponent : IDisposable /// public byte QuantizationIdentifier; - /// - /// Gets or sets the quantization table - /// - public short[] QuantizationTable; - /// /// Gets or sets the block data /// diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs new file mode 100644 index 0000000000..7fa6c44d0a --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs @@ -0,0 +1,43 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + /// + /// Provides information about the JFIF marker segment + /// + internal struct JFif + { + /// + /// The major version + /// + public byte MajorVersion; + + /// + /// The minor version + /// + public byte MinorVersion; + + /// + /// Units for the following pixel density fields + /// 00 : No units; width:height pixel aspect ratio = Ydensity:Xdensity + /// 01 : Pixels per inch (2.54 cm) + /// 02 : Pixels per centimeter + /// + public byte DensityUnits; + + /// + /// Horizontal pixel density. Must not be zero. + /// + public short XDensity; + + /// + /// Vertical pixel density. Must not be zero. + /// + public short YDensity; + + // TODO: Thumbnail? + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs index 0ad8afa911..08ae5543de 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs @@ -1,4 +1,9 @@ -// ReSharper disable InconsistentNaming +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +// ReSharper disable InconsistentNaming namespace ImageSharp.Formats.Jpeg.Port { /// @@ -191,6 +196,11 @@ public static class Markers /// public const ushort RST7 = 0xFFD7; + /// + /// Marker prefix. Next byte is a marker. + /// + public const ushort XFF = 0xFFFF; + /// /// Contains JFIF specific markers /// @@ -216,6 +226,52 @@ public static class JFif /// public const byte Null = 0; } + + /// + /// Contains Adobe specific markers + /// + public static class Adobe + { + /// + /// Represents A in ASCII + /// + public const byte A = 0x41; + + /// + /// Represents d in ASCII + /// + public const byte D = 0x64; + + /// + /// Represents b in ASCII + /// + public const byte O = 0x6F; + + /// + /// Represents b in ASCII + /// + public const byte B = 0x62; + + /// + /// Represents e in ASCII + /// + public const byte E = 0x65; + + /// + /// The color transform is unknown.(RGB or CMYK) + /// + public const byte ColorTransformUnknown = 0; + + /// + /// The color transform is YCbCr (luminance, red chroma, blue chroma) + /// + public const byte ColorTransformYCbCr = 1; + + /// + /// The color transform is YCCK (luminance, red chroma, blue chroma, keyline) + /// + public const byte ColorTransformYcck = 2; + } } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 873d4623db..deeec34fc5 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -46,13 +46,29 @@ internal class JpegDecoderCore : IDisposable private Frame frame; + private ComponentBlocks components; + private ushort resetInterval; + private int width; + + private int height; + + private int numComponents; + /// - /// Contains information about the jFIF marker + /// Contains information about the JFIF marker /// private JFif jFif; + /// + /// Contains information about the Adobe marker + /// + private Adobe adobe; + + /// + /// A value indicating whether the decoder has been disposed + /// private bool isDisposed; /// @@ -208,9 +224,12 @@ protected virtual void Dispose(bool disposing) if (disposing) { this.frame.Dispose(); + this.components.Dispose(); } - // TODO: set large fields to null. + // Set large fields to null. + this.frame = null; + this.components = null; this.isDisposed = true; } } @@ -255,9 +274,16 @@ private void ParseStream() case JpegConstants.Markers.APP11: case JpegConstants.Markers.APP12: case JpegConstants.Markers.APP13: + break; + case JpegConstants.Markers.APP14: + this.ProcessApp14Marker(remaining); + break; + case JpegConstants.Markers.APP15: case JpegConstants.Markers.COM: + + // TODO: Read data block break; case JpegConstants.Markers.DQT: @@ -275,17 +301,66 @@ private void ParseStream() break; case JpegConstants.Markers.DRI: - this.resetInterval = this.ReadUint16(); + this.ProcessDefineRestartIntervalMarker(remaining); break; case JpegConstants.Markers.SOS: this.ProcessStartOfScanMarker(); break; + + case JpegConstants.Markers.XFF: + if ((byte)this.InputStream.ReadByte() != 0xFF) + { + // Avoid skipping a valid marker + this.InputStream.Position -= 2; + } + else + { + // Rewind that last byte we read + this.InputStream.Position -= 1; + } + + break; + + default: + + // Skip back as it could be incorrect encoding -- last 0xFF byte of the previous + // block was eaten by the encoder + this.InputStream.Position -= 3; + this.InputStream.Read(this.temp, 0, 2); + if (this.temp[0] == 0xFF && this.temp[1] >= 0xC0 && this.temp[1] <= 0xFE) + { + // Rewind that last bytes we read + this.InputStream.Position -= 2; + } + + break; } - // Read on + // Read on. TODO: Test this on damaged images. fileMarker = FindNextFileMarker(this.InputStream); } + + this.width = this.frame.SamplesPerLine; + this.height = this.frame.Scanlines; + this.components = new ComponentBlocks { Components = new Component[this.frame.ComponentCount] }; + + for (int i = 0; i < this.components.Components.Length; i++) + { + ref var frameComponent = ref this.frame.Components[i]; + var component = new Component + { + ScaleX = frameComponent.HorizontalFactor / this.frame.MaxHorizontalFactor, + ScaleY = frameComponent.VerticalFactor / this.frame.MaxVerticalFactor, + BlocksPerLine = frameComponent.BlocksPerLine, + BlocksPerColumn = frameComponent.BlocksPerColumn + }; + + this.BuildComponentData(ref component); + this.components.Components[i] = component; + } + + this.numComponents = this.components.Components.Length; } /// @@ -322,7 +397,47 @@ private void ProcessApplicationHeaderMarker(int remaining) }; } - // Skip thumbnails for now. + // TODO: thumbnail + if (remaining > 0) + { + this.InputStream.Skip(remaining); + } + } + + /// + /// Processes the application header containing the Adobe identifier + /// which stores image encoding information for DCT filters. + /// + /// The remaining bytes in the segment block. + private void ProcessApp14Marker(int remaining) + { + if (remaining < 12) + { + // Skip the application header length + this.InputStream.Skip(remaining); + return; + } + + this.InputStream.Read(this.temp, 0, 12); + remaining -= 12; + + bool isAdobe = this.temp[0] == JpegConstants.Markers.Adobe.A && + this.temp[1] == JpegConstants.Markers.Adobe.D && + this.temp[2] == JpegConstants.Markers.Adobe.O && + this.temp[3] == JpegConstants.Markers.Adobe.B && + this.temp[4] == JpegConstants.Markers.Adobe.E; + + if (isAdobe) + { + this.adobe = new Adobe + { + DCTEncodeVersion = (short)((this.temp[5] << 8) | this.temp[6]), + APP14Flags0 = (short)((this.temp[7] << 8) | this.temp[8]), + APP14Flags1 = (short)((this.temp[9] << 8) | this.temp[10]), + ColorTransform = this.temp[11] + }; + } + if (remaining > 0) { this.InputStream.Skip(remaining); @@ -439,7 +554,7 @@ private void ProcessStartOfFrameMarker(int remaining, FileMarker frameMarker) this.frame.ComponentIds = new byte[this.frame.ComponentCount]; this.frame.Components = new FrameComponent[this.frame.ComponentCount]; - for (int i = 0; i < this.frame.ComponentCount; i++) + for (int i = 0; i < this.frame.Components.Length; i++) { int h = this.temp[index + 1] >> 4; int v = this.temp[index + 1] & 15; @@ -462,7 +577,6 @@ private void ProcessStartOfFrameMarker(int remaining, FileMarker frameMarker) this.frame.ComponentIds[i] = (byte)i; - // Don't assign the table yet. index += 3; } @@ -517,6 +631,21 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) } } + /// + /// Processes the DRI (Define Restart Interval Marker) Which specifies the interval between RSTn markers, in + /// macroblocks + /// + /// The remaining bytes in the segment block. + private void ProcessDefineRestartIntervalMarker(int remaining) + { + if (remaining != 2) + { + throw new ImageFormatException("DRI has wrong length"); + } + + this.resetInterval = this.ReadUint16(); + } + /// /// Processes the SOS (Start of scan marker). /// @@ -552,6 +681,15 @@ private void ProcessStartOfScanMarker() successiveApproximation & 15); } + /// + /// Build the data for the given component + /// + /// The component + private void BuildComponentData(ref Component component) + { + // TODO: Write this + } + /// /// Builds the huffman tables /// @@ -648,41 +786,5 @@ private ushort ReadUint16() this.InputStream.Read(this.uint16Buffer, 0, 2); return (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); } - - /// - /// Provides information about the JFIF marker segment - /// - internal struct JFif - { - /// - /// The major version - /// - public byte MajorVersion; - - /// - /// The minor version - /// - public byte MinorVersion; - - /// - /// Units for the following pixel density fields - /// 00 : No units; width:height pixel aspect ratio = Ydensity:Xdensity - /// 01 : Pixels per inch (2.54 cm) - /// 02 : Pixels per centimeter - /// - public byte DensityUnits; - - /// - /// Horizontal pixel density. Must not be zero. - /// - public short XDensity; - - /// - /// Vertical pixel density. Must not be zero. - /// - public short YDensity; - - // TODO: Thumbnail? - } } } \ No newline at end of file From c1025a6ea047efdccaba9b8eddfed62b966df20e Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 23 Jun 2017 13:06:52 +1000 Subject: [PATCH 012/135] Impove disposal --- .../Jpeg/Port/Components/ComponentBlocks.cs | 27 ++-------- .../Formats/Jpeg/Port/Components/Frame.cs | 33 +++--------- .../Port/Components/QuantizationTables.cs | 16 ++++-- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 53 +++++++------------ 4 files changed, 42 insertions(+), 87 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs index 5b66ad5981..a72835e757 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ComponentBlocks.cs @@ -10,10 +10,8 @@ namespace ImageSharp.Formats.Jpeg.Port.Components /// /// Contains all the decoded component blocks /// - internal class ComponentBlocks : IDisposable + internal sealed class ComponentBlocks : IDisposable { - private bool isDisposed; - /// /// Gets or sets the component blocks /// @@ -22,31 +20,14 @@ internal class ComponentBlocks : IDisposable /// public void Dispose() { - this.Dispose(true); - } - - /// - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - /// Whether to dispose of managed objects - protected virtual void Dispose(bool disposing) - { - if (!this.isDisposed) + if (this.Components != null) { - if (disposing) + for (int i = 0; i < this.Components.Length; i++) { - if (this.Components != null) - { - for (int i = 0; i < this.Components.Length; i++) - { - this.Components[i].Dispose(); - } - } + this.Components[i].Dispose(); } - // Set large fields to null. this.Components = null; - this.isDisposed = true; } } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs index 20fd2e9e84..06b4bbc24f 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Frame.cs @@ -10,10 +10,8 @@ namespace ImageSharp.Formats.Jpeg.Port.Components /// /// Represent a single jpeg frame /// - internal class Frame : IDisposable + internal sealed class Frame : IDisposable { - private bool isDisposed; - /// /// Gets or sets a value indicating whether the frame uses the extended specification /// @@ -77,34 +75,15 @@ internal class Frame : IDisposable /// public void Dispose() { - this.Dispose(true); - } - - /// - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - /// Whether to dispose of managed objects - protected virtual void Dispose(bool disposing) - { - if (this.isDisposed) + if (this.Components != null) { - return; - } - - if (disposing) - { - if (this.Components != null) + for (int i = 0; i < this.Components.Length; i++) { - for (int i = 0; i < this.Components.Length; i++) - { - this.Components[i].Dispose(); - } + this.Components[i].Dispose(); } - } - // Set large fields to null. - this.Components = null; - this.isDisposed = true; + this.Components = null; + } } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs index 1ca31b31bf..fa57a18dd7 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs @@ -5,15 +5,15 @@ namespace ImageSharp.Formats.Jpeg.Port.Components { + using System; using System.Runtime.CompilerServices; using ImageSharp.Memory; /// /// Contains the quantization tables. - /// TODO: This all needs optimizing for memory. I'm just stubbing out functionality for now. /// - internal class QuantizationTables + internal sealed class QuantizationTables : IDisposable { /// /// Gets the ZigZag scan table @@ -46,6 +46,16 @@ public static byte[] DctZigZag /// /// Gets or sets the quantization tables. /// - public Fast2DArray Tables { get; set; } = new Fast2DArray(64, 4); + public Buffer2D Tables { get; set; } + + /// + public void Dispose() + { + if (this.Tables != null) + { + this.Tables.Dispose(); + this.Tables = null; + } + } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index deeec34fc5..8d3cec616a 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -19,7 +19,7 @@ namespace ImageSharp.Formats.Jpeg.Port /// Performs the jpeg decoding operation. /// Ported from /// - internal class JpegDecoderCore : IDisposable + internal sealed class JpegDecoderCore : IDisposable { /// /// The decoder options. @@ -66,11 +66,6 @@ internal class JpegDecoderCore : IDisposable /// private Adobe adobe; - /// - /// A value indicating whether the decoder has been disposed - /// - private bool isDisposed; - /// /// Initializes a new instance of the class. /// @@ -210,28 +205,14 @@ public Image Decode(Stream stream) /// public void Dispose() { - this.Dispose(true); - } - - /// - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - /// Whether to dispose of managed objects - protected virtual void Dispose(bool disposing) - { - if (!this.isDisposed) - { - if (disposing) - { - this.frame.Dispose(); - this.components.Dispose(); - } - - // Set large fields to null. - this.frame = null; - this.components = null; - this.isDisposed = true; - } + this.frame.Dispose(); + this.components.Dispose(); + this.quantizationTables.Dispose(); + + // Set large fields to null. + this.frame = null; + this.components = null; + this.quantizationTables = null; } private void ParseStream() @@ -253,11 +234,12 @@ private void ParseStream() while (fileMarker.Marker != JpegConstants.Markers.EOI) { // Get the marker length - int remaining = this.ReadUint16() - 2; + int remaining; switch (fileMarker.Marker) { case JpegConstants.Markers.APP0: + remaining = this.ReadUint16() - 2; this.ProcessApplicationHeaderMarker(remaining); break; @@ -277,6 +259,7 @@ private void ParseStream() break; case JpegConstants.Markers.APP14: + remaining = this.ReadUint16() - 2; this.ProcessApp14Marker(remaining); break; @@ -287,24 +270,29 @@ private void ParseStream() break; case JpegConstants.Markers.DQT: + remaining = this.ReadUint16() - 2; this.ProcessDqtMarker(remaining); break; case JpegConstants.Markers.SOF0: case JpegConstants.Markers.SOF1: case JpegConstants.Markers.SOF2: + remaining = this.ReadUint16() - 2; this.ProcessStartOfFrameMarker(remaining, fileMarker); break; case JpegConstants.Markers.DHT: + remaining = this.ReadUint16() - 2; this.ProcessDefineHuffmanTablesMarker(remaining); break; case JpegConstants.Markers.DRI: + remaining = this.ReadUint16() - 2; this.ProcessDefineRestartIntervalMarker(remaining); break; case JpegConstants.Markers.SOS: + this.InputStream.Skip(2); this.ProcessStartOfScanMarker(); break; @@ -312,11 +300,6 @@ private void ParseStream() if ((byte)this.InputStream.ReadByte() != 0xFF) { // Avoid skipping a valid marker - this.InputStream.Position -= 2; - } - else - { - // Rewind that last byte we read this.InputStream.Position -= 1; } @@ -453,6 +436,8 @@ private void ProcessApp14Marker(int remaining) /// private void ProcessDqtMarker(int remaining) { + // Pooled. Disposed on disposal of decoder + this.quantizationTables.Tables = new Buffer2D(64, 4); while (remaining > 0) { bool done = false; From 549e61f2f4a49563cb8993d81d57993b58bcd2e2 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Sat, 24 Jun 2017 00:03:01 +1000 Subject: [PATCH 013/135] Experiment with new file marker finder --- src/ImageSharp/Formats/Jpeg/JpegDecoder.cs | 2 +- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 50 +++++++++++++++++-- .../ImageSharp.Benchmarks/Image/DecodeJpeg.cs | 1 + 3 files changed, 47 insertions(+), 6 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs b/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs index 117edb2254..33d82ace84 100644 --- a/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/JpegDecoder.cs @@ -21,7 +21,7 @@ public Image Decode(Configuration configuration, Stream stream, { Guard.NotNull(stream, "stream"); - // using (JpegDecoderCore decoder = new JpegDecoderCore(options, configuration)) + // using (var decoder = new JpegDecoderCore(options, configuration)) // { // return decoder.Decode(stream); // } diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 8d3cec616a..4bb93151a3 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -185,6 +185,45 @@ public static FileMarker FindNextFileMarker(Stream stream) return new FileMarker(newMarker, newPos, true); } + /// + /// Finds the next file marker within the byte stream. Used for testing. Slower as it only reads on byte at a time + /// + /// The input stream + /// The + public static FileMarker FindNextFileMarkerNew(Stream stream) + { + while (true) + { + int value = stream.ReadByte(); + + if (value == -1) + { + // We've reached the end of the stream + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + byte prefix = (byte)value; + byte suffix = JpegConstants.Markers.Prefix; + + // According to Section B.1.1.2: + // "Any marker may optionally be preceded by any number of fill bytes, which are bytes assigned code 0xFF." + while (prefix == JpegConstants.Markers.Prefix && suffix == JpegConstants.Markers.Prefix) + { + value = stream.ReadByte(); + + if (value == -1) + { + // We've reached the end of the stream + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } + + suffix = (byte)value; + } + + return new FileMarker((ushort)((prefix << 8) | suffix), (int)(stream.Position - 2)); + } + } + /// /// Decodes the image from the specified and sets /// the data to image. @@ -205,9 +244,9 @@ public Image Decode(Stream stream) /// public void Dispose() { - this.frame.Dispose(); - this.components.Dispose(); - this.quantizationTables.Dispose(); + this.frame?.Dispose(); + this.components?.Dispose(); + this.quantizationTables?.Dispose(); // Set large fields to null. this.frame = null; @@ -315,13 +354,14 @@ private void ParseStream() { // Rewind that last bytes we read this.InputStream.Position -= 2; + break; } - break; + throw new ImageFormatException($"Unknown Marker {fileMarker.Marker} at {fileMarker.Position}"); } // Read on. TODO: Test this on damaged images. - fileMarker = FindNextFileMarker(this.InputStream); + fileMarker = FindNextFileMarkerNew(this.InputStream); } this.width = this.frame.SamplesPerLine; diff --git a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs index 56771bcf58..28c7d461c2 100644 --- a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs +++ b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs @@ -14,6 +14,7 @@ namespace ImageSharp.Benchmarks.Image using CoreSize = ImageSharp.Size; + [Config(typeof(Config))] public class DecodeJpeg : BenchmarkBase { private byte[] jpegBytes; From 2f501eb1a49886319744d57dae9e1af4c7a2a69f Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Sun, 25 Jun 2017 22:44:07 +1000 Subject: [PATCH 014/135] Decoder now doesn't break tests --- .../Jpeg/Port/Components/HuffmanTables.cs | 18 +-- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 117 ++++++------------ tests/ImageSharp.Tests/xunit.runner.json | 3 +- 3 files changed, 45 insertions(+), 93 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs index a040d21e70..a8644d6451 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -13,9 +13,7 @@ namespace ImageSharp.Formats.Jpeg.Port.Components /// internal class HuffmanTables { - private HuffmanBranch[] first; - - private HuffmanBranch[] second; + private readonly HuffmanBranch[][] tables = new HuffmanBranch[4][]; /// /// Gets or sets the table at the given index. @@ -27,23 +25,13 @@ public HuffmanBranch[] this[int index] [MethodImpl(MethodImplOptions.AggressiveInlining)] get { - if (index == 0) - { - return this.first; - } - - return this.second; + return this.tables[index]; } [MethodImpl(MethodImplOptions.AggressiveInlining)] set { - if (index == 0) - { - this.first = value; - } - - this.second = value; + this.tables[index] = value; } } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 4bb93151a3..5d50ae5353 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -90,47 +90,32 @@ public JpegDecoderCore(IDecoderOptions options, Configuration configuration) public static FileMarker FindNextFileMarkerOld(Stream stream) { byte[] buffer = new byte[2]; - while (true) + int value = stream.Read(buffer, 0, 2); + + if (value == 0) { - int value = stream.Read(buffer, 0, 2); + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } - if (value == 0) - { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } + // According to Section B.1.1.2: + // "Any marker may optionally be preceded by any number of fill bytes, which are bytes assigned code 0xFF." + if (buffer[1] != JpegConstants.Markers.Prefix) + { + return new FileMarker((ushort)((buffer[0] << 8) | buffer[1]), (int)(stream.Position - 2)); + } - while (buffer[0] != JpegConstants.Markers.Prefix) + while (buffer[1] == JpegConstants.Markers.Prefix) + { + int suffix = stream.ReadByte(); + if (suffix == -1) { - // Strictly speaking, this is a format error. However, libjpeg is - // liberal in what it accepts. As of version 9, next_marker in - // jdmarker.c treats this as a warning (JWRN_EXTRANEOUS_DATA) and - // continues to decode the stream. Even before next_marker sees - // extraneous data, jpeg_fill_bit_buffer in jdhuff.c reads as many - // bytes as it can, possibly past the end of a scan's data. It - // effectively puts back any markers that it overscanned (e.g. an - // "\xff\xd9" EOI marker), but it does not put back non-marker data, - // and thus it can silently ignore a small number of extraneous - // non-marker bytes before next_marker has a chance to see them (and - // print a warning). - // We are therefore also liberal in what we accept. Extraneous data - // is silently ignore - // This is similar to, but not exactly the same as, the restart - // mechanism within a scan (the RST[0-7] markers). - // Note that extraneous 0xff bytes in e.g. SOS data are escaped as - // "\xff\x00", and so are detected a little further down below. - buffer[0] = buffer[1]; - - value = stream.ReadByte(); - if (value == -1) - { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } - - buffer[1] = (byte)value; + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); } - return new FileMarker((ushort)((buffer[0] << 8) | buffer[1]), (int)(stream.Position - 2)); + buffer[1] = (byte)value; } + + return new FileMarker((ushort)((buffer[0] << 8) | buffer[1]), (int)(stream.Position - 2)); } /// @@ -185,45 +170,6 @@ public static FileMarker FindNextFileMarker(Stream stream) return new FileMarker(newMarker, newPos, true); } - /// - /// Finds the next file marker within the byte stream. Used for testing. Slower as it only reads on byte at a time - /// - /// The input stream - /// The - public static FileMarker FindNextFileMarkerNew(Stream stream) - { - while (true) - { - int value = stream.ReadByte(); - - if (value == -1) - { - // We've reached the end of the stream - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } - - byte prefix = (byte)value; - byte suffix = JpegConstants.Markers.Prefix; - - // According to Section B.1.1.2: - // "Any marker may optionally be preceded by any number of fill bytes, which are bytes assigned code 0xFF." - while (prefix == JpegConstants.Markers.Prefix && suffix == JpegConstants.Markers.Prefix) - { - value = stream.ReadByte(); - - if (value == -1) - { - // We've reached the end of the stream - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } - - suffix = (byte)value; - } - - return new FileMarker((ushort)((prefix << 8) | suffix), (int)(stream.Position - 2)); - } - } - /// /// Decodes the image from the specified and sets /// the data to image. @@ -357,11 +303,12 @@ private void ParseStream() break; } - throw new ImageFormatException($"Unknown Marker {fileMarker.Marker} at {fileMarker.Position}"); + // throw new ImageFormatException($"Unknown Marker {fileMarker.Marker} at {fileMarker.Position}"); + break; } // Read on. TODO: Test this on damaged images. - fileMarker = FindNextFileMarkerNew(this.InputStream); + fileMarker = FindNextFileMarkerOld(this.InputStream); } this.width = this.frame.SamplesPerLine; @@ -644,7 +591,6 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) i += 17 + codeLengthSum; - // Everything I can discover indicates there's a max of two table per DC AC pair though this limits the index to 16? this.BuildHuffmanTable( huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, huffmanTableSpec & 15, @@ -679,7 +625,23 @@ private void ProcessStartOfScanMarker() int selectorsCount = this.InputStream.ReadByte(); for (int i = 0; i < selectorsCount; i++) { - byte componentIndex = this.frame.ComponentIds[this.InputStream.ReadByte() - 1]; + int index = -1; + int selector = this.InputStream.ReadByte(); + + foreach (byte id in this.frame.ComponentIds) + { + if (selector == id) + { + index = selector; + } + } + + if (index < 0) + { + throw new ImageFormatException("Unknown component selector"); + } + + byte componentIndex = this.frame.ComponentIds[index]; ref FrameComponent component = ref this.frame.Components[componentIndex]; int tableSpec = this.InputStream.ReadByte(); component.DCHuffmanTableId = tableSpec >> 4; @@ -717,6 +679,7 @@ private void BuildComponentData(ref Component component) /// /// Builds the huffman tables + /// TODO: This is our bottleneck. We should use a faster algorithm with a LUT. /// /// The tables /// The table index diff --git a/tests/ImageSharp.Tests/xunit.runner.json b/tests/ImageSharp.Tests/xunit.runner.json index df1c3d50d0..cbaa8f4325 100644 --- a/tests/ImageSharp.Tests/xunit.runner.json +++ b/tests/ImageSharp.Tests/xunit.runner.json @@ -1,3 +1,4 @@ { - "methodDisplay": "method" + "methodDisplay": "method", + "diagnosticMessages": true } \ No newline at end of file From 4a4e94d74a9acdaa0e210b3eca64b595b6047e8d Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 26 Jun 2017 01:18:31 +1000 Subject: [PATCH 015/135] Fix progressive decoding --- .../Jpeg/Port/Components/ScanDecoder.cs | 98 ++++++++++--------- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 50 +++++----- 2 files changed, 79 insertions(+), 69 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 09837aef05..b0c9979d28 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -49,18 +49,31 @@ internal struct ScanDecoder /// The DC Huffman tables /// The AC Huffman tables /// The scan components + /// The component index within the array + /// The length of the components. Different to the array length /// The reset interval /// The spectral selection start /// The spectral selection end /// The successive approximation bit high end /// The successive approximation bit low end - public void DecodeScan(Frame frame, Stream stream, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, FrameComponent[] components, ushort resetInterval, int spectralStart, int spectralEnd, int successivePrev, int successive) + public void DecodeScan( + Frame frame, + Stream stream, + HuffmanTables dcHuffmanTables, + HuffmanTables acHuffmanTables, + FrameComponent[] components, + int componentIndex, + int componentsLength, + ushort resetInterval, + int spectralStart, + int spectralEnd, + int successivePrev, + int successive) { this.specStart = spectralStart; this.specEnd = spectralEnd; this.successiveState = successive; bool progressive = frame.Progressive; - int componentsLength = components.Length; int mcusPerLine = frame.McusPerLine; // TODO: Delegate action will not be fast @@ -100,14 +113,14 @@ public void DecodeScan(Frame frame, Stream stream, HuffmanTables dcHuffmanTables int mcuExpected; if (componentsLength == 1) { - mcuExpected = components[0].BlocksPerLine * components[0].BlocksPerColumn; + mcuExpected = components[componentIndex].BlocksPerLine * components[componentIndex].BlocksPerColumn; } else { mcuExpected = mcusPerLine * frame.McusPerColumn; } - FileMarker fileMarker; + // FileMarker fileMarker; while (mcu < mcuExpected) { // Reset interval stuff @@ -122,7 +135,7 @@ public void DecodeScan(Frame frame, Stream stream, HuffmanTables dcHuffmanTables if (componentsLength == 1) { - ref FrameComponent component = ref components[0]; + ref FrameComponent component = ref components[componentIndex]; for (int n = 0; n < mcuToRead; n++) { DecodeBlock(dcHuffmanTables, acHuffmanTables, ref component, decodeFn, mcu, stream); @@ -154,45 +167,41 @@ public void DecodeScan(Frame frame, Stream stream, HuffmanTables dcHuffmanTables // Find marker this.bitsCount = 0; - // TODO: We need to make sure we are not overwriting anything here. - fileMarker = JpegDecoderCore.FindNextFileMarker(stream); - - // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past - // those to attempt to find a valid marker (fixes issue4090.pdf) in original code. - if (fileMarker.Invalid) - { -#if DEBUG - Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); -#endif - } - - ushort marker = fileMarker.Marker; - if (marker <= 0xFF00) - { - throw new ImageFormatException("Marker was not found"); - } - - if (marker >= JpegConstants.Markers.RST0 && marker <= JpegConstants.Markers.RST7) - { - // RSTx - stream.Skip(2); - } - else - { - break; - } + // // TODO: We need to make sure we are not overwriting anything here. + // fileMarker = JpegDecoderCore.FindNextFileMarker(stream); + // // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past + // // those to attempt to find a valid marker (fixes issue4090.pdf) in original code. + // if (fileMarker.Invalid) + // { + // #if DEBUG + // Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); + // #endif + // } + // ushort marker = fileMarker.Marker; + // if (marker <= 0xFF00) + // { + // throw new ImageFormatException("Marker was not found"); + // } + // if (marker >= JpegConstants.Markers.RST0 && marker <= JpegConstants.Markers.RST7) + // { + // // RSTx + // stream.Skip(2); + // } + // else + // { + // break; + // } } - fileMarker = JpegDecoderCore.FindNextFileMarker(stream); - - // Some images include more Scan blocks than expected, skip past those and - // attempt to find the next valid marker (fixes issue8182.pdf) in original code. - if (fileMarker.Invalid) - { -#if DEBUG - Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); -#endif - } + // fileMarker = JpegDecoderCore.FindNextFileMarker(stream); + // // Some images include more Scan blocks than expected, skip past those and + // // attempt to find the next valid marker (fixes issue8182.pdf) in original code. + // if (fileMarker.Invalid) + // { + // #if DEBUG + // Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); + // #endif + // } } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -231,7 +240,7 @@ private int ReadBit(Stream stream) } this.bitsData = stream.ReadByte(); - if (this.bitsData == 0xFF) + if (this.bitsData == JpegConstants.Markers.Prefix) { int nextByte = stream.ReadByte(); if (nextByte > 0) @@ -252,8 +261,7 @@ private short DecodeHuffman(HuffmanBranch[] tree, Stream stream) HuffmanBranch[] node = tree; while (true) { - int index; - index = this.ReadBit(stream); + int index = this.ReadBit(stream); HuffmanBranch branch = node[index]; node = branch.Children; diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 5d50ae5353..abdabcd49c 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -87,35 +87,33 @@ public JpegDecoderCore(IDecoderOptions options, Configuration configuration) /// /// The input stream /// The - public static FileMarker FindNextFileMarkerOld(Stream stream) + public static FileMarker FindNextFileMarkerNew(Stream stream) { - byte[] buffer = new byte[2]; - int value = stream.Read(buffer, 0, 2); + byte[] marker = new byte[2]; + int value = stream.Read(marker, 0, 2); if (value == 0) { return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); } - // According to Section B.1.1.2: - // "Any marker may optionally be preceded by any number of fill bytes, which are bytes assigned code 0xFF." - if (buffer[1] != JpegConstants.Markers.Prefix) - { - return new FileMarker((ushort)((buffer[0] << 8) | buffer[1]), (int)(stream.Position - 2)); - } - - while (buffer[1] == JpegConstants.Markers.Prefix) + if (marker[0] == JpegConstants.Markers.Prefix) { - int suffix = stream.ReadByte(); - if (suffix == -1) + // According to Section B.1.1.2: + // "Any marker may optionally be preceded by any number of fill bytes, which are bytes assigned code 0xFF." + while (marker[1] == JpegConstants.Markers.Prefix) { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } + int suffix = stream.ReadByte(); + if (suffix == -1) + { + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + } - buffer[1] = (byte)value; + marker[1] = (byte)value; + } } - return new FileMarker((ushort)((buffer[0] << 8) | buffer[1]), (int)(stream.Position - 2)); + return new FileMarker((ushort)((marker[0] << 8) | marker[1]), (int)(stream.Position - 2)); } /// @@ -292,6 +290,7 @@ private void ParseStream() default: + // TODO: Not convinced this is required // Skip back as it could be incorrect encoding -- last 0xFF byte of the previous // block was eaten by the encoder this.InputStream.Position -= 3; @@ -308,7 +307,7 @@ private void ParseStream() } // Read on. TODO: Test this on damaged images. - fileMarker = FindNextFileMarkerOld(this.InputStream); + fileMarker = FindNextFileMarkerNew(this.InputStream); } this.width = this.frame.SamplesPerLine; @@ -547,7 +546,7 @@ private void ProcessStartOfFrameMarker(int remaining, FileMarker frameMarker) component.VerticalFactor = v; component.QuantizationIdentifier = this.temp[index + 2]; - this.frame.ComponentIds[i] = (byte)i; + this.frame.ComponentIds[i] = component.Id; index += 3; } @@ -623,16 +622,18 @@ private void ProcessDefineRestartIntervalMarker(int remaining) private void ProcessStartOfScanMarker() { int selectorsCount = this.InputStream.ReadByte(); + int index = -1; for (int i = 0; i < selectorsCount; i++) { - int index = -1; + index = -1; int selector = this.InputStream.ReadByte(); - foreach (byte id in this.frame.ComponentIds) + for (int j = 0; j < this.frame.ComponentIds.Length; j++) { + byte id = this.frame.ComponentIds[j]; if (selector == id) { - index = selector; + index = j; } } @@ -641,8 +642,7 @@ private void ProcessStartOfScanMarker() throw new ImageFormatException("Unknown component selector"); } - byte componentIndex = this.frame.ComponentIds[index]; - ref FrameComponent component = ref this.frame.Components[componentIndex]; + ref FrameComponent component = ref this.frame.Components[index]; int tableSpec = this.InputStream.ReadByte(); component.DCHuffmanTableId = tableSpec >> 4; component.ACHuffmanTableId = tableSpec & 15; @@ -661,6 +661,8 @@ private void ProcessStartOfScanMarker() this.dcHuffmanTables, this.acHuffmanTables, this.frame.Components, + index, + selectorsCount, this.resetInterval, spectralStart, spectralEnd, From 472d6ba307bfe5f420ecf54a9ea4e9fd21fc4c93 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 27 Jun 2017 00:24:54 +1000 Subject: [PATCH 016/135] baseline decode works progressive nearly --- .../Formats/Jpeg/Port/Components/Component.cs | 2 +- .../Formats/Jpeg/Port/Components/IDCT.cs | 222 +++ .../Port/Components/QuantizationTables.cs | 8 +- .../Jpeg/Port/Components/ScanDecoder.cs | 38 +- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 53 +- .../TestImages/Formats/Jpg/jpeg.htm | 63 + .../TestImages/Formats/Jpg/jpg.js | 1205 +++++++++++++++++ 7 files changed, 1568 insertions(+), 23 deletions(-) create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs create mode 100644 tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpeg.htm create mode 100644 tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpg.js diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs index e5ae70f1f3..3b462514c4 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs @@ -17,7 +17,7 @@ internal struct Component : IDisposable /// /// Gets or sets the output /// - public Buffer Output; + public Buffer Output; /// /// Gets or sets the horizontal scaling factor diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs new file mode 100644 index 0000000000..0e5a970122 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs @@ -0,0 +1,222 @@ +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System; + using ImageSharp.Memory; + + /// + /// Performa the invers + /// + internal static class IDCT + { + private const int DctCos1 = 4017; // cos(pi/16) + private const int DctSin1 = 799; // sin(pi/16) + private const int DctCos3 = 3406; // cos(3*pi/16) + private const int DctSin3 = 2276; // sin(3*pi/16) + private const int DctCos6 = 1567; // cos(6*pi/16) + private const int DctSin6 = 3784; // sin(6*pi/16) + private const int DctSqrt2 = 5793; // sqrt(2) + private const int DctSqrt1D2 = 2896; // sqrt(2) / 2 + + /// + /// A port of Poppler's IDCT method which in turn is taken from: + /// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, + /// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications', + /// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, 988-991. + /// + /// The quantization tables + /// The fram component + /// The block buffer offset + /// The computational buffer for holding temp values + public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref FrameComponent component, int blockBufferOffset, Buffer computationBuffer) + { + Span qt = quantizationTables.Tables.GetRowSpan(component.QuantizationIdentifier); + Buffer blockData = component.BlockData; + int v0, v1, v2, v3, v4, v5, v6, v7; + int p0, p1, p2, p3, p4, p5, p6, p7; + int t; + + // inverse DCT on rows + for (int row = 0; row < 64; row += 8) + { + // gather block data + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + + // dequant p0 + p0 *= qt[row]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) == 0) + { + t = ((DctSqrt2 * p0) + 512) >> 10; + short st = (short)t; + computationBuffer[row] = st; + computationBuffer[row + 1] = st; + computationBuffer[row + 2] = st; + computationBuffer[row + 3] = st; + computationBuffer[row + 4] = st; + computationBuffer[row + 5] = st; + computationBuffer[row + 6] = st; + computationBuffer[row + 7] = st; + continue; + } + + // dequant p1 ... p7 + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + + // stage 4 + v0 = ((DctSqrt2 * p0) + 128) >> 8; + v1 = ((DctSqrt2 * p4) + 128) >> 8; + v2 = p2; + v3 = p6; + v4 = ((DctSqrt1D2 * (p1 - p7)) + 128) >> 8; + v7 = ((DctSqrt1D2 * (p1 + p7)) + 128) >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + + // stage 3 + v0 = (v0 + v1 + 1) >> 1; + v1 = v0 - v1; + t = ((v2 * DctSin6) + (v3 * DctCos6) + 128) >> 8; + v2 = ((v2 * DctCos6) - (v3 * DctSin6) + 128) >> 8; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = ((v4 * DctSin3) + (v7 * DctCos3) + 2048) >> 12; + v4 = ((v4 * DctCos3) - (v7 * DctSin3) + 2048) >> 12; + v7 = t; + t = ((v5 * DctSin1) + (v6 * DctCos1) + 2048) >> 12; + v5 = ((v5 * DctCos1) - (v6 * DctSin1) + 2048) >> 12; + v6 = t; + + // stage 1 + computationBuffer[row] = (short)(v0 + v7); + computationBuffer[row + 7] = (short)(v0 - v7); + computationBuffer[row + 1] = (short)(v1 + v6); + computationBuffer[row + 6] = (short)(v1 - v6); + computationBuffer[row + 2] = (short)(v2 + v5); + computationBuffer[row + 5] = (short)(v2 - v5); + computationBuffer[row + 3] = (short)(v3 + v4); + computationBuffer[row + 4] = (short)(v3 - v4); + } + + // inverse DCT on columns + for (int col = 0; col < 8; ++col) + { + p0 = computationBuffer[col]; + p1 = computationBuffer[col + 8]; + p2 = computationBuffer[col + 16]; + p3 = computationBuffer[col + 24]; + p4 = computationBuffer[col + 32]; + p5 = computationBuffer[col + 40]; + p6 = computationBuffer[col + 48]; + p7 = computationBuffer[col + 56]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) == 0) + { + t = ((DctSqrt2 * p0) + 8192) >> 14; + + // convert to 8 bit + t = (t < -2040) ? 0 : (t >= 2024) ? 255 : (t + 2056) >> 4; + short st = (short)t; + + blockData[blockBufferOffset + col] = st; + blockData[blockBufferOffset + col + 8] = st; + blockData[blockBufferOffset + col + 16] = st; + blockData[blockBufferOffset + col + 24] = st; + blockData[blockBufferOffset + col + 32] = st; + blockData[blockBufferOffset + col + 40] = st; + blockData[blockBufferOffset + col + 48] = st; + blockData[blockBufferOffset + col + 56] = st; + continue; + } + + // stage 4 + v0 = ((DctSqrt2 * p0) + 2048) >> 12; + v1 = ((DctSqrt2 * p4) + 2048) >> 12; + v2 = p2; + v3 = p6; + v4 = ((DctSqrt1D2 * (p1 - p7)) + 2048) >> 12; + v7 = ((DctSqrt1D2 * (p1 + p7)) + 2048) >> 12; + v5 = p3; + v6 = p5; + + // stage 3 + // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when + // converting to UInt8 range later. + v0 = ((v0 + v1 + 1) >> 1) + 4112; + v1 = v0 - v1; + t = ((v2 * DctSin6) + (v3 * DctCos6) + 2048) >> 12; + v2 = ((v2 * DctCos6) - (v3 * DctSin6) + 2048) >> 12; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = ((v4 * DctSin3) + (v7 * DctCos3) + 2048) >> 12; + v4 = ((v4 * DctCos3) - (v7 * DctSin3) + 2048) >> 12; + v7 = t; + t = ((v5 * DctSin1) + (v6 * DctCos1) + 2048) >> 12; + v5 = ((v5 * DctCos1) - (v6 * DctSin1) + 2048) >> 12; + v6 = t; + + // stage 1 + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + + // convert to 8-bit integers + p0 = (p0 < 16) ? 0 : (p0 >= 4080) ? 255 : p0 >> 4; + p1 = (p1 < 16) ? 0 : (p1 >= 4080) ? 255 : p1 >> 4; + p2 = (p2 < 16) ? 0 : (p2 >= 4080) ? 255 : p2 >> 4; + p3 = (p3 < 16) ? 0 : (p3 >= 4080) ? 255 : p3 >> 4; + p4 = (p4 < 16) ? 0 : (p4 >= 4080) ? 255 : p4 >> 4; + p5 = (p5 < 16) ? 0 : (p5 >= 4080) ? 255 : p5 >> 4; + p6 = (p6 < 16) ? 0 : (p6 >= 4080) ? 255 : p6 >> 4; + p7 = (p7 < 16) ? 0 : (p7 >= 4080) ? 255 : p7 >> 4; + + // store block data + blockData[blockBufferOffset + col] = (short)p0; + blockData[blockBufferOffset + col + 8] = (short)p1; + blockData[blockBufferOffset + col + 16] = (short)p2; + blockData[blockBufferOffset + col + 24] = (short)p3; + blockData[blockBufferOffset + col + 32] = (short)p4; + blockData[blockBufferOffset + col + 40] = (short)p5; + blockData[blockBufferOffset + col + 48] = (short)p6; + blockData[blockBufferOffset + col + 56] = (short)p7; + } + } + } +} diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs index fa57a18dd7..352dc43f23 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/QuantizationTables.cs @@ -46,7 +46,13 @@ public static byte[] DctZigZag /// /// Gets or sets the quantization tables. /// - public Buffer2D Tables { get; set; } + public Buffer2D Tables + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; set; + } + + = new Buffer2D(64, 4); /// public void Dispose() diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index b0c9979d28..59867006fd 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -41,6 +41,8 @@ internal struct ScanDecoder private int successiveACState; + private int successiveACNextValue; + /// /// Decodes the spectral scan /// @@ -91,6 +93,8 @@ public void DecodeScan( { decodeFn = this.DecodeDCSuccessive; } + + Debug.WriteLine(successivePrev == 0 ? "decodeDCFirst" : "decodeDCSuccessive"); } else { @@ -102,6 +106,8 @@ public void DecodeScan( { decodeFn = this.DecodeACSuccessive; } + + Debug.WriteLine(successivePrev == 0 ? "decodeACFirst" : "decodeACSuccessive"); } } else @@ -120,16 +126,28 @@ public void DecodeScan( mcuExpected = mcusPerLine * frame.McusPerColumn; } + Debug.WriteLine("mcuExpected = " + mcuExpected); + // FileMarker fileMarker; while (mcu < mcuExpected) { - // Reset interval stuff + // Reset interval int mcuToRead = resetInterval > 0 ? Math.Min(mcuExpected - mcu, resetInterval) : mcuExpected; - for (int i = 0; i < componentsLength; i++) + + // TODO: We might just be able to loop here. + if (componentsLength == 1) { - ref FrameComponent c = ref components[i]; + ref FrameComponent c = ref components[componentIndex]; c.Pred = 0; } + else + { + for (int i = 0; i < componentsLength; i++) + { + ref FrameComponent c = ref components[i]; + c.Pred = 0; + } + } this.eobrun = 0; @@ -165,8 +183,7 @@ public void DecodeScan( } // Find marker - this.bitsCount = 0; - + // this.bitsCount = 0; // // TODO: We need to make sure we are not overwriting anything here. // fileMarker = JpegDecoderCore.FindNextFileMarker(stream); // // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past @@ -205,7 +222,7 @@ public void DecodeScan( } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int GetBlockBufferOffset(FrameComponent component, int row, int col) + private static int GetBlockBufferOffset(ref FrameComponent component, int row, int col) { return 64 * (((component.BlocksPerLine + 1) * row) + col); } @@ -217,7 +234,7 @@ private static void DecodeMcu(HuffmanTables dcHuffmanTables, HuffmanTables acHuf int mcuCol = mcu % mcusPerLine; int blockRow = (mcuRow * component.VerticalFactor) + row; int blockCol = (mcuCol * component.HorizontalFactor) + col; - int offset = GetBlockBufferOffset(component, blockRow, blockCol); + int offset = GetBlockBufferOffset(ref component, blockRow, blockCol); decode(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); } @@ -226,7 +243,7 @@ private static void DecodeBlock(HuffmanTables dcHuffmanTables, HuffmanTables acH { int blockRow = (mcu / component.BlocksPerLine) | 0; int blockCol = mcu % component.BlocksPerLine; - int offset = GetBlockBufferOffset(component, blockRow, blockCol); + int offset = GetBlockBufferOffset(ref component, blockRow, blockCol); decode(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); } @@ -394,7 +411,6 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma while (k <= e) { byte z = QuantizationTables.DctZigZag[k]; - int successiveACNextValue = 0; switch (this.successiveACState) { case 0: // Initial state @@ -421,7 +437,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma throw new ImageFormatException("Invalid ACn encoding"); } - successiveACNextValue = this.ReceiveAndExtend(s, stream); + this.successiveACNextValue = this.ReceiveAndExtend(s, stream); this.successiveACState = r > 0 ? 2 : 3; } @@ -449,7 +465,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma } else { - component.BlockData[offset + z] = (short)(successiveACNextValue << this.successiveState); + component.BlockData[offset + z] = (short)(this.successiveACNextValue << this.successiveState); this.successiveACState = 0; } diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index abdabcd49c..21c28043be 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -7,6 +7,7 @@ namespace ImageSharp.Formats.Jpeg.Port { using System; using System.Collections.Generic; + using System.Diagnostics; using System.IO; using System.Runtime.CompilerServices; @@ -198,6 +199,12 @@ public void Dispose() this.quantizationTables = null; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int GetBlockBufferOffset(ref Component component, int row, int col) + { + return 64 * (((component.BlocksPerLine + 1) * row) + col); + } + private void ParseStream() { // Check for the Start Of Image marker. @@ -325,7 +332,7 @@ private void ParseStream() BlocksPerColumn = frameComponent.BlocksPerColumn }; - this.BuildComponentData(ref component); + this.BuildComponentData(ref component, ref frameComponent); this.components.Components[i] = component; } @@ -422,8 +429,6 @@ private void ProcessApp14Marker(int remaining) /// private void ProcessDqtMarker(int remaining) { - // Pooled. Disposed on disposal of decoder - this.quantizationTables.Tables = new Buffer2D(64, 4); while (remaining > 0) { bool done = false; @@ -622,10 +627,10 @@ private void ProcessDefineRestartIntervalMarker(int remaining) private void ProcessStartOfScanMarker() { int selectorsCount = this.InputStream.ReadByte(); - int index = -1; + int componentIndex = -1; for (int i = 0; i < selectorsCount; i++) { - index = -1; + componentIndex = -1; int selector = this.InputStream.ReadByte(); for (int j = 0; j < this.frame.ComponentIds.Length; j++) @@ -633,16 +638,16 @@ private void ProcessStartOfScanMarker() byte id = this.frame.ComponentIds[j]; if (selector == id) { - index = j; + componentIndex = j; } } - if (index < 0) + if (componentIndex < 0) { throw new ImageFormatException("Unknown component selector"); } - ref FrameComponent component = ref this.frame.Components[index]; + ref FrameComponent component = ref this.frame.Components[componentIndex]; int tableSpec = this.InputStream.ReadByte(); component.DCHuffmanTableId = tableSpec >> 4; component.ACHuffmanTableId = tableSpec & 15; @@ -661,22 +666,50 @@ private void ProcessStartOfScanMarker() this.dcHuffmanTables, this.acHuffmanTables, this.frame.Components, - index, + componentIndex, selectorsCount, this.resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15); + + Debug.WriteLine("spectralStart= " + spectralStart); + Debug.WriteLine("spectralEnd= " + spectralEnd); + Debug.WriteLine("successiveApproximation= " + successiveApproximation); + Debug.WriteLine("Components after"); + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 10; j++) + { + Debug.WriteLine("component [" + i + "] : value [" + j + "] =" + this.frame.Components[i].BlockData[j] + "]"); + } + } } /// /// Build the data for the given component /// /// The component - private void BuildComponentData(ref Component component) + /// The frame component + private void BuildComponentData(ref Component component, ref FrameComponent frameComponent) { // TODO: Write this + int blocksPerLine = component.BlocksPerLine; + int blocksPerColumn = component.BlocksPerColumn; + using (var computationBuffer = Buffer.CreateClean(64)) + { + for (int blockRow = 0; blockRow < blocksPerColumn; blockRow++) + { + for (int blockCol = 0; blockCol < blocksPerLine; blockCol++) + { + int offset = GetBlockBufferOffset(ref component, blockRow, blockCol); + IDCT.QuantizeAndInverse(this.quantizationTables, ref frameComponent, offset, computationBuffer); + } + } + } + + component.Output = frameComponent.BlockData; } /// diff --git a/tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpeg.htm b/tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpeg.htm new file mode 100644 index 0000000000..72a5e448b3 --- /dev/null +++ b/tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpeg.htm @@ -0,0 +1,63 @@ + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpg.js b/tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpg.js new file mode 100644 index 0000000000..6ebf71a697 --- /dev/null +++ b/tests/ImageSharp.Tests/TestImages/Formats/Jpg/jpg.js @@ -0,0 +1,1205 @@ +/* Copyright 2014 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* eslint-disable no-multi-spaces */ + +// import { error, warn } from '../shared/util'; + +/** + * This code was forked from https://github.com/notmasteryet/jpgjs. + * The original version was created by GitHub user notmasteryet. + * + * - The JPEG specification can be found in the ITU CCITT Recommendation T.81 + * (www.w3.org/Graphics/JPEG/itu-t81.pdf) + * - The JFIF specification can be found in the JPEG File Interchange Format + * (www.w3.org/Graphics/JPEG/jfif3.pdf) + * - The Adobe Application-Specific JPEG markers in the + * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116 + * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf) + */ + +var error = function(val){ + console.log(val); +} + +var warn = function(val){ + console.log(val); +} + +var JpegImage = (function JpegImageClosure() { + var dctZigZag = new Uint8Array([ + 0, + 1, 8, + 16, 9, 2, + 3, 10, 17, 24, + 32, 25, 18, 11, 4, + 5, 12, 19, 26, 33, 40, + 48, 41, 34, 27, 20, 13, 6, + 7, 14, 21, 28, 35, 42, 49, 56, + 57, 50, 43, 36, 29, 22, 15, + 23, 30, 37, 44, 51, 58, + 59, 52, 45, 38, 31, + 39, 46, 53, 60, + 61, 54, 47, + 55, 62, + 63 + ]); + + var dctCos1 = 4017; // cos(pi/16) + var dctSin1 = 799; // sin(pi/16) + var dctCos3 = 3406; // cos(3*pi/16) + var dctSin3 = 2276; // sin(3*pi/16) + var dctCos6 = 1567; // cos(6*pi/16) + var dctSin6 = 3784; // sin(6*pi/16) + var dctSqrt2 = 5793; // sqrt(2) + var dctSqrt1d2 = 2896; // sqrt(2) / 2 + + function JpegImage() { + this.decodeTransform = null; + this.colorTransform = -1; + } + + function buildHuffmanTable(codeLengths, values) { + console.log(codeLengths); + console.log(values); + + var k = 0, code = [], i, j, length = 16; + while (length > 0 && !codeLengths[length - 1]) { + length--; + } + + code.push({ children: [], index: 0, }); + var p = code[0], q; + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + + while (p.index > 0) { + p = code.pop(); + } + p.index++; + code.push(p); + while (code.length <= i) { + code.push(q = { children: [], index: 0, }); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i + 1 < length) { + // p here points to last code + code.push(q = { children: [], index: 0, }); + p.children[p.index] = q.children; + p = q; + } + } + console.log(code[0].children); + console.log(k); + return code[0].children; + } + + function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); + } + + function decodeScan(data, offset, frame, components, resetInterval, + spectralStart, spectralEnd, successivePrev, successive) { + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + var startOffset = offset, bitsData = 0, bitsCount = 0; + + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return (bitsData >> bitsCount) & 1; + } + bitsData = data[offset++]; + if (bitsData === 0xFF) { + var nextByte = data[offset++]; + if (nextByte) { + error('JPEG error: unexpected marker ' + + ((bitsData << 8) | nextByte).toString(16)); + } + // unstuff 0 + } + bitsCount = 7; + return bitsData >>> 7; + } + + function decodeHuffman(tree) { + var node = tree; + while (true) { + node = node[readBit()]; + if (typeof node === 'number') { + return node; + } + if (typeof node !== 'object') { + error('JPEG error: invalid huffman sequence'); + } + } + } + + function receive(length) { + var n = 0; + while (length > 0) { + n = (n << 1) | readBit(); + length--; + } + return n; + } + + function receiveAndExtend(length) { + if (length === 1) { + return readBit() === 1 ? 1 : -1; + } + var n = receive(length); + if (n >= 1 << (length - 1)) { + return n; + } + return n + (-1 << length) + 1; + } + + function decodeBaseline(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + component.blockData[offset] = (component.pred += diff); + // console.log("component"); + // console.log(component); + + if(offset === 0){ + console.log("component at 0"); + console.log(component.blockData[offset]) + } + + var k = 1; + while (k < 64) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = receiveAndExtend(s); + k++; + } + } + + function decodeDCFirst(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive); + component.blockData[offset] = (component.pred += diff); + } + + function decodeDCSuccessive(component, offset) { + component.blockData[offset] |= readBit() << successive; + } + + var eobrun = 0; + function decodeACFirst(component, offset) { + if (eobrun > 0) { + eobrun--; + return; + } + var k = spectralStart, e = spectralEnd; + while (k <= e) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = + receiveAndExtend(s) * (1 << successive); + k++; + } + } + + var successiveACState = 0, successiveACNextValue; + function decodeACSuccessive(component, offset) { + var k = spectralStart; + var e = spectralEnd; + var r = 0; + var s; + var rs; + while (k <= e) { + var z = dctZigZag[k]; + switch (successiveACState) { + case 0: // initial state + rs = decodeHuffman(component.huffmanTableAC); + s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) { + error('JPEG error: invalid ACn encoding'); + } + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: // skipping r zero items + case 2: + if (component.blockData[offset + z]) { + component.blockData[offset + z] += (readBit() << successive); + } else { + r--; + if (r === 0) { + successiveACState = successiveACState === 2 ? 3 : 0; + } + } + break; + case 3: // set value for a zero item + if (component.blockData[offset + z]) { + component.blockData[offset + z] += (readBit() << successive); + } else { + component.blockData[offset + z] = + successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: // eob + if (component.blockData[offset + z]) { + component.blockData[offset + z] += (readBit() << successive); + } + break; + } + k++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) { + successiveACState = 0; + } + } + } + + function decodeMcu(component, decode, mcu, row, col) { + var mcuRow = (mcu / mcusPerLine) | 0; + var mcuCol = mcu % mcusPerLine; + var blockRow = mcuRow * component.v + row; + var blockCol = mcuCol * component.h + col; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + + // console.log("MCU Offset: " + offset); + decode(component, offset); + } + + function decodeBlock(component, decode, mcu) { + var blockRow = (mcu / component.blocksPerLine) | 0; + var blockCol = mcu % component.blocksPerLine; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, offset); + } + + var componentsLength = components.length; + var component, i, j, k, n; + var decodeFn; + if (progressive) { + if (spectralStart === 0) { + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + console.log(successivePrev === 0 ? "decodeDCFirst" : "decodeDCSuccessive"); + } else { + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + console.log(successivePrev === 0 ? "decodeACFirst" : "decodeACSuccessive"); + } + } else { + decodeFn = decodeBaseline; + } + + var mcu = 0, fileMarker; + var mcuExpected; + if (componentsLength === 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; + } + + console.log("mcuExpected = "+ mcuExpected); + + var h, v; + while (mcu < mcuExpected) { + // reset interval stuff + var mcuToRead = resetInterval ? + Math.min(mcuExpected - mcu, resetInterval) : mcuExpected; + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; + } + eobrun = 0; + + if (componentsLength === 1) { + component = components[0]; + + for (n = 0; n < mcuToRead; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < mcuToRead; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + + // find marker + bitsCount = 0; + fileMarker = findNextFileMarker(data, offset); + // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past + // those to attempt to find a valid marker (fixes issue4090.pdf). + if (fileMarker && fileMarker.invalid) { + warn('decodeScan - unexpected MCU data, next marker is: ' + + fileMarker.invalid); + offset = fileMarker.offset; + } + var marker = fileMarker && fileMarker.marker; + if (!marker || marker <= 0xFF00) { + error('JPEG error: marker was not found'); + } + + if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx + offset += 2; + } else { + break; + } + } + + fileMarker = findNextFileMarker(data, offset); + // Some images include more Scan blocks than expected, skip past those and + // attempt to find the next valid marker (fixes issue8182.pdf). + if (fileMarker && fileMarker.invalid) { + warn('decodeScan - unexpected Scan data, next marker is: ' + + fileMarker.invalid); + offset = fileMarker.offset; + } + + return offset - startOffset; + } + + // A port of poppler's IDCT method which in turn is taken from: + // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, + // 'Practical Fast 1-D DCT Algorithms with 11 Multiplications', + // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, + // 988-991. + function quantizeAndInverse(component, blockBufferOffset, p) { + var qt = component.quantizationTable, blockData = component.blockData; + var v0, v1, v2, v3, v4, v5, v6, v7; + var p0, p1, p2, p3, p4, p5, p6, p7; + var t; + + if (!qt) { + error('JPEG error: missing required Quantization Table.'); + } + + // inverse DCT on rows + for (var row = 0; row < 64; row += 8) { + // gather block data + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + + // dequant p0 + p0 *= qt[row]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = (dctSqrt2 * p0 + 512) >> 10; + p[row] = t; + p[row + 1] = t; + p[row + 2] = t; + p[row + 3] = t; + p[row + 4] = t; + p[row + 5] = t; + p[row + 6] = t; + p[row + 7] = t; + continue; + } + // dequant p1 ... p7 + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + + // stage 4 + v0 = (dctSqrt2 * p0 + 128) >> 8; + v1 = (dctSqrt2 * p4 + 128) >> 8; + v2 = p2; + v3 = p6; + v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8; + v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + + // stage 3 + v0 = (v0 + v1 + 1) >> 1; + v1 = v0 - v1; + t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p[row] = v0 + v7; + p[row + 7] = v0 - v7; + p[row + 1] = v1 + v6; + p[row + 6] = v1 - v6; + p[row + 2] = v2 + v5; + p[row + 5] = v2 - v5; + p[row + 3] = v3 + v4; + p[row + 4] = v3 - v4; + } + + // inverse DCT on columns + for (var col = 0; col < 8; ++col) { + p0 = p[col]; + p1 = p[col + 8]; + p2 = p[col + 16]; + p3 = p[col + 24]; + p4 = p[col + 32]; + p5 = p[col + 40]; + p6 = p[col + 48]; + p7 = p[col + 56]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = (dctSqrt2 * p0 + 8192) >> 14; + // convert to 8 bit + t = (t < -2040) ? 0 : (t >= 2024) ? 255 : (t + 2056) >> 4; + blockData[blockBufferOffset + col] = t; + blockData[blockBufferOffset + col + 8] = t; + blockData[blockBufferOffset + col + 16] = t; + blockData[blockBufferOffset + col + 24] = t; + blockData[blockBufferOffset + col + 32] = t; + blockData[blockBufferOffset + col + 40] = t; + blockData[blockBufferOffset + col + 48] = t; + blockData[blockBufferOffset + col + 56] = t; + continue; + } + + // stage 4 + v0 = (dctSqrt2 * p0 + 2048) >> 12; + v1 = (dctSqrt2 * p4 + 2048) >> 12; + v2 = p2; + v3 = p6; + v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12; + v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12; + v5 = p3; + v6 = p5; + + // stage 3 + // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when + // converting to UInt8 range later. + v0 = ((v0 + v1 + 1) >> 1) + 4112; + v1 = v0 - v1; + t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + + // convert to 8-bit integers + p0 = (p0 < 16) ? 0 : (p0 >= 4080) ? 255 : p0 >> 4; + p1 = (p1 < 16) ? 0 : (p1 >= 4080) ? 255 : p1 >> 4; + p2 = (p2 < 16) ? 0 : (p2 >= 4080) ? 255 : p2 >> 4; + p3 = (p3 < 16) ? 0 : (p3 >= 4080) ? 255 : p3 >> 4; + p4 = (p4 < 16) ? 0 : (p4 >= 4080) ? 255 : p4 >> 4; + p5 = (p5 < 16) ? 0 : (p5 >= 4080) ? 255 : p5 >> 4; + p6 = (p6 < 16) ? 0 : (p6 >= 4080) ? 255 : p6 >> 4; + p7 = (p7 < 16) ? 0 : (p7 >= 4080) ? 255 : p7 >> 4; + + // store block data + blockData[blockBufferOffset + col] = p0; + blockData[blockBufferOffset + col + 8] = p1; + blockData[blockBufferOffset + col + 16] = p2; + blockData[blockBufferOffset + col + 24] = p3; + blockData[blockBufferOffset + col + 32] = p4; + blockData[blockBufferOffset + col + 40] = p5; + blockData[blockBufferOffset + col + 48] = p6; + blockData[blockBufferOffset + col + 56] = p7; + } + } + + function buildComponentData(frame, component) { + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var computationBuffer = new Int16Array(64); + console.log("qt"); + console.log(component.quantizationTable); + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + + console.log("component.blockData"); + console.log(component.blockData); + return component.blockData; + } + + function clamp0to255(a) { + return a <= 0 ? 0 : a >= 255 ? 255 : a; + } + + function findNextFileMarker(data, currentPos, startPos) { + function peekUint16(pos) { + return (data[pos] << 8) | data[pos + 1]; + } + + var maxPos = data.length - 1; + var newPos = startPos < currentPos ? startPos : currentPos; + + if (currentPos >= maxPos) { + return null; // Don't attempt to read non-existent data and just return. + } + var currentMarker = peekUint16(currentPos); + if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) { + return { + invalid: null, + marker: currentMarker, + offset: currentPos, + }; + } + var newMarker = peekUint16(newPos); + while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) { + if (++newPos >= maxPos) { + return null; // Don't attempt to read non-existent data and just return. + } + newMarker = peekUint16(newPos); + } + return { + invalid: currentMarker.toString(16), + marker: newMarker, + offset: newPos, + }; + } + + JpegImage.prototype = { + parse: function parse(data) { + + function readUint16() { + var value = (data[offset] << 8) | data[offset + 1]; + offset += 2; + return value; + } + + function readDataBlock() { + var length = readUint16(); + var endOffset = offset + length - 2; + + var fileMarker = findNextFileMarker(data, endOffset, offset); + if (fileMarker && fileMarker.invalid) { + warn('readDataBlock - incorrect length, next marker is: ' + + fileMarker.invalid); + endOffset = fileMarker.offset; + } + + var array = data.subarray(offset, endOffset); + offset += array.length; + return array; + } + + function prepareComponents(frame) { + var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); + var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); + for (var i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * + component.h / frame.maxH); + var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * + component.v / frame.maxV); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + + var blocksBufferSize = 64 * blocksPerColumnForMcu * + (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; + } + + var offset = 0; + var jfif = null; + var adobe = null; + var frame, resetInterval; + var quantizationTables = []; + var huffmanTablesAC = [], huffmanTablesDC = []; + var fileMarker = readUint16(); + if (fileMarker !== 0xFFD8) { // SOI (Start of Image) + error('JPEG error: SOI not found'); + } + + fileMarker = readUint16(); + while (fileMarker !== 0xFFD9) { // EOI (End of image) + var i, j, l; + switch (fileMarker) { + case 0xFFE0: // APP0 (Application Specific) + case 0xFFE1: // APP1 + case 0xFFE2: // APP2 + case 0xFFE3: // APP3 + case 0xFFE4: // APP4 + case 0xFFE5: // APP5 + case 0xFFE6: // APP6 + case 0xFFE7: // APP7 + case 0xFFE8: // APP8 + case 0xFFE9: // APP9 + case 0xFFEA: // APP10 + case 0xFFEB: // APP11 + case 0xFFEC: // APP12 + case 0xFFED: // APP13 + case 0xFFEE: // APP14 + case 0xFFEF: // APP15 + case 0xFFFE: // COM (Comment) + var appData = readDataBlock(); + + if (fileMarker === 0xFFE0) { + if (appData[0] === 0x4A && appData[1] === 0x46 && + appData[2] === 0x49 && appData[3] === 0x46 && + appData[4] === 0) { // 'JFIF\x00' + jfif = { + version: { major: appData[5], minor: appData[6], }, + densityUnits: appData[7], + xDensity: (appData[8] << 8) | appData[9], + yDensity: (appData[10] << 8) | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + + 3 * appData[12] * appData[13]), + }; + } + } + // TODO APP1 - Exif + if (fileMarker === 0xFFEE) { + if (appData[0] === 0x41 && appData[1] === 0x64 && + appData[2] === 0x6F && appData[3] === 0x62 && + appData[4] === 0x65) { // 'Adobe' + adobe = { + version: (appData[5] << 8) | appData[6], + flags0: (appData[7] << 8) | appData[8], + flags1: (appData[9] << 8) | appData[10], + transformCode: appData[11], + }; + } + } + break; + + case 0xFFDB: // DQT (Define Quantization Tables) + var quantizationTablesLength = readUint16(); + var quantizationTablesEnd = quantizationTablesLength + offset - 2; + var z; + while (offset < quantizationTablesEnd) { + var quantizationTableSpec = data[offset++]; + var tableData = new Uint16Array(64); + if ((quantizationTableSpec >> 4) === 0) { // 8 bit values + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if ((quantizationTableSpec >> 4) === 1) { // 16 bit values + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = readUint16(); + } + } else { + error('JPEG error: DQT - invalid table spec'); + } + quantizationTables[quantizationTableSpec & 15] = tableData; + } + break; + + case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT) + case 0xFFC1: // SOF1 (Start of Frame, Extended DCT) + case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT) + if (frame) { + error('JPEG error: Only single frame JPEGs supported'); + } + console.log("filemarker"); + console.log(fileMarker); + console.log(offset); + readUint16(); // skip data length + frame = {}; + frame.extended = (fileMarker === 0xFFC1); + frame.progressive = (fileMarker === 0xFFC2); + frame.precision = data[offset++]; + frame.scanLines = readUint16(); + frame.samplesPerLine = readUint16(); + frame.components = []; + frame.componentIds = {}; + var componentsCount = data[offset++], componentId; + var maxH = 0, maxV = 0; + for (i = 0; i < componentsCount; i++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + if (maxH < h) { + maxH = h; + } + if (maxV < v) { + maxV = v; + } + var qId = data[offset + 2]; + l = frame.components.push({ + h, + v, + quantizationId: qId, + quantizationTable: null, // See comment below. + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + + case 0xFFC4: // DHT (Define Huffman Tables) + var huffmanLength = readUint16(); + for (i = 2; i < huffmanLength;) { + console.log("offset= " + offset); + var huffmanTableSpec = data[offset++]; + console.log("huffmanTableSpec= " + huffmanTableSpec); + + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) { + codeLengthSum += (codeLengths[j] = data[offset]); + } + console.log("codelengthsum = " + codeLengthSum); + console.log("offset = " + offset); + var huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) { + huffmanValues[j] = data[offset]; + } + i += 17 + codeLengthSum; + + + console.log((huffmanTableSpec >> 4) === 0 ? "DC":"AC"); + ((huffmanTableSpec >> 4) === 0 + ? huffmanTablesDC + : huffmanTablesAC)[huffmanTableSpec & 15] = + buildHuffmanTable(codeLengths, huffmanValues); + } + break; + + case 0xFFDD: // DRI (Define Restart Interval) + readUint16(); // skip data length + resetInterval = readUint16(); + break; + + case 0xFFDA: // SOS (Start of Scan) + readUint16(); // scanLength + var selectorsCount = data[offset++]; + var components = [], component; + for (i = 0; i < selectorsCount; i++) { + var ci = data[offset++]; + console.log("ci= " + ci); + console.log("offset= " + offset); + + var componentIndex = frame.componentIds[ci]; + console.log("componentIndex= " + componentIndex); + component = frame.components[componentIndex]; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + console.log("components= " + components); + + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + + console.log(frame.componentIds); + console.log("spectralStart= " + spectralStart); + console.log("spectralEnd= " + spectralEnd); + console.log("successiveApproximation= " + successiveApproximation); + // console.log("components before") + // console.log(components) + var processed = decodeScan(data, offset, + frame, components, resetInterval, + spectralStart, spectralEnd, + successiveApproximation >> 4, successiveApproximation & 15); + offset += processed; + console.log("components after"); + // console.log(frame); + for (var i = 0; i < 3; i++){ + for (var j = 0; j < 10; j++){ + console.log("component ["+ i +"] : value ["+j+"] ="+ frame.components[i].blockData[j]+"]"); + } + } + break; + + case 0xFFFF: // Fill bytes + if (data[offset] !== 0xFF) { // Avoid skipping a valid marker. + offset--; + } + break; + + default: + if (data[offset - 3] === 0xFF && + data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) { + // could be incorrect encoding -- last 0xFF byte of the previous + // block was eaten by the encoder + offset -= 3; + break; + } + + // TODO: Delete this after testing + fileMarker = 0xFFD9; + // error('JPEG error: unknown marker ' + fileMarker.toString(16)); + } + fileMarker = readUint16(); + } + + console.log("quantizationTables"); + console.log(quantizationTables); + + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + for (i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + + // Prevent errors when DQT markers are placed after SOF{n} markers, + // by assigning the `quantizationTable` entry after the entire image + // has been parsed (fixes issue7406.pdf). + var quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + + this.components.push({ + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn, + }); + } + + console.log("components"); + console.log(this.components); + this.numComponents = this.components.length; + }, + + _getLinearizedBlockData: function getLinearizedBlockData(width, height) { + var scaleX = this.width / width, scaleY = this.height / height; + + var component, componentScaleX, componentScaleY, blocksPerScanline; + var x, y, i, j, k; + var index; + var offset = 0; + var output; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint8Array(dataLength); + var xScaleBlockOffset = new Uint32Array(width); + var mask3LSB = 0xfffffff8; // used to clear the 3 LSBs + + for (i = 0; i < numComponents; i++) { + component = this.components[i]; + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i; + output = component.output; + blocksPerScanline = (component.blocksPerLine + 1) << 3; + // precalculate the xScaleBlockOffset + for (x = 0; x < width; x++) { + j = 0 | (x * componentScaleX); + xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7); + } + // linearize the blocks of the component + for (y = 0; y < height; y++) { + j = 0 | (y * componentScaleY); + index = blocksPerScanline * (j & mask3LSB) | ((j & 7) << 3); + for (x = 0; x < width; x++) { + data[offset] = output[index + xScaleBlockOffset[x]]; + offset += numComponents; + } + } + } + + // decodeTransform contains pairs of multiplier (-256..256) and additive + var transform = this.decodeTransform; + if (transform) { + for (i = 0; i < dataLength;) { + for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { + data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1]; + } + } + } + return data; + }, + + _isColorConversionNeeded: function isColorConversionNeeded() { + if (this.adobe && this.adobe.transformCode) { + // The adobe transform marker overrides any previous setting + return true; + } else if (this.numComponents === 3) { + if (!this.adobe && this.colorTransform === 0) { + // If the Adobe transform marker is not present and the image + // dictionary has a 'ColorTransform' entry, explicitly set to `0`, + // then the colours should *not* be transformed. + return false; + } + return true; + } + // `this.numComponents !== 3` + if (!this.adobe && this.colorTransform === 1) { + // If the Adobe transform marker is not present and the image + // dictionary has a 'ColorTransform' entry, explicitly set to `1`, + // then the colours should be transformed. + return true; + } + return false; + }, + + _convertYccToRgb: function convertYccToRgb(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 3) { + Y = data[i ]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i ] = clamp0to255(Y - 179.456 + 1.402 * Cr); + data[i + 1] = clamp0to255(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); + data[i + 2] = clamp0to255(Y - 226.816 + 1.772 * Cb); + } + return data; + }, + + _convertYcckToRgb: function convertYcckToRgb(data) { + var Y, Cb, Cr, k; + var offset = 0; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + k = data[i + 3]; + + var r = -122.67195406894 + + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - + 5.4080610064599e-5 * Y + 0.00048449797120281 * k - + 0.154362151871126) + + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - + 0.00477271405408747 * k + 1.53380253221734) + + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + + 0.48357088451265) + + k * (-0.000336197177618394 * k + 0.484791561490776); + + var g = 107.268039397724 + + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + + 0.000659397001245577 * Y + 0.000426105652938837 * k - + 0.176491792462875) + + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + + 0.000770482631801132 * k - 0.151051492775562) + + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + + 0.25802910206845) + + k * (-0.000318913117588328 * k - 0.213742400323665); + + var b = -20.810012546947 + + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + + 0.0020741088115012 * Y - 0.00288260236853442 * k + + 0.814272968359295) + + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + + 0.000560833691242812 * k - 0.195152027534049) + + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + + 0.116935020465145) + + k * (-0.000343531996510555 * k + 0.24165260232407); + + data[offset++] = clamp0to255(r); + data[offset++] = clamp0to255(g); + data[offset++] = clamp0to255(b); + } + return data; + }, + + _convertYcckToCmyk: function convertYcckToCmyk(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i ] = clamp0to255(434.456 - Y - 1.402 * Cr); + data[i + 1] = clamp0to255(119.541 - Y + 0.344 * Cb + 0.714 * Cr); + data[i + 2] = clamp0to255(481.816 - Y - 1.772 * Cb); + // K in data[i + 3] is unchanged + } + return data; + }, + + _convertCmykToRgb: function convertCmykToRgb(data) { + var c, m, y, k; + var offset = 0; + var min = -255 * 255 * 255; + var scale = 1 / 255 / 255; + for (var i = 0, length = data.length; i < length; i += 4) { + c = data[i]; + m = data[i + 1]; + y = data[i + 2]; + k = data[i + 3]; + + var r = + c * (-4.387332384609988 * c + 54.48615194189176 * m + + 18.82290502165302 * y + 212.25662451639585 * k - + 72734.4411664936) + + m * (1.7149763477362134 * m - 5.6096736904047315 * y - + 17.873870861415444 * k - 1401.7366389350734) + + y * (-2.5217340131683033 * y - 21.248923337353073 * k + + 4465.541406466231) - + k * (21.86122147463605 * k + 48317.86113160301); + var g = + c * (8.841041422036149 * c + 60.118027045597366 * m + + 6.871425592049007 * y + 31.159100130055922 * k - + 20220.756542821975) + + m * (-15.310361306967817 * m + 17.575251261109482 * y + + 131.35250912493976 * k - 48691.05921601825) + + y * (4.444339102852739 * y + 9.8632861493405 * k - + 6341.191035517494) - + k * (20.737325471181034 * k + 47890.15695978492); + var b = + c * (0.8842522430003296 * c + 8.078677503112928 * m + + 30.89978309703729 * y - 0.23883238689178934 * k - + 3616.812083916688) + + m * (10.49593273432072 * m + 63.02378494754052 * y + + 50.606957656360734 * k - 28620.90484698408) + + y * (0.03296041114873217 * y + 115.60384449646641 * k - + 49363.43385999684) - + k * (22.33816807309886 * k + 45932.16563550634); + + data[offset++] = r >= 0 ? 255 : r <= min ? 0 : 255 + r * scale | 0; + data[offset++] = g >= 0 ? 255 : g <= min ? 0 : 255 + g * scale | 0; + data[offset++] = b >= 0 ? 255 : b <= min ? 0 : 255 + b * scale | 0; + } + return data; + }, + + getData: function getData(width, height, forceRGBoutput) { + if (this.numComponents > 4) { + error('JPEG error: Unsupported color mode'); + } + // type of data: Uint8Array(width * height * numComponents) + var data = this._getLinearizedBlockData(width, height); + + if (this.numComponents === 1 && forceRGBoutput) { + var dataLength = data.length; + var rgbData = new Uint8Array(dataLength * 3); + var offset = 0; + for (var i = 0; i < dataLength; i++) { + var grayColor = data[i]; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + } + return rgbData; + } else if (this.numComponents === 3 && this._isColorConversionNeeded()) { + return this._convertYccToRgb(data); + } else if (this.numComponents === 4) { + if (this._isColorConversionNeeded()) { + if (forceRGBoutput) { + return this._convertYcckToRgb(data); + } + return this._convertYcckToCmyk(data); + } else if (forceRGBoutput) { + return this._convertCmykToRgb(data); + } + } + return data; + }, + }; + + return JpegImage; +})(); + +// export { +// JpegImage, +// }; From 28a8acac01acab6537ca36cdb87c3e9ccfa02d65 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 27 Jun 2017 09:22:09 +1000 Subject: [PATCH 017/135] Fix progressive scan decoding --- .../Formats/Jpeg/Port/Components/Component.cs | 4 +-- .../Jpeg/Port/Components/ScanDecoder.cs | 31 ++++++++++--------- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 4 +-- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs index 3b462514c4..db31706135 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs @@ -22,12 +22,12 @@ internal struct Component : IDisposable /// /// Gets or sets the horizontal scaling factor /// - public int ScaleX; + public float ScaleX; /// /// Gets or sets the vertical scaling factor /// - public int ScaleY; + public float ScaleY; /// /// Gets or sets the number of blocks per line diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 59867006fd..2ec9ea9059 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -135,20 +135,20 @@ public void DecodeScan( int mcuToRead = resetInterval > 0 ? Math.Min(mcuExpected - mcu, resetInterval) : mcuExpected; // TODO: We might just be able to loop here. - if (componentsLength == 1) + // if (componentsLength == 1) + // { + // ref FrameComponent c = ref components[componentIndex]; + // c.Pred = 0; + // } + // else + // { + for (int i = 0; i < components.Length; i++) { - ref FrameComponent c = ref components[componentIndex]; + ref FrameComponent c = ref components[i]; c.Pred = 0; } - else - { - for (int i = 0; i < componentsLength; i++) - { - ref FrameComponent c = ref components[i]; - c.Pred = 0; - } - } + // } this.eobrun = 0; if (componentsLength == 1) @@ -280,12 +280,13 @@ private short DecodeHuffman(HuffmanBranch[] tree, Stream stream) { int index = this.ReadBit(stream); HuffmanBranch branch = node[index]; - node = branch.Children; if (branch.Value > -1) { return branch.Value; } + + node = branch.Children; } } @@ -438,13 +439,13 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma } this.successiveACNextValue = this.ReceiveAndExtend(s, stream); - this.successiveACState = r > 0 ? 2 : 3; + this.successiveACState = r != 0 ? 2 : 3; } continue; case 1: // Skipping r zero items case 2: - if (component.BlockData[offset + z] > 0) + if (component.BlockData[offset + z] != 0) { component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); } @@ -459,7 +460,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma break; case 3: // Set value for a zero item - if (component.BlockData[offset + z] > 0) + if (component.BlockData[offset + z] != 0) { component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); } @@ -471,7 +472,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma break; case 4: // Eob - if (component.BlockData[offset + z] > 0) + if (component.BlockData[offset + z] != 0) { component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); } diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 21c28043be..b608b4951f 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -326,8 +326,8 @@ private void ParseStream() ref var frameComponent = ref this.frame.Components[i]; var component = new Component { - ScaleX = frameComponent.HorizontalFactor / this.frame.MaxHorizontalFactor, - ScaleY = frameComponent.VerticalFactor / this.frame.MaxVerticalFactor, + ScaleX = frameComponent.HorizontalFactor / (float)this.frame.MaxHorizontalFactor, + ScaleY = frameComponent.VerticalFactor / (float)this.frame.MaxVerticalFactor, BlocksPerLine = frameComponent.BlocksPerLine, BlocksPerColumn = frameComponent.BlocksPerColumn }; From ca9bd3579887cda33465c860adbde27f5bacf3be Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 28 Jun 2017 02:23:43 +1000 Subject: [PATCH 018/135] Can now decode many images --- .../Formats/Jpeg/Port/Components/Adobe.cs | 40 +- .../Jpeg/Port/Components/FileMarker.cs | 6 + .../Jpeg/Port/Components/JpegPixelArea.cs | 146 ++++++ .../Jpeg/Port/Components/ScanDecoder.cs | 496 +++++++++++++----- .../Jpeg/Port/Components/YCbCrToRgbTables.cs | 128 +++++ .../Formats/Jpeg/Port/JpegDecoderCore.cs | 301 ++++++++--- tests/ImageSharp.Tests/TestFile.cs | 19 +- .../Formats/Jpg/baseline/ycck - Copy.jpg | Bin 0 -> 611572 bytes 8 files changed, 932 insertions(+), 204 deletions(-) create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/YCbCrToRgbTables.cs create mode 100644 tests/ImageSharp.Tests/TestImages/Formats/Jpg/baseline/ycck - Copy.jpg diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs index 130b7bdb36..6ef128ccb4 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Adobe.cs @@ -6,10 +6,12 @@ // ReSharper disable InconsistentNaming namespace ImageSharp.Formats.Jpeg.Port.Components { + using System; + /// /// Provides information about the Adobe marker segment /// - internal struct Adobe + internal struct Adobe : IEquatable { /// /// The DCT Encode Version @@ -34,5 +36,39 @@ internal struct Adobe /// 02 : YCCK /// public byte ColorTransform; + + /// + public bool Equals(Adobe other) + { + return this.DCTEncodeVersion == other.DCTEncodeVersion + && this.APP14Flags0 == other.APP14Flags0 + && this.APP14Flags1 == other.APP14Flags1 + && this.ColorTransform == other.ColorTransform; + } + + /// + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + return obj is Adobe && this.Equals((Adobe)obj); + } + + /// + public override int GetHashCode() + { + unchecked + { + // TODO: Merge and use HashCodeHelpers + int hashCode = this.DCTEncodeVersion.GetHashCode(); + hashCode = (hashCode * 397) ^ this.APP14Flags0.GetHashCode(); + hashCode = (hashCode * 397) ^ this.APP14Flags1.GetHashCode(); + hashCode = (hashCode * 397) ^ this.ColorTransform.GetHashCode(); + return hashCode; + } + } } -} +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs index 39adba5cde..eaf3dafb95 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/FileMarker.cs @@ -49,5 +49,11 @@ public FileMarker(ushort marker, long position, bool invalid) /// Gets the position of the marker within a stream /// public long Position { get; } + + /// + public override string ToString() + { + return this.Marker.ToString("X"); + } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs new file mode 100644 index 0000000000..eafc6c33c8 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs @@ -0,0 +1,146 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System; + using System.Diagnostics; + using System.Runtime.CompilerServices; + using ImageSharp.Memory; + + /// + /// Represents a section of the jpeg component data laid out in pixel order. + /// + internal struct JpegPixelArea : IDisposable + { + private readonly int imageWidth; + + private readonly int imageHeight; + + private Buffer componentData; + + private int rowStride; + + /// + /// Initializes a new instance of the struct. + /// + /// The image width + /// The image height + /// The number of components + public JpegPixelArea(int imageWidth, int imageHeight, int numberOfComponents) + { + this.imageWidth = imageWidth; + this.imageHeight = imageHeight; + this.Width = 0; + this.Height = 0; + this.NumberOfComponents = numberOfComponents; + this.componentData = null; + this.rowStride = 0; + } + + /// + /// Gets the number of components + /// + public int NumberOfComponents { get; } + + /// + /// Gets the width + /// + public int Width { get; private set; } + + /// + /// Gets the height + /// + public int Height { get; private set; } + + /// + /// Organsizes the decoded jpeg components into a linear array ordered by component. + /// This must be called before attempting to retrieve the data. + /// + /// The jpeg component blocks + /// The pixel area width + /// The pixel area height + public void LinearizeBlockData(ComponentBlocks components, int width, int height) + { + this.Width = width; + this.Height = height; + int numberOfComponents = this.NumberOfComponents; + this.rowStride = width * numberOfComponents; + + float scaleX = this.imageWidth / (float)width; + float scaleY = this.imageHeight / (float)height; + this.componentData = new Buffer(width * height * numberOfComponents); + const uint Mask3Lsb = 0xFFFFFFF8; // Used to clear the 3 LSBs + + using (var xScaleBlockOffset = new Buffer(width)) + { + for (int i = 0; i < numberOfComponents; i++) + { + ref Component component = ref components.Components[i]; + float componentScaleX = component.ScaleX * scaleX; + float componentScaleY = component.ScaleY * scaleY; + int offset = i; + Buffer output = component.Output; + int blocksPerScanline = (component.BlocksPerLine + 1) << 3; + + // Precalculate the xScaleBlockOffset + int j; + for (int x = 0; x < width; x++) + { + j = 0 | (int)(x * componentScaleX); + xScaleBlockOffset[x] = (int)((j & Mask3Lsb) << 3) | (j & 7); + } + + // Linearize the blocks of the component + for (int y = 0; y < height; y++) + { + j = 0 | (int)(y * componentScaleY); + int index = blocksPerScanline * (int)(j & Mask3Lsb) | ((j & 7) << 3); + for (int x = 0; x < width; x++) + { + this.componentData[offset] = (byte)output[index + xScaleBlockOffset[x]]; + offset += numberOfComponents; + } + } + } + } + } + + /// + /// Gets a representing the row 'y' beginning from the the first byte on that row. + /// + /// The y-coordinate of the pixel row. Must be greater than or equal to zero and less than the height of the pixel area. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Span GetRowSpan(int y) + { + this.CheckCoordinates(y); + return this.componentData.Slice(y * this.rowStride, this.rowStride); + } + + /// + public void Dispose() + { + this.componentData?.Dispose(); + this.componentData = null; + } + + /// + /// Checks the coordinates to ensure they are within bounds. + /// + /// The y-coordinate of the row. Must be greater than zero and less than the height of the area. + /// + /// Thrown if the coordinates are not within the bounds of the image. + /// + [Conditional("DEBUG")] + private void CheckCoordinates(int y) + { + if (y < 0 || y >= this.Height) + { + throw new ArgumentOutOfRangeException(nameof(y), y, $"{y} is outwith the area bounds."); + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 2ec9ea9059..da7bb52a94 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -12,16 +12,6 @@ namespace ImageSharp.Formats.Jpeg.Port.Components using System.IO; using System.Runtime.CompilerServices; - /// - /// Encapsulates a decode method. TODO: This may well be a bottleneck - /// - /// The component - /// The offset - /// The DC Huffman tables - /// The AC Huffman tables - /// The input stream - internal delegate void DecodeAction(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream); - /// /// Provides the means to decode a spectral scan /// @@ -37,6 +27,8 @@ internal struct ScanDecoder private int eobrun; + private int compIndex; + private int successiveState; private int successiveACState; @@ -58,7 +50,8 @@ internal struct ScanDecoder /// The spectral selection end /// The successive approximation bit high end /// The successive approximation bit low end - public void DecodeScan( + /// The representing the processed length in bytes + public long DecodeScan( Frame frame, Stream stream, HuffmanTables dcHuffmanTables, @@ -72,179 +65,438 @@ public void DecodeScan( int successivePrev, int successive) { + this.compIndex = componentIndex; this.specStart = spectralStart; this.specEnd = spectralEnd; this.successiveState = successive; bool progressive = frame.Progressive; int mcusPerLine = frame.McusPerLine; + long startPosition = stream.Position; - // TODO: Delegate action will not be fast - DecodeAction decodeFn; + int mcu = 0; + int mcuExpected; + if (componentsLength == 1) + { + mcuExpected = components[this.compIndex].BlocksPerLine * components[this.compIndex].BlocksPerColumn; + } + else + { + mcuExpected = mcusPerLine * frame.McusPerColumn; + } - if (progressive) + FileMarker fileMarker; + while (mcu < mcuExpected) { - if (this.specStart == 0) + // Reset interval stuff + int mcuToRead = resetInterval != 0 ? Math.Min(mcuExpected - mcu, resetInterval) : mcuExpected; + for (int i = 0; i < components.Length; i++) { - if (successivePrev == 0) - { - decodeFn = this.DecodeDCFirst; - } - else - { - decodeFn = this.DecodeDCSuccessive; - } + ref FrameComponent c = ref components[i]; + c.Pred = 0; + } + + this.eobrun = 0; - Debug.WriteLine(successivePrev == 0 ? "decodeDCFirst" : "decodeDCSuccessive"); + if (!progressive) + { + this.DecodeScanBaseline(dcHuffmanTables, acHuffmanTables, components, componentsLength, mcusPerLine, mcuToRead, ref mcu, stream); } else { - if (successivePrev == 0) + if (this.specStart == 0) { - decodeFn = this.DecodeACFirst; + if (successivePrev == 0) + { + this.DecodeScanDCFirst(dcHuffmanTables, components, componentsLength, mcusPerLine, mcuToRead, ref mcu, stream); + } + else + { + this.DecodeScanDCSuccessive(components, componentsLength, mcusPerLine, mcuToRead, ref mcu, stream); + } } else { - decodeFn = this.DecodeACSuccessive; + if (successivePrev == 0) + { + this.DecodeScanACFirst(acHuffmanTables, components, componentsLength, mcusPerLine, mcuToRead, ref mcu, stream); + } + else + { + this.DecodeScanACSuccessive(acHuffmanTables, components, componentsLength, mcusPerLine, mcuToRead, ref mcu, stream); + } } + } + + // Find marker + this.bitsCount = 0; + long position = stream.Position; + fileMarker = JpegDecoderCore.FindNextFileMarkerNew(stream); + + // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past + // those to attempt to find a valid marker (fixes issue4090.pdf) in original code. + if (fileMarker.Invalid) + { +#if DEBUG + Debug.WriteLine($"DecodeScan - Unexpected MCU data at {stream.Position}, next marker is: {fileMarker.Marker}"); + +#endif + // stream.Position = fileMarker.Position; + } + + ushort marker = fileMarker.Marker; + + // if (marker <= 0xFF00) + // { + // throw new ImageFormatException("Marker was not found"); + // } + + // RSTn We've alread read the bytes and altered the position so no need to skip + if (marker >= JpegConstants.Markers.RST0 && marker <= JpegConstants.Markers.RST7) + { + continue; + } - Debug.WriteLine(successivePrev == 0 ? "decodeACFirst" : "decodeACSuccessive"); + if (!fileMarker.Invalid) + { + // We've found a valid marker. + // Rewind the stream to the position of the marker and beak + stream.Position = fileMarker.Position; + break; } + + // Rewind the stream + stream.Position = position; } - else + + fileMarker = JpegDecoderCore.FindNextFileMarkerNew(stream); + + // Some images include more Scan blocks than expected, skip past those and + // attempt to find the next valid marker (fixes issue8182.pdf) in original code. + if (fileMarker.Invalid) { - decodeFn = this.DecodeBaseline; +#if DEBUG + Debug.WriteLine($"DecodeScan - Unexpected MCU data, next marker is: {fileMarker.Marker}"); +#endif + stream.Position = fileMarker.Position; } - int mcu = 0; - int mcuExpected; + return stream.Position - startPosition; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int GetBlockBufferOffset(FrameComponent component, int row, int col) + { + return 64 * (((component.BlocksPerLine + 1) * row) + col); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeScanBaseline( + HuffmanTables dcHuffmanTables, + HuffmanTables acHuffmanTables, + FrameComponent[] components, + int componentsLength, + int mcusPerLine, + int mcuToRead, + ref int mcu, + Stream stream) + { if (componentsLength == 1) { - mcuExpected = components[componentIndex].BlocksPerLine * components[componentIndex].BlocksPerColumn; + ref FrameComponent component = ref components[this.compIndex]; + for (int n = 0; n < mcuToRead; n++) + { + this.DecodeBlockBaseline(dcHuffmanTables, acHuffmanTables, ref component, mcu, stream); + mcu++; + } } else { - mcuExpected = mcusPerLine * frame.McusPerColumn; - } + for (int n = 0; n < mcuToRead; n++) + { + for (int i = 0; i < componentsLength; i++) + { + ref FrameComponent component = ref components[i]; + int h = component.HorizontalFactor; + int v = component.VerticalFactor; + for (int j = 0; j < v; j++) + { + for (int k = 0; k < h; k++) + { + this.DecodeMcuBaseline(dcHuffmanTables, acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); + } + } + } - Debug.WriteLine("mcuExpected = " + mcuExpected); + mcu++; + } + } + } - // FileMarker fileMarker; - while (mcu < mcuExpected) + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeScanDCFirst( + HuffmanTables dcHuffmanTables, + FrameComponent[] components, + int componentsLength, + int mcusPerLine, + int mcuToRead, + ref int mcu, + Stream stream) + { + if (componentsLength == 1) { - // Reset interval - int mcuToRead = resetInterval > 0 ? Math.Min(mcuExpected - mcu, resetInterval) : mcuExpected; - - // TODO: We might just be able to loop here. - // if (componentsLength == 1) - // { - // ref FrameComponent c = ref components[componentIndex]; - // c.Pred = 0; - // } - // else - // { - for (int i = 0; i < components.Length; i++) + ref FrameComponent component = ref components[this.compIndex]; + for (int n = 0; n < mcuToRead; n++) { - ref FrameComponent c = ref components[i]; - c.Pred = 0; + this.DecodeBlockDCFirst(dcHuffmanTables, ref component, mcu, stream); + mcu++; } + } + else + { + for (int n = 0; n < mcuToRead; n++) + { + for (int i = 0; i < componentsLength; i++) + { + ref FrameComponent component = ref components[i]; + int h = component.HorizontalFactor; + int v = component.VerticalFactor; + for (int j = 0; j < v; j++) + { + for (int k = 0; k < h; k++) + { + this.DecodeMcuDCFirst(dcHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); + } + } + } - // } - this.eobrun = 0; + mcu++; + } + } + } - if (componentsLength == 1) + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeScanDCSuccessive( + FrameComponent[] components, + int componentsLength, + int mcusPerLine, + int mcuToRead, + ref int mcu, + Stream stream) + { + if (componentsLength == 1) + { + ref FrameComponent component = ref components[this.compIndex]; + for (int n = 0; n < mcuToRead; n++) + { + this.DecodeBlockDCSuccessive(ref component, mcu, stream); + mcu++; + } + } + else + { + for (int n = 0; n < mcuToRead; n++) { - ref FrameComponent component = ref components[componentIndex]; - for (int n = 0; n < mcuToRead; n++) + for (int i = 0; i < componentsLength; i++) { - DecodeBlock(dcHuffmanTables, acHuffmanTables, ref component, decodeFn, mcu, stream); - mcu++; + ref FrameComponent component = ref components[i]; + int h = component.HorizontalFactor; + int v = component.VerticalFactor; + for (int j = 0; j < v; j++) + { + for (int k = 0; k < h; k++) + { + this.DecodeMcuDCSuccessive(ref component, mcusPerLine, mcu, j, k, stream); + } + } } + + mcu++; } - else + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeScanACFirst( + HuffmanTables acHuffmanTables, + FrameComponent[] components, + int componentsLength, + int mcusPerLine, + int mcuToRead, + ref int mcu, + Stream stream) + { + if (componentsLength == 1) + { + ref FrameComponent component = ref components[this.compIndex]; + for (int n = 0; n < mcuToRead; n++) + { + this.DecodeBlockACFirst(acHuffmanTables, ref component, mcu, stream); + mcu++; + } + } + else + { + for (int n = 0; n < mcuToRead; n++) { - for (int n = 0; n < mcuToRead; n++) + for (int i = 0; i < componentsLength; i++) { - for (int i = 0; i < componentsLength; i++) + ref FrameComponent component = ref components[i]; + int h = component.HorizontalFactor; + int v = component.VerticalFactor; + for (int j = 0; j < v; j++) { - ref FrameComponent component = ref components[i]; - int h = component.HorizontalFactor; - int v = component.VerticalFactor; - for (int j = 0; j < v; j++) + for (int k = 0; k < h; k++) { - for (int k = 0; k < h; k++) - { - DecodeMcu(dcHuffmanTables, acHuffmanTables, ref component, decodeFn, mcusPerLine, mcu, j, k, stream); - } + this.DecodeMcuACFirst(acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); } } - - mcu++; } + + mcu++; } + } + } - // Find marker - // this.bitsCount = 0; - // // TODO: We need to make sure we are not overwriting anything here. - // fileMarker = JpegDecoderCore.FindNextFileMarker(stream); - // // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past - // // those to attempt to find a valid marker (fixes issue4090.pdf) in original code. - // if (fileMarker.Invalid) - // { - // #if DEBUG - // Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); - // #endif - // } - // ushort marker = fileMarker.Marker; - // if (marker <= 0xFF00) - // { - // throw new ImageFormatException("Marker was not found"); - // } - // if (marker >= JpegConstants.Markers.RST0 && marker <= JpegConstants.Markers.RST7) - // { - // // RSTx - // stream.Skip(2); - // } - // else - // { - // break; - // } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeScanACSuccessive( + HuffmanTables acHuffmanTables, + FrameComponent[] components, + int componentsLength, + int mcusPerLine, + int mcuToRead, + ref int mcu, + Stream stream) + { + if (componentsLength == 1) + { + ref FrameComponent component = ref components[this.compIndex]; + for (int n = 0; n < mcuToRead; n++) + { + this.DecodeBlockACSuccessive(acHuffmanTables, ref component, mcu, stream); + mcu++; + } + } + else + { + for (int n = 0; n < mcuToRead; n++) + { + for (int i = 0; i < componentsLength; i++) + { + ref FrameComponent component = ref components[i]; + int h = component.HorizontalFactor; + int v = component.VerticalFactor; + for (int j = 0; j < v; j++) + { + for (int k = 0; k < h; k++) + { + this.DecodeMcuACSuccessive(acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); + } + } + } + + mcu++; + } } + } - // fileMarker = JpegDecoderCore.FindNextFileMarker(stream); - // // Some images include more Scan blocks than expected, skip past those and - // // attempt to find the next valid marker (fixes issue8182.pdf) in original code. - // if (fileMarker.Invalid) - // { - // #if DEBUG - // Debug.WriteLine("DecodeScan - Unexpected MCU data, next marker is: " + fileMarker.Marker.ToString("X")); - // #endif - // } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeBlockBaseline(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + { + int blockRow = (mcu / component.BlocksPerLine) | 0; + int blockCol = mcu % component.BlocksPerLine; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeBaseline(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int GetBlockBufferOffset(ref FrameComponent component, int row, int col) + private void DecodeMcuBaseline(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) { - return 64 * (((component.BlocksPerLine + 1) * row) + col); + int mcuRow = (mcu / mcusPerLine) | 0; + int mcuCol = mcu % mcusPerLine; + int blockRow = (mcuRow * component.VerticalFactor) + row; + int blockCol = (mcuCol * component.HorizontalFactor) + col; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeBaseline(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static void DecodeMcu(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, DecodeAction decode, int mcusPerLine, int mcu, int row, int col, Stream stream) + private void DecodeBlockDCFirst(HuffmanTables dcHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + { + int blockRow = (mcu / component.BlocksPerLine) | 0; + int blockCol = mcu % component.BlocksPerLine; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeDCFirst(ref component, offset, dcHuffmanTables, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeMcuDCFirst(HuffmanTables dcHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) { int mcuRow = (mcu / mcusPerLine) | 0; int mcuCol = mcu % mcusPerLine; int blockRow = (mcuRow * component.VerticalFactor) + row; int blockCol = (mcuCol * component.HorizontalFactor) + col; - int offset = GetBlockBufferOffset(ref component, blockRow, blockCol); - decode(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeDCFirst(ref component, offset, dcHuffmanTables, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static void DecodeBlock(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, DecodeAction decode, int mcu, Stream stream) + private void DecodeBlockDCSuccessive(ref FrameComponent component, int mcu, Stream stream) { int blockRow = (mcu / component.BlocksPerLine) | 0; int blockCol = mcu % component.BlocksPerLine; - int offset = GetBlockBufferOffset(ref component, blockRow, blockCol); - decode(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeDCSuccessive(ref component, offset, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeMcuDCSuccessive(ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) + { + int mcuRow = (mcu / mcusPerLine) | 0; + int mcuCol = mcu % mcusPerLine; + int blockRow = (mcuRow * component.VerticalFactor) + row; + int blockCol = (mcuCol * component.HorizontalFactor) + col; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeDCSuccessive(ref component, offset, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeBlockACFirst(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + { + int blockRow = (mcu / component.BlocksPerLine) | 0; + int blockCol = mcu % component.BlocksPerLine; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeACFirst(ref component, offset, acHuffmanTables, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeMcuACFirst(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) + { + int mcuRow = (mcu / mcusPerLine) | 0; + int mcuCol = mcu % mcusPerLine; + int blockRow = (mcuRow * component.VerticalFactor) + row; + int blockCol = (mcuCol * component.HorizontalFactor) + col; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeACFirst(ref component, offset, acHuffmanTables, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeBlockACSuccessive(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + { + int blockRow = (mcu / component.BlocksPerLine) | 0; + int blockCol = mcu % component.BlocksPerLine; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeACSuccessive(ref component, offset, acHuffmanTables, stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void DecodeMcuACSuccessive(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) + { + int mcuRow = (mcu / mcusPerLine) | 0; + int mcuCol = mcu % mcusPerLine; + int blockRow = (mcuRow * component.VerticalFactor) + row; + int blockCol = (mcuCol * component.HorizontalFactor) + col; + int offset = GetBlockBufferOffset(component, blockRow, blockCol); + this.DecodeACSuccessive(ref component, offset, acHuffmanTables, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -257,10 +509,10 @@ private int ReadBit(Stream stream) } this.bitsData = stream.ReadByte(); - if (this.bitsData == JpegConstants.Markers.Prefix) + if (this.bitsData == 0xFF) { int nextByte = stream.ReadByte(); - if (nextByte > 0) + if (nextByte != 0) { throw new ImageFormatException($"Unexpected marker {(this.bitsData << 8) | nextByte}"); } @@ -354,7 +606,7 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, Stream stream) { int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); int diff = t == 0 ? 0 : this.ReceiveAndExtend(t, stream) << this.successiveState; @@ -362,13 +614,13 @@ private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTabl } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeDCSuccessive(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + private void DecodeDCSuccessive(ref FrameComponent component, int offset, Stream stream) { component.BlockData[offset] |= (short)(this.ReadBit(stream) << this.successiveState); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTables acHuffmanTables, Stream stream) { if (this.eobrun > 0) { @@ -404,7 +656,7 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeACSuccessive(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + private void DecodeACSuccessive(ref FrameComponent component, int offset, HuffmanTables acHuffmanTables, Stream stream) { int k = this.specStart; int e = this.specEnd; @@ -439,7 +691,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma } this.successiveACNextValue = this.ReceiveAndExtend(s, stream); - this.successiveACState = r != 0 ? 2 : 3; + this.successiveACState = r > 0 ? 2 : 3; } continue; diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/YCbCrToRgbTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/YCbCrToRgbTables.cs new file mode 100644 index 0000000000..02397e1d77 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/YCbCrToRgbTables.cs @@ -0,0 +1,128 @@ +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System.Runtime.CompilerServices; + using ImageSharp.PixelFormats; + + /// + /// Provides 8-bit lookup tables for converting from YCbCr to Rgb colorspace. + /// Methods to build the tables are based on libjpeg implementation. + /// + internal struct YCbCrToRgbTables + { + /// + /// The red red-chrominance table + /// + public static int[] CrRTable = new int[256]; + + /// + /// The blue blue-chrominance table + /// + public static int[] CbBTable = new int[256]; + + /// + /// The green red-chrominance table + /// + public static int[] CrGTable = new int[256]; + + /// + /// The green blue-chrominance table + /// + public static int[] CbGTable = new int[256]; + + // Speediest right-shift on some machines and gives us enough accuracy at 4 decimal places. + private const int ScaleBits = 16; + + private const int Half = 1 << (ScaleBits - 1); + + private const int MinSample = 0; + + private const int HalfSample = 128; + + private const int MaxSample = 255; + + /// + /// Initializes the YCbCr tables + /// + public static void Create() + { + for (int i = 0, x = -128; i <= 255; i++, x++) + { + // i is the actual input pixel value, in the range 0..255 + // The Cb or Cr value we are thinking of is x = i - 128 + // Cr=>R value is nearest int to 1.402 * x + CrRTable[i] = RightShift((Fix(1.402F) * x) + Half); + + // Cb=>B value is nearest int to 1.772 * x + CbBTable[i] = RightShift((Fix(1.772F) * x) + Half); + + // Cr=>G value is scaled-up -0.714136286 + CrGTable[i] = (-Fix(0.714136286F)) * x; + + // Cb => G value is scaled - up - 0.344136286 * x + // We also add in Half so that need not do it in inner loop + CbGTable[i] = ((-Fix(0.344136286F)) * x) + Half; + } + } + + /// + /// Optimized method to pack bytes to the image from the YCbCr color space. + /// + /// The pixel format. + /// The packed pixel. + /// The y luminance component. + /// The cb chroma component. + /// The cr chroma component. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void PackYCbCr(ref TPixel packed, byte y, byte cb, byte cr) + where TPixel : struct, IPixel + { + byte r = (byte)(y + CrRTable[cr]).Clamp(0, 255); + + // The values for the G calculation are left scaled up, since we must add them together before rounding. + byte g = (byte)(y + RightShift(CbGTable[cb] + CrGTable[cr])).Clamp(0, 255); + + byte b = (byte)(y + CbBTable[cb]).Clamp(0, 255); + + packed.PackFromRgba32(new Rgba32(r, g, b, 255)); + } + + /// + /// Optimized method to pack bytes to the image from the YccK color space. + /// + /// The pixel format. + /// The packed pixel. + /// The y luminance component. + /// The cb chroma component. + /// The cr chroma component. + /// The keyline component. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void PackYccK(ref TPixel packed, byte y, byte cb, byte cr, byte k) + where TPixel : struct, IPixel + { + int c = (MaxSample - (y + CrRTable[cr])).Clamp(0, 255); + + // The values for the G calculation are left scaled up, since we must add them together before rounding. + int m = (MaxSample - (y + RightShift(CbGTable[cb] + CrGTable[cr]))).Clamp(0, 255); + + int cy = (MaxSample - (y + CbBTable[cb])).Clamp(0, 255); + + byte r = (byte)((c * k) / MaxSample); + byte g = (byte)((m * k) / MaxSample); + byte b = (byte)((cy * k) / MaxSample); + + packed.PackFromRgba32(new Rgba32(r, g, b, MaxSample)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int Fix(float x) + { + return (int)((x * (1L << ScaleBits)) + 0.5F); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int RightShift(int x) + { + return x >> ScaleBits; + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index b608b4951f..2c2cd57a5e 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -49,11 +49,13 @@ internal sealed class JpegDecoderCore : IDisposable private ComponentBlocks components; + private JpegPixelArea pixelArea; + private ushort resetInterval; - private int width; + private int imageWidth; - private int height; + private int imageHeight; private int numComponents; @@ -67,6 +69,14 @@ internal sealed class JpegDecoderCore : IDisposable ///
private Adobe adobe; + /// + /// Initializes static members of the class. + /// + static JpegDecoderCore() + { + YCbCrToRgbTables.Create(); + } + /// /// Initializes a new instance of the class. /// @@ -91,11 +101,12 @@ public JpegDecoderCore(IDecoderOptions options, Configuration configuration) public static FileMarker FindNextFileMarkerNew(Stream stream) { byte[] marker = new byte[2]; + int value = stream.Read(marker, 0, 2); if (value == 0) { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length - 2); } if (marker[0] == JpegConstants.Markers.Prefix) @@ -107,14 +118,16 @@ public static FileMarker FindNextFileMarkerNew(Stream stream) int suffix = stream.ReadByte(); if (suffix == -1) { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); + return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length - 2); } marker[1] = (byte)value; } + + return new FileMarker((ushort)((marker[0] << 8) | marker[1]), (int)(stream.Position - 2)); } - return new FileMarker((ushort)((marker[0] << 8) | marker[1]), (int)(stream.Position - 2)); + return new FileMarker((ushort)((marker[0] << 8) | marker[1]), (int)(stream.Position - 2), true); } /// @@ -182,7 +195,8 @@ public Image Decode(Stream stream) this.InputStream = stream; this.ParseStream(); - var image = new Image(1, 1); + var image = new Image(this.imageWidth, this.imageHeight); + this.GetData(image); return image; } @@ -192,6 +206,7 @@ public void Dispose() this.frame?.Dispose(); this.components?.Dispose(); this.quantizationTables?.Dispose(); + this.pixelArea.Dispose(); // Set large fields to null. this.frame = null; @@ -205,6 +220,9 @@ private static int GetBlockBufferOffset(ref Component component, int row, int co return 64 * (((component.BlocksPerLine + 1) * row) + col); } + /// + /// Parses the input stream for file markers + /// private void ParseStream() { // Check for the Start Of Image marker. @@ -224,12 +242,11 @@ private void ParseStream() while (fileMarker.Marker != JpegConstants.Markers.EOI) { // Get the marker length - int remaining; + int remaining = this.ReadUint16() - 2; switch (fileMarker.Marker) { case JpegConstants.Markers.APP0: - remaining = this.ReadUint16() - 2; this.ProcessApplicationHeaderMarker(remaining); break; @@ -246,10 +263,10 @@ private void ParseStream() case JpegConstants.Markers.APP11: case JpegConstants.Markers.APP12: case JpegConstants.Markers.APP13: + this.InputStream.Skip(remaining); break; case JpegConstants.Markers.APP14: - remaining = this.ReadUint16() - 2; this.ProcessApp14Marker(remaining); break; @@ -257,32 +274,28 @@ private void ParseStream() case JpegConstants.Markers.COM: // TODO: Read data block + this.InputStream.Skip(remaining); break; case JpegConstants.Markers.DQT: - remaining = this.ReadUint16() - 2; - this.ProcessDqtMarker(remaining); + this.ProcessDefineQuantizationTablesMarker(remaining); break; case JpegConstants.Markers.SOF0: case JpegConstants.Markers.SOF1: case JpegConstants.Markers.SOF2: - remaining = this.ReadUint16() - 2; this.ProcessStartOfFrameMarker(remaining, fileMarker); break; case JpegConstants.Markers.DHT: - remaining = this.ReadUint16() - 2; this.ProcessDefineHuffmanTablesMarker(remaining); break; case JpegConstants.Markers.DRI: - remaining = this.ReadUint16() - 2; this.ProcessDefineRestartIntervalMarker(remaining); break; case JpegConstants.Markers.SOS: - this.InputStream.Skip(2); this.ProcessStartOfScanMarker(); break; @@ -295,30 +308,30 @@ private void ParseStream() break; - default: - - // TODO: Not convinced this is required - // Skip back as it could be incorrect encoding -- last 0xFF byte of the previous - // block was eaten by the encoder - this.InputStream.Position -= 3; - this.InputStream.Read(this.temp, 0, 2); - if (this.temp[0] == 0xFF && this.temp[1] >= 0xC0 && this.temp[1] <= 0xFE) - { - // Rewind that last bytes we read - this.InputStream.Position -= 2; - break; - } - - // throw new ImageFormatException($"Unknown Marker {fileMarker.Marker} at {fileMarker.Position}"); - break; + //default: + + // // TODO: Not convinced this is required + // // Skip back as it could be incorrect encoding -- last 0xFF byte of the previous + // // block was eaten by the encoder + // this.InputStream.Position -= 3; + // this.InputStream.Read(this.temp, 0, 2); + // if (this.temp[0] == 0xFF && this.temp[1] >= 0xC0 && this.temp[1] <= 0xFE) + // { + // // Rewind that last bytes we read + // this.InputStream.Position -= 2; + // break; + // } + + // // throw new ImageFormatException($"Unknown Marker {fileMarker.Marker} at {fileMarker.Position}"); + // break; } // Read on. TODO: Test this on damaged images. fileMarker = FindNextFileMarkerNew(this.InputStream); } - this.width = this.frame.SamplesPerLine; - this.height = this.frame.Scanlines; + this.imageWidth = this.frame.SamplesPerLine; + this.imageHeight = this.frame.Scanlines; this.components = new ComponentBlocks { Components = new Component[this.frame.ComponentCount] }; for (int i = 0; i < this.components.Components.Length; i++) @@ -339,6 +352,53 @@ private void ParseStream() this.numComponents = this.components.Components.Length; } + /// + /// Fills the given image with the color data + /// + /// The pixel format. + /// The image + private void GetData(Image image) + where TPixel : struct, IPixel + { + if (this.numComponents > 4) + { + throw new ImageFormatException($"Unsupported color mode. Max components 4; found {this.numComponents}"); + } + + this.pixelArea = new JpegPixelArea(image.Width, image.Height, this.numComponents); + this.pixelArea.LinearizeBlockData(this.components, image.Width, image.Height); + + if (this.numComponents == 1) + { + this.FillGrayScaleImage(image); + return; + } + + if (this.numComponents == 3) + { + if (this.adobe.Equals(default(Adobe)) || this.adobe.ColorTransform == JpegConstants.Markers.Adobe.ColorTransformYCbCr) + { + this.FillYCbCrImage(image); + } + else if (this.adobe.ColorTransform == JpegConstants.Markers.Adobe.ColorTransformUnknown) + { + this.FillRgbImage(image); + } + } + + if (this.numComponents == 4) + { + if (this.adobe.ColorTransform == JpegConstants.Markers.Adobe.ColorTransformYcck) + { + this.FillYcckImage(image); + } + else + { + this.FillCmykImage(image); + } + } + } + /// /// Processes the application header containing the JFIF identifier plus extra data. /// @@ -398,10 +458,10 @@ private void ProcessApp14Marker(int remaining) remaining -= 12; bool isAdobe = this.temp[0] == JpegConstants.Markers.Adobe.A && - this.temp[1] == JpegConstants.Markers.Adobe.D && - this.temp[2] == JpegConstants.Markers.Adobe.O && - this.temp[3] == JpegConstants.Markers.Adobe.B && - this.temp[4] == JpegConstants.Markers.Adobe.E; + this.temp[1] == JpegConstants.Markers.Adobe.D && + this.temp[2] == JpegConstants.Markers.Adobe.O && + this.temp[3] == JpegConstants.Markers.Adobe.B && + this.temp[4] == JpegConstants.Markers.Adobe.E; if (isAdobe) { @@ -427,7 +487,7 @@ private void ProcessApp14Marker(int remaining) /// /// Thrown if the tables do not match the header /// - private void ProcessDqtMarker(int remaining) + private void ProcessDefineQuantizationTablesMarker(int remaining) { while (remaining > 0) { @@ -437,7 +497,7 @@ private void ProcessDqtMarker(int remaining) if (quantizationTableSpec > 3) { - throw new ImageFormatException("Bad Tq index value"); + throw new ImageFormatException($"Bad Tq index value: {quantizationTableSpec}"); } switch (quantizationTableSpec >> 4) @@ -570,17 +630,17 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) { if (remaining < 17) { - throw new ImageFormatException("DHT has wrong length"); + throw new ImageFormatException($"DHT has wrong length: {remaining}"); } - using (var huffmanData = new Buffer(16)) + using (var huffmanData = Buffer.CreateClean(16)) { for (int i = 2; i < remaining;) { byte huffmanTableSpec = (byte)this.InputStream.ReadByte(); this.InputStream.Read(huffmanData.Array, 0, 16); - using (var codeLengths = new Buffer(16)) + using (var codeLengths = Buffer.CreateClean(16)) { int codeLengthSum = 0; @@ -589,7 +649,7 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) codeLengthSum += codeLengths[j] = huffmanData[j]; } - using (var huffmanValues = new Buffer(codeLengthSum)) + using (var huffmanValues = Buffer.CreateClean(codeLengthSum)) { this.InputStream.Read(huffmanValues.Array, 0, codeLengthSum); @@ -615,7 +675,7 @@ private void ProcessDefineRestartIntervalMarker(int remaining) { if (remaining != 2) { - throw new ImageFormatException("DRI has wrong length"); + throw new ImageFormatException($"DRI has wrong length: {remaining}"); } this.resetInterval = this.ReadUint16(); @@ -660,31 +720,33 @@ private void ProcessStartOfScanMarker() int successiveApproximation = this.temp[2]; var scanDecoder = default(ScanDecoder); - scanDecoder.DecodeScan( - this.frame, - this.InputStream, - this.dcHuffmanTables, - this.acHuffmanTables, - this.frame.Components, - componentIndex, - selectorsCount, - this.resetInterval, - spectralStart, - spectralEnd, - successiveApproximation >> 4, - successiveApproximation & 15); + long position = scanDecoder.DecodeScan( + this.frame, + this.InputStream, + this.dcHuffmanTables, + this.acHuffmanTables, + this.frame.Components, + componentIndex, + selectorsCount, + this.resetInterval, + spectralStart, + spectralEnd, + successiveApproximation >> 4, + successiveApproximation & 15); + + this.InputStream.Position += position; Debug.WriteLine("spectralStart= " + spectralStart); Debug.WriteLine("spectralEnd= " + spectralEnd); Debug.WriteLine("successiveApproximation= " + successiveApproximation); Debug.WriteLine("Components after"); - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 10; j++) - { - Debug.WriteLine("component [" + i + "] : value [" + j + "] =" + this.frame.Components[i].BlockData[j] + "]"); - } - } + //for (int i = 0; i < 3; i++) + //{ + // for (int j = 0; j < 10; j++) + // { + // Debug.WriteLine("component [" + i + "] : value [" + j + "] =" + this.frame.Components[i].BlockData[j] + "]"); + // } + //} } /// @@ -694,7 +756,6 @@ private void ProcessStartOfScanMarker() /// The frame component private void BuildComponentData(ref Component component, ref FrameComponent frameComponent) { - // TODO: Write this int blocksPerLine = component.BlocksPerLine; int blocksPerColumn = component.BlocksPerColumn; using (var computationBuffer = Buffer.CreateClean(64)) @@ -776,21 +837,21 @@ private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengt /// private void PrepareComponents() { - int mcusPerLine = (int)Math.Ceiling(this.frame.SamplesPerLine / 8D / this.frame.MaxHorizontalFactor); - int mcusPerColumn = (int)Math.Ceiling(this.frame.Scanlines / 8D / this.frame.MaxVerticalFactor); + int mcusPerLine = (int)MathF.Ceiling(this.frame.SamplesPerLine / 8F / this.frame.MaxHorizontalFactor); + int mcusPerColumn = (int)MathF.Ceiling(this.frame.Scanlines / 8F / this.frame.MaxVerticalFactor); for (int i = 0; i < this.frame.ComponentCount; i++) { ref var component = ref this.frame.Components[i]; - int blocksPerLine = (int)Math.Ceiling(Math.Ceiling(this.frame.SamplesPerLine / 8D) * component.HorizontalFactor / this.frame.MaxHorizontalFactor); - int blocksPerColumn = (int)Math.Ceiling(Math.Ceiling(this.frame.Scanlines / 8D) * component.VerticalFactor / this.frame.MaxVerticalFactor); + int blocksPerLine = (int)MathF.Ceiling(MathF.Ceiling(this.frame.SamplesPerLine / 8F) * component.HorizontalFactor / this.frame.MaxHorizontalFactor); + int blocksPerColumn = (int)MathF.Ceiling(MathF.Ceiling(this.frame.Scanlines / 8F) * component.VerticalFactor / this.frame.MaxVerticalFactor); int blocksPerLineForMcu = mcusPerLine * component.HorizontalFactor; int blocksPerColumnForMcu = mcusPerColumn * component.VerticalFactor; int blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); - // Pooled. Disposed via frame siposal - component.BlockData = new Buffer(blocksBufferSize); + // Pooled. Disposed via frame disposal + component.BlockData = Buffer.CreateClean(blocksBufferSize); component.BlocksPerLine = blocksPerLine; component.BlocksPerColumn = blocksPerColumn; } @@ -799,6 +860,104 @@ private void PrepareComponents() this.frame.McusPerColumn = mcusPerColumn; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void FillGrayScaleImage(Image image) + where TPixel : struct, IPixel + { + for (int y = 0; y < image.Height; y++) + { + Span imageRowSpan = image.GetRowSpan(y); + Span areaRowSpan = this.pixelArea.GetRowSpan(y); + + for (int x = 0; x < image.Width; x++) + { + ref byte luminance = ref areaRowSpan[x]; + ref TPixel pixel = ref imageRowSpan[x]; + var rgba = new Rgba32(luminance, luminance, luminance); + pixel.PackFromRgba32(rgba); + } + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void FillYCbCrImage(Image image) + where TPixel : struct, IPixel + { + for (int y = 0; y < image.Height; y++) + { + Span imageRowSpan = image.GetRowSpan(y); + Span areaRowSpan = this.pixelArea.GetRowSpan(y); + for (int x = 0, o = 0; x < image.Width; x++, o += 3) + { + ref byte yy = ref areaRowSpan[o]; + ref byte cb = ref areaRowSpan[o + 1]; + ref byte cr = ref areaRowSpan[o + 2]; + ref TPixel pixel = ref imageRowSpan[x]; + YCbCrToRgbTables.PackYCbCr(ref pixel, yy, cb, cr); + } + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void FillYcckImage(Image image) + where TPixel : struct, IPixel + { + for (int y = 0; y < image.Height; y++) + { + Span imageRowSpan = image.GetRowSpan(y); + Span areaRowSpan = this.pixelArea.GetRowSpan(y); + for (int x = 0, o = 0; x < image.Width; x++, o += 4) + { + ref byte yy = ref areaRowSpan[o]; + ref byte cb = ref areaRowSpan[o + 1]; + ref byte cr = ref areaRowSpan[o + 2]; + ref byte k = ref areaRowSpan[o + 3]; + + ref TPixel pixel = ref imageRowSpan[x]; + YCbCrToRgbTables.PackYccK(ref pixel, yy, cb, cr, k); + } + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void FillCmykImage(Image image) + where TPixel : struct, IPixel + { + for (int y = 0; y < image.Height; y++) + { + Span imageRowSpan = image.GetRowSpan(y); + Span areaRowSpan = this.pixelArea.GetRowSpan(y); + for (int x = 0, o = 0; x < image.Width; x++, o += 4) + { + ref byte c = ref areaRowSpan[o]; + ref byte m = ref areaRowSpan[o + 1]; + ref byte cy = ref areaRowSpan[o + 2]; + ref byte k = ref areaRowSpan[o + 3]; + + byte r = (byte)((c * k) / 255); + byte g = (byte)((m * k) / 255); + byte b = (byte)((cy * k) / 255); + + ref TPixel pixel = ref imageRowSpan[x]; + var rgba = new Rgba32(r, g, b); + pixel.PackFromRgba32(rgba); + } + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void FillRgbImage(Image image) + where TPixel : struct, IPixel + { + for (int y = 0; y < image.Height; y++) + { + Span imageRowSpan = image.GetRowSpan(y); + Span areaRowSpan = this.pixelArea.GetRowSpan(y); + + PixelOperations.Instance.PackFromRgb24Bytes(areaRowSpan, imageRowSpan, image.Width); + } + } + /// /// Reads a from the stream advancing it by two bytes /// diff --git a/tests/ImageSharp.Tests/TestFile.cs b/tests/ImageSharp.Tests/TestFile.cs index f1b78383cb..d274d61a28 100644 --- a/tests/ImageSharp.Tests/TestFile.cs +++ b/tests/ImageSharp.Tests/TestFile.cs @@ -12,8 +12,6 @@ namespace ImageSharp.Tests using System.Linq; using System.Reflection; - using ImageSharp.PixelFormats; - /// /// A test image file. /// @@ -32,7 +30,7 @@ public class TestFile /// /// The image. /// - private readonly Image image; + private Image image; /// /// The file. @@ -46,9 +44,7 @@ public class TestFile private TestFile(string file) { this.file = file; - this.Bytes = File.ReadAllBytes(file); - this.image = Image.Load(this.Bytes); } /// @@ -129,7 +125,7 @@ public string GetFileNameWithoutExtension(object value) /// public Image CreateImage() { - return new Image(this.image); + return new Image(this.GetImage()); } /// @@ -144,6 +140,11 @@ public Image CreateImage(IDecoderOptions options) return Image.Load(this.Bytes, options); } + private Image GetImage() + { + return this.image ?? (this.image = Image.Load(this.Bytes)); + } + /// /// Gets the correct path to the formats directory. /// @@ -152,7 +153,7 @@ public Image CreateImage(IDecoderOptions options) /// private static string GetFormatsDirectory() { - List directories = new List< string > { + var directories = new List { "TestImages/Formats/", // Here for code coverage tests. "tests/ImageSharp.Tests/TestImages/Formats/", // from travis/build script "../../../../../ImageSharp.Tests/TestImages/Formats/", // from Sandbox46 @@ -167,9 +168,9 @@ private static string GetFormatsDirectory() AddFormatsDirectoryFromTestAssebmlyPath(directories); - string directory = directories.FirstOrDefault(x => Directory.Exists(x)); + string directory = directories.FirstOrDefault(Directory.Exists); - if(directory != null) + if (directory != null) { return directory; } diff --git a/tests/ImageSharp.Tests/TestImages/Formats/Jpg/baseline/ycck - Copy.jpg b/tests/ImageSharp.Tests/TestImages/Formats/Jpg/baseline/ycck - Copy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30e88773ededd890ad97f0a5cfac372e1af07aa5 GIT binary patch literal 611572 zcmeFZcU)6T*Dt=2E~tP73ko83dIv#JkfKrq0YL>Rp-2@HNJ1LvAt8i>5^CtZ_l_ch z3U(=C!4CFXuIpaI@B3^jE?QGj5!z*7AS3jmP4>{mU@fNa6P(tJkn5)lymsjJA} z+as{!ul5M2{=GfR1b)d7&|UUhw$zR#aex*01TC}lTo_q+2S_fq#KX)6ShnyUSh<)3 zd~kfeh5G;zkQ5UW6Bm;d7nhWlSS}&Gc9o>$sE*i;9Q|3rcE%h0=mT zTV*ta4;=Gct#~d*Q)Ep-PR+q>N^2c1cxh>e<8PUXZf84weDcXVLT6oWEn$Z_=eW}{u~kk56*i+5npCM|X*=9B7^dhR~|QqXW|@Wqs~ZzMUnu(5aO<+Prqi(eEa zrKqWIc>Jq0uxuHqtS3q=!PWNq4i9A`KLr%I-$kX2{{P!B{{7Z#}Q9x2~u}*2g1b8yr=X&Ff z>-6}z+Z*MYo*E+i>WH;+ZnFM7vvp93?NGB@iGAp>HJD;sD<$T$t+#^&>wgkXPdxN9 z$(>qW_c0h2>HOIJycL8YBzq@9bTVnAL5Bz^A6!vU&1{?}#_v;@`u8w;xYV&YFEz z5l%_xjc+s7dJfQMp5MD9cG$4z#H|;9W1rZ-d;0x#gART)pVs1s(^yKiSsg&F;ad+d6a%f>w z8t$;^d9-cR>|yx@!0b*9GIn70(yjC%r1z(E!5v+r<;CNisl*N&OG^hJKgZ}ser1>i=c>Xl>T z`_Ijd-QQ`FIUjBUn!S~y=5XVY2~t-z(pe>|z|L@DTE_F@*V79C8o3POe2ftz0}z^3 z{5dk)SDOc!-S&R&lwjYO_wF&F-|oH1j8$1i@71PtW6l+Rmen7he6L&pI$J{Y^rS~B z2Vik!TWWOgd9IM0x9NH_Yxglwi~FL0>7Jgbbk_L8*V7>Lq?+E!c&2LH{z1;xqU+_p>s;sB%Kd&E?(TZiHPlAjSKQh7 zap-ohi{N~d`vNd)JvLz*sL$xoZ`WMiH?O=+ZRT1#f~dSXwC?Q%?=ioUh_QRuH9l?` zs?zA2{V-J-pL4ey{{H@nev`>}(aC*BzzP*w8el`VRI?(?z1i(^B=xu8l8J~7u7MC!2Ut$uMfl!>_WAE zr1kV7%!pjb@noY_Jk?(!xCru_F2DYD)AF`W?(wYT@-GEidld#5W@8xIh zBRbXQ$K$^rSO6?S&RQ!qX6#(Jvos-+G%A3TxmC*_h4Ds5e|38D&@!R!3|HNgfP2l zfo`XsZXCj&dX^1{M`X?=^}#R|p$=_<66w_8RTc>|J<%s&6+gb8Zu{afk=!+O>K#|P z*Qep0EoA|?RQKT1T+?hIcQ}=Bd0WEE{1+eBKPWUlxk~g1yH^tZ@clQVPFLA;3xLDy z$MaQ&Y4z%vX*9q>t@Gd`?pbP>CP&Vfc&a` z@9T$uyfC>o)EheYwfKvB1q=>-`AD~R^irzwxfmc2K6k@^3R_$^8~^R{0OWnBMM>hV zFDKFO)EZ{zbZ^UzzMe076?EKy*A*ev-+xfOWFq`WyZX~%xvmLR*R>{tQ@0XYmM5-~ zJb$0wep>z$XDV7tO>I-@8HYDxuMFEu-vF)aqa6LKX8OA_Yr8_o!M1!}0CZnH zdC`J;iqJ23CE}{6C;t$Ri5m)iDW5i927yH!J{ntZrNDTS!CW=mYuF zaVx$1g!7M_YQN!bt(0kPeC2&>Rq5#?Q~Sc+rpQHwl+DJoUoHS%w?Noltjr5y-Uo9e zNqhltGwGOLz5tLSG@nh2H($MO^7=BernfPuS};T)+;xUoS3XPcvsQpS>Fuy-1z$ipt3alNBP$2THoFk&r=n6xu1Si-EcL9 zJT*$tco5UVWG**oF+#~1C_?DFTBw-v*)D`pmI1?8E}TX_lK5<>%ku6Q?5Roh*7Qxh zlY*MU>1NrY2FwSMu1z!7ctdj=cMjfvkF|iz--8wgdC=;Wfo?$OT`9p{r9JJR6ogayFSjSYXX((PO#)6CNGS@qc` z{c;O{)Fq=6y<2;XHRh{I!|%*i*|Rrk`eRoC-}c#ErH$Y7VOc!QN;txL)AhO2?o!v3 z9dh%L(guoFqIZVB z-#&dkVxT=mUTZho`t(NsjT7OY=5H}y_uZL2y7MbVejF`KDOR`0emx8)l$~l-G!@ER zcH>&_hLyTQf185&`eOD5s)(ql8^XJ2z4J#W6usxln`Kfb>@H@aV)Lo;4|Uor+8)iQ2%QI_!sAZ+7FM?mgjJtAaaVuFWD;9nr`p;-*4ZtQD$^k@i_f%^UI5&7LayN4$*Q`yV|bSK4`c-SY_pL!C~)i3X^?exK}yhPIi$ z&C}Qu^P$t5-Z`nO8;eR*Qrz~_4OYy|!+28?R#N69mvqLn^&`bwx`yU%zea6JWs(f32%-SLH{)%fYU5B?A^~lfeO@E^{Wmxcm`oPWmyW~l_ zXz2oQRTk?vpHmv*tg%6SS;x*vI_J}cxsCGgEaxQSj)UKV5Pb_nOT9VrY5}-&c7Axy zZ0L6P#hN6aVF-EsJ+^>R!?njKXWly_wXvuf<^piJti906Lg?_p{gp-CD*FTFUZ{J^ zpp7?K%K)70C)epS2mN<0OG!L>wV>_Ix5+`E-0S>5wNy6|28yK@0f*Z@z= z_pX7cuiL*L5&imb-n*+sTrONhQ-RPNWXUC3C5D?z*ED`ppo#BMdCj#kv3Z2)!-nsC z=gyl?7<*{|@q00_ePXKTom;|_osO$|5Qx5EwiN5pb6}DlaAwM5=HQ373&35CvzS59 z_^&qe<@@+OJbf?uq-(OFLV}!5#p55+FP?1GwAyByllLjhd!?9$B)+KE8-$D&Xy}7R&st#dcxPfY6W# zuw0hUX%+?z`PB%pkzV1yGY)DCBVV*pc$wQ-(dzg_$Vm&gu=W`Lm%_Aid9}xqLTK0_7T5E z1wYMa2A_Pjfuj)LB{Ba|?Qzf__ixoYdIv4h?ZdrIUHK9gFDdWv&@dN&2-vyc2n`7F z`(?hB`~nA1r-PwTXlQUyXo%lWh~%#lz6yV%ulPlG2=Md&dx6BS0#LW#{QS8h_-;vu zpPsp8zn+WpXvu50@@J*s!vqH`jkgtxG`@#&%OdB7f93@z7xUtackm{#hyuNr{A>Bo zNdgYoMGdAFsaAlRuP;~<1l~bkBX|k?q~xTg{ibLx(%r!OFCM;2Qvl$P{GXIXncu)X zz@J$Q|9S~d@QeSoXyN}&*`h7@qQSQPv=raF`&UkVF(hw_wn+Io zhnJaxK=A!j(iVPd(Yw0T2OIfWLH@e3)N+1y(Sf{Jr7REt1OuLcAGpedEv`D=U@8K9 zg@QR1AP9W=fo~N+2haeP?7Ar7AGe|Is+bz;S87n+t&`?WA2qfGS3h@C6 zz;Q&_uaA%AOU!%9x41{ujCg*v0<;$-X!@ckwF%Kf}S{Z1Qn2y)+NkET;KGcxevvIRL4H;Eg|f zvX|Zhj{yN?FbPIN)`O9aKar0=k&i!-k3W%*Kar0=k&i!-k3W%*Kar0=k&i!-k3W%* zKar0=k&j;yl0T7;|H~sEi(ZGVpwj>V{dk}^f$vUO1sni;K)0P2=*&|9!wLRi8VbH6 z7E@s$$ADW`P(h^1Dt& zU0+3A=eUNpA$Uw#LvOE!x}m!I601$9Pk=AtpRAf%$A2AX{s${KZhXMd&Hs_v$J@|1 zG(6Z7Y;{1eryoS^Y#78(QQ@~S4HrF&V9lU<+JC28o0);}H{XCDu)s;xQB}bO;sp*$ zz6V%gm!pfF{ceRw%|*R!Yz(bKBA}ij-VkeZV@1$ZssRB$hMqbG-kush`YO8KS~@CP zdfM75`Ve0q6&+1=T^$W?bx$2n-(Pt1P;VH2K=AQPbHgXp8vn)+Ivz7TC4FBM$_ zbx#!y4T!FazORp`3PcBD0MYUE@zOQ${3UJ4aqSuOcd2}>d_al1T6$hydYXDF20B_^ zD&Fea`YK*J+FmM}p6Z%zk=a=^dX<9}51Pka;@Ap74Am!;YxLVcl8p5c%KexU9CXJb2JdY=|ti z^`9pBmud0;*d#w~?(Odx;s*g2b2UYNi`4kb-cpaN{pVm*B$= zfEX_9fce2g%fPcFVd2nl{z7fR3kkMA!j)`=j9Q72xyopMSf+ z-SYI%VhA3%qw+81e`EdETy!v~i90N+q=Pzi98%->({je>^p(-~lT%>m7W>R`GW z0CGjZG?c%5XJcFTt=!XXY zz)JX8FDM?^_}^|b_@)0JUQqD32Vb07Xc%Jg00g+FR##V8+Iu@9BA}4q2xSH95N}lg zIN|E1uvB#eco3@{Jd?&&5B7!fj}QSug5a4izMtan*T3XJ5_o85nUc_E;Ze~5v3tvP zB}kHeD;8F1NV!YXWtvt$T`RFpQ`TiYVgq+$!=~GEAGU0lcU7QltyLV|wy=HM4)dM9 zyU4qX_Vn$YP!UtzrDmlbph43t)aurLr1M>Gy}pjYF~i_}G@}CJ?){HUz8#Q0xZCWY z`Kd!Ni+IZttBckT4}U!>W20;Yojn-n5ab^07jiBX8AdqA2v3a2fabwUBWt3X;2nsI z$ji~!P}kAdFay|r+?AL<{3Sv+v5VA3ZlcstD`_RM`SdIXH!gumj*n)ACHSyUaE>OL zCTS(_NZG)Ze_EUpn7fnb%E<|ZVcY+yj66Ybq8_RbI^K7V|e`tF!J)=wb9!9 z+z04~UXLutlpjky{_-l~6_cuR^=1$E^%-1it@qc_QFd}YO1I8D%sY~Iw9uy1w#u&FzV+C7hd#&a z#|NE;o$tBaKk>-*vD>qgh)i zgWrTqguV!Sa_&+1Xv7fo8th_ZOH>uS0FjPlMUzlSbSTCLdje+@a{#YH*iDopNs;Es z?Y#oZ*&fm8Hwu zp1meVC}%47W!^~s)q;+~nxewu^pb>9N*T61sv@+~uj)*-Tg~xWySk(G)(sYohnmcr z54BjdTD2W+x9xD~bm=;M-uuGY?(mDzJ;Y0~y{x|E%b8aSu2%Fn4s>0+eEs%~2RC2d z`gHsIU6DbVp)JFEM)dBPj~=`4{vhxn;t_c)@o~nJ+^5CQDxTNAXnff^-Z63h)y3C$ z-@JG`^jOmm4nL3fRFi$9rgigP;IoeQoDnVvkaZ0{VOJV?H8pWbCrouk?3}r*R|9Yw;IZEeTcZ0!~IEJBgNzOM!F4QqQJ&r@LpkW;$g#@a(hg za_n;L^BnS>3S0|4ihPShO5mmVGG=*3MOkHA)j;)F&19W;y+VV2RsDsaM}F|{%T?W)q!`{rEX~6Jbnv$JMm8K-5Y~%hDAoU z+|wOBdf)Q_^daRDcdY1f-ILCzeb25vzxCqw%bVi^6Fsk5Uzfj0e@l56`u@a+Qy))$ za{hdD()i1sDVeG1>7lQ6-{NMxX4PiDe6RW8J10F?H*W*}%Iw_Y{J$p{CoC>C+qRA;OIRPX0lg8r$yd&4^MNhO^0Eqm z!t1Sf6g##RDzUaBclhkI-DR+Q`yQ!1b9-Ma53BU3)~IEvGc*vIep*i2<~o|Xih9!e z0{Wi}o*LfS*JIRRT)3ZW5^IV+5PHzd%*ovPkdcMDYYFRx!;?oQjy|xtX?w}8 z#lGTLjzbbS4v_A9xI$>F_M~O82Juz#+cA$Ndia zs|Rd3D{=N);ESN!!JQ$cp~+$Rb3x(G5vI`HFd5kQ$mdbl;EjkZBsn?+<&55s*^XU- z{ert6(~U1C#1X?uF64a_1*$OhHSI=h9i7WS$9XX=<5gHPtZxaA*gc%m#DpYx@|hG% zu3GB)G=a3&>31`_GE1|Pd4%k9IUc!oc_#Vl1&W1hi^PiNiYH56mp(1KUp`oIv$DUc zueztEyY@oeh5GJ>OO2PCt~K9jx!?M%?Opq~PN6R8^9mQ#yG<`T^!Q#v_Qv-WUhcdy zboJAK|<8 zy3$vR+MB+n@(}7|N?u|Fsw}Y(xe_gz@X|dA9Tjh9+K66=Q`yMC^w6(-6_2*8ggqLK zHZMW;Zi+sg-&1}&Iyu{yBNhER!wo))I>~K2O-0>EvN35vJFw{+jL^Nzk5eRMY3u2S zu1H?JRZkJJu99AcLVheUPIwx9G~YI=Hu^lT^%NatoF2db4yv6Sxn34^pJn|;AF0+G z{$K@iQ`f$WUdWxz5v4XrpITkk81hQ_xyakm=0#E`E2Gcns_&OX?c=SIl|zZfXHRZM z+`4^v^b?}~s%N(~qPaV+#02rN%`<)+=~{n1QUv+1viGD&w0jA~*gN`W{+)H!(GKy_ zpZ6dbW5j!N2;adw7n~4h2HqDtBNBU_#;-=qcd%hckmM#&w}5ELng>Rs(a4hRYqOA- znVIk2(N<&j4q>POx~B6QMHuZ;*g#fCYcV&Hh-fS5P2vwU!!3}Qj-D`P5_uTp-3%#; zDER6-IgIn|jw2~50oE=>%!uERzlJasx0+5P!0685P6S!npvwY&go@gyjDJH(TuUWJ zQ;H`XND*1zZq*VA=`pQXLM?Y+ZVq8(l3}bqKAW9$Za3bZW#;@9zlkYlsEt=;B(KpY z&|O+J7wlm-^V;llL?cE$x9x0UKRu6EEqV(klB)} z*W%L{<1f64k_}$hhX|Xi1)Cc14yCWNg=1O@RVjlpwmH2ab1~wX?N0KzXK7mcG~6Ut zUq(KropIo~8i9U(^jbMSqZQxCj=5fs%=!|eTRBFaz}+dS4$;7I^4}dlg@a^|=smCVpd=F%+$d_FRUTi;$&KpL4(+_`fH9x*w$(* z-CNl90x79I*e|i~9~!YeQQW>j77}Gv%gp7JgUY4Mx&xN zb(yrC7y)Tb`VjWfeTxJYa(}OI{6P}2dQTjI7@As3|3P5k39%LU&u1C5I6U>3J2ek) zs)M9jFkTDahlxdiWoXMDJ5k~>}vKLPL?{s>hyP{ykxf9ousU0 zENEqtyBV8TuA%Ot5r#YF zZX-$Z;8kg4k|Z)sB)5=Ks2X?j82!C{opp4<^VTKnXzs0R*yEHh_136^_gFT zuK*S#dggFAa}>o<^JeOxG0QP5dF=Uq!?dTwxh7xkHo|zGKvF9HN8BvO27d&;H^D4s z#1j<{i%GM_#C?s4QANbL#5@zf!AvKJUAdDw#;jyeUPUQk<`I92SL6~xBmAEpsmhqL3L z0!+uuZKsYz>Y@FyrwR}3xkoF`m=QfplOVpo_%u0W08#D7xq4|NV^@N6 z7l~pUzpbV2+hhlw5=-{vxZyLB z*Jdq`xrslMHW#x$_&(PV_vVCmQaA4U0X(N2cYmigMoMRNkhfslqv4 z9tX);$Z$v9;+2+h-D@==TKY;@SAx=Hy%_o`2!; ztXCOY?D_Q4R1>T-w=kI=D3mmksOof&gJPSQI3!?LZ?}iAx)PiP?=VyG$xV4VmrIrv z=wvw+tYxdFOXmb)@LcJv4QCCKoYNJZ6xnaM<@+zP-lmvr7hvs7mJqCpyNpLS_UE|N zcH{?VKB?T25R{f#(u=;Dl3j2sAUW|(uEX(UHjYQwZ^sJCI<8b6pUoW*Oo-cv4`^JK zJ>TA#*PDrN@?>32Gp;>_R!%Xg7zhwZWR^TWF3VOaT4DTwC6j+q2@@ItRXpEIAdW5Krip`fry!5fm<|6IwW-=p?FAe3>rlaE&cBgSs=Kvt- z4)$vK^{QQXLb`wH^O#f`rf?MZIP!bmYMi%sF)tmr!_F}Si`!-ZO%ui)mCs2{jsbsc zn#jZfWn-1bbk(%jl6hJjwWHu2bz`JPt~&X<*Ym7)vVtuyy^zGzA52vy9g$b%mXR$0 zfD;CyWGc>b##2j6^b*o20|n~wM3{Y!e_V%`Oy&>9F`J3B3A(=i0q)t@+$~pAhUs;n z9}12GN)MD@&8X*&7IRa($&>ksDY8&l_Kn2zo;I0B*wr=%(~J{#>2;+vvjVrkQr56M z0f_`QPPBwou3Rv{RV(_Dt3kHPo5^|_aWz{f{ll5kjM~&wN2^lfQv&sDQkEyb*s?3x zBk=^ViPeLXDSlekQYDy@TZArcCUxh97ha4o<(21|o!OnCn{9XWK&o8UKHceLTqb(+ zWYXnCQ(zZs18!6C!7|TgXv&77O?A;Ev%D3R->UwB&D|fORIZCwMN~j+DLvM=v10Vdgr>O5J}QL^dz^J zIG{eudrRz*jmefHgFl#x?*~!-O_OXX#<#jv@#CnCl@4*=&z6>4XLz4L7nIRe4!Pz` z$GWH|@m9ww%bw!N#e$yJ`29E_W3b60Er8)w>zPs*9bHkFqAgwy6v za!gn{>ie@CSbJpmXX!FQKP+Dzu4m8{tM69bN4k^?mX-OxDnb-%IFIEWDX2F4 z!Ar`|Qp?C7XKR2cSw1T65)Mea*Ff%g6Wd=6Z6+XBmgUqn`j;1Ns(R*JoBN?6+iZ-d zUs|M=kfD~nTUI{3F+LYWf%7Y2@{%`VJzl=+HoQN4T`LOS;+fYF0Do?+?f*Jue4Wd@@3dg!>9F^!#**l*{$TUgk`o`>s$F;DGRRApg$j4R4K zFfVqWF80N0t|FCO#F+yCV;%>vu3cnPi(@Q1#V9+^xi@E#9-O&f2P00} z+jAFo)#W*+lca+3%;}o|fWCkOn0LEAwp_thwyM;phrX*%uU7G(R2?gywT&(fD?4R` z1O2>HyB_3TPS2LA&TXb!fv7h)fLMQ%2cLuuUv-5Od@FlG;U`_BJBQ$Ci@FvLd{jrY zK@4$1VY)U7Q7QVS_Fgm?524L~D6bnlTnH@v3I^-v8+MU_sc^pDF@!OMC=>SA(P&V-h#{+Z_!y< znU-F$^;(%`^8MurrSg>RAPNSe9$ZbUD1;sAIbIU!d$@B~p@4IDvvD5Nf>_&~o1(jw0|Lpv^DX-MmqPuo`@t6*^ z!Z}}45mItL<$#1`aW#eCE-DWAOpdld#EyQA&Oj7&&qYroZk3`@Cy;UpVW^A9*r+!2 zzUXzQrqLIpOHGC_aMY#(=bt3IAWu!tY-86rgq6Bo`QaRi}~wa9tAEo*Z$Ddut{ z0wo*cbFvjx8?$_W3fd2McLNOLfxG|yEPMwGI_wWGXCCVsM(8n)6|oTmu{>rwGJv)n zrWY+u8FWjCZY3ufN1_5rG}&p?2h#et+{kYkB7?jr68BE00(@iAtwI5KJ7-0l10s}F z7%_$1$qaObA@4J6jDn&`vG{dq(NyZ#>yMGbMR|9DNKRf*du)^nFEpPNHJsi;{{T(?}_#tK42K!*hruf0NK1dhFnpb$(kvfOlsj$IH#kSp%K_$ELbfPxoV`4j^ zMza;qap6T7t6hQ+fm~n1WaP4>$~Ddizqs=g_RyBD&9{PK#?4<^=3&=s7jjoeA}f4o zEm3C0%3*czb$PbV3Gk7uHwHrp-;6!0!{LQ-JH}n0NBbpiBA{0vXTQV(hF-Gyr1gPNf?i3c z<8L7(DQR0^kn6LE@V=l$m zWRArka0BFRF=jYua9zx9oayl`G3vN2dhcThIAs|)K>=6zh!}G?uI!2}?g{---7y>` zRxQI1cZ_uOC5 zDZIit|dL~6e+a05smG?22H&OjLhylIq&mg+I4Y$)S+f<@lzUWi0#!k6y>%h(SR}in zf&L~+q(m^bBnrd9(3o&>v<5W=Uh6ANxr9L4WKnh@tu^&2+oLrkhiFPD#7!gmCtP1U zDmE3jzi5=^jlItHr#fLVD0xZ<*2U*Lxe|NqXd-zF_LPPWc_Wr9@s>izxm|x6TSDK| zww2~V%P1_T?xpG_s8Q4@E0CYbC&;V4pOQ*Q7DwVqJBZ2Z=A^AebBQfvB|`T#3@tth z)>1>Y=ExT8ploN2#$O|=GH)PiNI`KDUVX#?dgS2@;<4DZY9T}mn(OjF;#+dlzz%9P zZ?xHk5|mMvcb#mTn#GJEolfqC6N%i!EuP&(v4mUJ=Lwwno2pd=4D*xtZNd|B{?%zJ zQ0m{LM(!v)n_EiC%B9Bn6RWdEqws_e>7i%t5KeI2t-j-5Cp}XY#otU?A%2VikdI!O zp@cVVXw)NXRNLm%kXDtYFknQ5qK%P71mE1RXJqlWd6rgA_!Aj0m1w+vnzh(Vyaie4 ziZVs8YoQ^Sbg9)ZdyL4de?-qAlvJ@{kMJK#yFL8yzJ>XgeKGIy!2it^)0!0~79Ued zx^g*zT-k42e~kp~8Oc^7T6ZF2UlWcr`@?kb%sRk*5HC{MV0k!(Q#z!a662n=L+o&j z4k^7`G`Rytta43^jg-h(!6rneP(HFMqjbZ+#fwHwo)(Eqg!dn6VT2kqnU% z#sVtie0vfat6b^GvB&hMuSsykU?>9dRE%S|c-%XT-6=T+6%%ZJogRuw-LsQ!hM5&n zrU&6UWkd8Af`}gp+7t3yjyq-jloNY@(Xkr`Q-m>u&E@8$ye4 zXY6vqj?Pfd0d`T@^MqZjRBlVW9y5n{IWCOxEc6Zi3*FaEJ+?Sj&TIoMizdCRlm?-W z3wuz92{|2>Y`+Xr=?#``YHdm?(=$boki;lWB!%3g?_wWtHKn~_IUIDPK4H4*okHdU#Ln_2iw{B#iF0~dFF@w(wCZ1%#TODv`VjJr}2R^0gRogljQNCBmn5vN9 z7WeG1BFCgY71~Eq!#}LOn2m&9%(2R(!ffM>()wUeQT|-xNQQq+(yJ&(#|h3TT+=v* zeF!1B&5v!3xGQj&<%(*pspg$QzsyEw1fsc2RBAceJGwMQ34P4(ZQ=;p*HMXm8=Yx% zKfx6JM6o473v*mRnK^)cSlyOoL0QQ|q@N;viHql^6K9Z($qGa*KVi;8LWYBV!V`jq z(Pow-{=MQBmJVT`fOK3auBECy(~+f-<)0SJJi`b{sb@4Inv&G%TE45cjVvwZ zd&8^DqPPcJWtqWDHQ*)P7?)8onLdywmQl`q&$|^{lB}Q68TFXcp8CSaI{}^IVz&?< zn`CULA2**Uqfipp#C{A6#d_lsDm2q=%Cpnoazl$R&?b_a^5>(ra}0AZ-mR>KEML2j z_~q%J47%garY}=)id&cT0Ju!6#8JvwX>S_OrrUE@)I6hEB^|4PMUvRpOPswGSe$}> z+n3Cuyu${raX`*V1xW@gsSN0#ZNlNo*Q8~f&rG|M(%BYD?Mwn1onc?u@S0pN9?PKO znk|xfwCuG04@PAnM81=;KPeKZrxxIl`QoJsPy-IH@GZ0*Uz3M|*_{&xKhJ--M`Rw3 zymYudtvD)I$A#Mo58Py$8VG+2?xeD?(s}A7$*5->iGp!dI$kL^3>6U;$b@E24KKQLN3I}9AE4-Whl9iIDlbD7r;dQgIAoonYtm(UeBF zZ`{!&vSoI%0q2EgTjD+rZ38jUne`e(iQ)iWWyhv z5Uy>;Ny|M+wP_qpFHUBf)CPM_Zo*~&prSz3x&pIWZRX3I{7NbGm#l52YlE!PMhlUy zQz?)05-mEDj^?h^l;)`Npc{5@q!PdbL{tgTQ&E~f)Aopo&N<$+6-~^%SxXNbP9szz zU0EsQGJ-`=;)jxh8rRt)IpyoWvKv@W0Dw}B1Cl;9h(+{}(bdgRy+~GhF0>o+q4*Lk z=(u0O-bjrDxw&Fdg32Fx-=fN8LUQGz%E5MFK$KIxB1(WPUv(+EK2p0ZE1Csi7S%>4 zJATiXj=p?AKl>GGqjG%K6;y!C@$5`g6{sQTb4VPl+dxz%F)A+-v|-hy96ZG5M`20K zh+}A;Xbjf0gZDV*q_SFOeT<)s3C{!%9-pFa1yQ!O@(f4f+lm{p-O%qP`Lr`Wt_3wz z6NjPP^%Q?o7-MVKq^=ih9jA+_v26%>!3~HG0y$abBguhxQTPGbpSa`GY zlh>Zyt}>MU1D<$E#Qv=GyM@>Gw5R%HypRz|eaQe%0C#_Qv6=&}? znnCxT+*xxKI&e6)A`3>*=ajCAv`}&=-W%Dp{6wi}6zHoYOM<8^UBc0-h?Z6{i-;{FCJM60!xNq+=jzH;CHbzMOpqUeL6T-g58j8RRQ-OSiS=aFg>SGIA0r_drw{h_Y$*Dou(SY;Y^u;@?{x zm^baZs;n*tVwG0p&U>M^Ca;jUd|PSu5AJ4(^V#*3&mbxqM6GC*uG=4VzW!U4fqzrg zWEtVaRN1!TVk>H4N0EWv>fE{fRol9=&u~>FK4ovFt_D$_I3PNtUn6`jIQ3Fvgr3KV z^Voj6|lt7gKRZ}E2xU8oeDed9j z6^OWJAJ%G(7&T38pdeSMIn)#*oi|xlYal&@Br4TV79dIyM1^0GiMbb?axn`x;$hio zj9X=I+aiI@HbvJPVuRJ}t1Yono6wbPY?)9>xit<3qQJQv9o9ENTN8}#j-X_D$aYAR z{p`0l-6fGs-RlHM%hV26EhCO?s;JmZA_~itrV~Oylst$!+546S{v_~17!&6{-!80iATUdisN&xknB z3d*d3-eMjlOT%6=B72Xr5zds?{wE zFH0TI*c)*vd5~BMeZlz_go+eR2yomMCGo#_I_t2imamUvfdwXrqM#xmC3M`qq-lIjaj1)O!dQV(98&q#@<&R zo!O6Ni?-ZOg1#ISA3F%2xFfe$gmCN%FpMDmTh}s?sQd;a5Q!FAwx;A@)YX_ZGOUNe zW5#dHe&JuYU{J_m*Q1YNjD3zh4RHS8MEz+*b)P$fgFM;M31~$9Y92`L!Az+q1%1MB zYIe;4V%&t_o2Q{J=Z+nXfq5T))cq2^fW6YOSWGd>X3UKUeQ$g~4HC@3I(aSE_^( z6ey?7rXU?Q&^J?9muyHEdCB|j$m6-u?HkB}oESBOj9|kkzsY-8`zq=wjx5ilX%s9| zzgk6k&GfL}O1;QnU4Rm~O6Ps$#J%$Qt#!n&Qh${_DM}0=x0C9GcgpeP=>lZp6f%~- zB%q6Ym*+YiPm!>Hp8rTdnx5}@OK3MvYw;z#)@@KU5+l`mQU$R|xv(skv{d$V>wJ<* za^L?p>4lg!?GPEq`*?0AzPjb&?w$C{jc!dJ2#&P~Ig$W0Js~C#t{N1jnZz_Ld&_#_ z8Pya2B_u~BbDB3v!V{hC#=YNhX}A~f)1B1#0$<*?Uk1hxH>DGD2rKJ?N;rgWGa`Xa zTw>g^ibc%RBd4|#PxFG$Ji?*&y&rmrYagm@oQb==bB$Dl_v(6yXW*;brW79`cr^~j zKPH&!Kz=_72hB-Sqlv!UcV{wit|!+ICE!vHyEhc#aC`rjoW|`MID|WaU)HzETHM{+ zNs3P=c(s1;qYyS&U{l@^dbmT!sC;L*aOY26AY!Ce$weY>id{GtP;an>6B#?@{(AeCp)e+--!Sqp@5%acIX2&K}|m3yL$Hyth~XR8t}qgKb5^Wm;JH-0xr}e@v&Bs8LNjiLQ!uiGEPi0=;RJWaQ>CmG7U z`*o_OzHQ@lDy|m3{2sNSnmK8J+Q7O!GMA1&e6WK_yEIa&dqrC|bdaT@s&=k{9-~He z$8X-$1tPJ|V4Xqco0CqjD8rCOoHo7x9RZpsT_{ zVq0drpn|k4YASyhN$;_P|AX{t{4GA40@xKV6)|5lPM3^l<|`+Nl#EN%Yr-@J0C+|a z!kC}2ho3-y7#Yl~q3>SygLjTTG+x7VqSyDYlq8BZ^_NAbMeF4QLZILoWmw?D?+5JT zyYV{H&+*oCkFN)D^<4X9$=m_XlkwX*HyGNTlf+xJ@pXrUr`4e{lK`glC5!ms@{p=t zUVs#oc8^;ue!Q-Uvrp9HzLRrAG(6seeTsqFVJqU)y48*dr`%3mJ#gcK~S&tc+eQSiz+Z`+~1&C&? zIf-+{L`ns+e;F>X#jq3f>z5v2`)kbOuCTlq>w1+!WWSdsivPQJykrVb+c82M&&_Pn zRito|8}6qZW3y^MMZ9C3vlK2ZW~p_Nyro?tE?$t$sg8I?ay(w%-M|jt<}cou*rI<-dc*oYtpVo05HAk zwMcQvE@c&JFi9!Df_@r$S#}8X$+bbw#j>r@D3Y|P<&?pU_tIU|t;5r~*EA0JJLpF$ zdqQ0COGO0XXyRY8PGWNCe5r;S5uv@HokBmwd9J!eFGsyr zJf<%!o+MvHd!IN?s;AuxDU~p2R~O+VziA(>(G8Mr)AU&vER50|Qoj(mv5zT_^X-ve zHNwgeI@BuNE$Ku8*#pEE z*==cHVXV|iymJdx+$5p|`-sHC?u9bZU&4phow+~VrZGqZGaXagt5z9PSW^`ay1R&F zvIQD$0Zx*ms!BK|x~J$~qZb~PA7AJ${2)_Ucd*;&HVq8*&1OGUsUz+T{zz>(X1U`ZeIjPL)rX6%s{f9LJvcvMe{CaWuVhGOFTy9!b zlKuvVok`cC*bg_V)Mad--(BS&_6kQk^?K`&Y*@?bHaco8S$>DV(M*;_^JYiX>d)2UboOT$p=GuJDpO%vCDqO02O1wJfZc@tjS|E$4BLh8VMbMVMA- zM5mk8j`|H7{wRKGPx|)DAzIGdVnwLrgq7N2)f~>%^mXXC=IVW|Nm!-+V&nJn0j)#b zwRBgN#*(sur(o91^v#w%ul{>(n4B%KDi!p?sh{11R;0 zEtX75YXre`oN~-7usVx!*FMr5OpUNo)<{a^-|>Q5Nj~2i&cQ(rH+Hb=^Iz5_vc4zI zs@ce5MA%gKvw}VUHm+g$+DBIJV$HIS%c_b9tJ}XzS>&LWM2S7bwc((sKYv4QiIA~X zVBRVagiDME`L8_Hh5-H_`$%IRZ=ID|V5MfZZ_pkgbvJ9(XTkc0Ny=AwyDfE!u&q-} z9NC5N)rLFLPoBB@NLj9Zw84x2)k;~LptY^WvX~Ur^v%=(_N*^6#^!CV`K5Q>QdfOf zn-})b;HTkw2I~scx9t=3v-m&9s4Z_@>dxhUt0}R#Z%L>QGlzu< z^#)U?$4BjH1JXW07xq7DLhG|$CUI|5V3!X_Q^#yOklSGX(!4L>kMU^ZkFX@YTm2D_ z6WSDm*nXq7_P-v|ki&l~tVmnwQ|FwfJ4oo(2X7;M`V?7P)3n>}$D*CS2-IHm34 zrX_gmyYa6#sNV874aazT1vM-@3e#;4^F8MJz!@d{b%I^3{}TxW}H z2&OcQQSAf!*-FHu9SBx$$+7Nr%=c-h+C!NY8&5WCnR8bo8yXq!TpR04m`=6>bu`AK zF>33s{o+t~V;@p@za+P7y`VQOqb-ErwGrLK<-J=SP_N?ExXSB-_$zGRTYj+nMk&g> z{@-d___p3IWmL)JPJ~>SHomn)=DE?Mv0XYl;CG!_vdfiG>n{1*Zb?l8`{Ed7=?7Fl zfluq5Z5Sv%)^Sp2NF8bE(Hx0>(C|gg47gZ(S50)KTKtqPc1dPD`~4UN-1)rWG3(ZpIX+;YiwkpApN zd&8iX_)CMYV484D|2R0qJFPDW;X7B`_Z&WCW7FY{CXG?`N36xI<%jq8p+(u@dnTf< z#J?ZlVxq#eJFuAj-jW^~c8Q~7&k@WXn;C7-@zz|C|F_j}IGi+8-acYo*|R-|cM*TZ zU){Bg_%)p0H-R+UyQb>{Dbx|#b(b{JrlI8$#czz#9DL2ZSx(>Q$@rG_bO^|Zj&I$0 zk$xt;qNj_l^)_`1>2k-OPJjBDaZ8%M(T|K#*aH`Z)5;6?+VM|h9T?oi8;Hm3Xyx7v zPw7T+Q@m?B;<)jSuiJaL@^OmB491KxDrNt7MOAsi9yi(PtQ`YM()9SszE;W7@C{vH zae;Sh`w}t7$*V0}#2WX${skj>jPl=~tiMzqxw}OBcUJcb$xZcHd-^vvERP5E;Oao(n>xH}Q@sCbIc3`9 z)Y>eQrHLwfe3U0{QTYD_%Bm)VI0Asc`%aYD39>Lh$E zh8avG)M5|J9#14-yRHqwvT%0~!{N8_aozFA4fsL*7L<$-#6Y7j5=H>Wu@1zP|eqqJw*(jiyXk*aQ3f#M1!75+e`uJAw>NEC_Z zP>rJ2)lKL)p|gVn`ZBlmf+s-OXx{r06k6xrIv#x9+^#H!<{4AS3t`W6KIKypRqDvC z50L|k=77IZk+O64<*0`Ohrb-FhI=mWxdW{15H`OAeQ#Nzh=*|MpOTzm&NWZUJmHq= zz^(HU&vb7C!jU=Jxzlf;T=>1`SQTm=O-A1lp* zeXECTfg?87obYc)=&I$@E0F|#$+_Xmy~m1n(*eZ?C{4w{o4ZS8CU9bZ5di|Z*?qpG z1yXl2-t6VGwauxkgh@Cxjs`bL5;jwN|TID%h_k0$2h zPZjqN{}71rH%Rrw1%98&@kIGl5T%dUdb}L#Lx0rYjeSDr)h)zn=qtr2{6^X{><9d3 z+Hetv&_&a4K2OY{q5SNKk7-d;2FQWbt4A-Pn?%H&(=Z@mpaqZh;(riLz&_#~!PMir zx%&$X@p#T(aaRbw?69M$1v$lTgPy(OrX=4+;Ns1L@w{3`T_?h`5j zqtgWDZ^5FK-LWpXAh~G8J{(9!oV*l&heJQK0wL?5_EaE?Th3IUMY%V8=T)KJ)CMB+ z(dSK_c@#{a0lNu^1!ym?dOwk(dK#3?Xl9q%-cI9l^&Zv4v}Wv3 zxsdbJ+f-IIf%=Uq*|3}DMOAu1X;LbAVhLSARSxc@sQFi#^C(>28?^(4%>7M2Nnvmu z!E%a)vo))ja)zysIz#!x`r_G2jbX7TPN8jPTpoasw=3^AO(Q2OLY4c;$ub&^P0p8` z0O81Vv2SJ-c|>?T@;CXDK<@E};w-S8FhX6$;9K__3_rR}O9%U!fvVH8e(0!N2FqWQhlVlf zs=#6~AJR_D+}tCQY|Qt~ z8RAXY8-dG3T{xlhFNqC~W%Xel)y?dzoI^^I&XkvsDAXm=W26>{jU=0NJ?C$+J=r-< zDjG*FTul|0k`>NW5t$6O_Atkq2|r&x$X+4-C7Z_DN&X_Cvetm7h-Wf~w*L@bWoE~o z6I^0W33x2pDV{V+85$*TEleR#oMZMU5`<@sy8uK%fqq?97k`O%YRnbhLUpcx0XIwa z$>|SwhfFd?EtFKXo)LT&U2l3$xGjvSKU;O1f6_9THJisb&xncQimKyRJ>l##dOMA9 z?#qftDg8dl*Pts;4hQquFr zGt6~#r5?(-gv z8a__FRvuL}Rp}<(y)954C@EU!A+?Bs-b*C|;`|vR=>dUa)Ry>|-nsfK)u=gd_y%LD z1iH(GL`9KiIH^X4QN3T=Bzd4byZpTPy7K4@fW#~WjZqmoL*stxQcY_8MwpFif<;we z)$~m7lNL#D8!xZ*lx#EHUJeq6>KDw|BJLE9%>d$Yx^-PgD2LUb+HXS@N@GiF0aKpY zs7UOW=GLb~oEIOf{k+^w)Kk4=#zN6|VaTX0mY{7;RS0%%(-*+sRgMj=Abj?NT0Hpo zW>Jj;6dAn3v<5b~w4nMSJZEyYxd*;@jGEo@0bYr@+jtcbSJ_qf6uB~+VevvaZT2^H zpneBe8V{pSFI{1b!?;eSSEDfjqZCuyti@MhA{+Sl`pTuXD*WTDx8{q4b#cAb>4e%~ z8$%`G_mY?TGepP9WhWsI_Eil!%{tv|!1+f)=Ah)% zOX_qOTK42_ortCyr5I(69{f1eySimOeEF`LwcM^uOErP>K31#$!O2_WqMN}Pza&Q+ z&6zuSujU@>!YD<*-mpbph^nehlFcvoGZ#xvXF3}7Vp;4Q{cI6G=!Diz_%`#ER zr4841 zl%idz+uN3hq|^*Hzbf;qZf;zi{zKnY*R*N8*1py^@P_JV4SBIad0jho@oc)fvgY~^3IK*|N@r?okhz2iHpe^7fyy@848{=~UoMeE4s z_~lM&InU;89c+ZKKCVO7m9bL72VHwYExNTv=G-EU0q6XdV!-Cb;Vdm~LZ~x~p8XuJTFSLDi`oXtTR= z<5uVTF8STHmn}xwo0b0N2)Ui}O_N5teL|)V$c!GN@;k4Y$5-~X`Bq2dtZw2OGPhi> zx79VQRoA@I?ppEEq|#!Y_f#K~4^I$i)0kyrlwT*cXqx`=9KXh&wSR3Hs>`oA zxt3JpZT`68W%Wq4%K3uvgZ#vVPK}sJ9;JY*_fM$k&p)>(s>&hx;h+`(-{{^y33x2X zr}r7?le=5bdT_nNlD^F#tDbL}h_cq2(X9>edSo4Rb^iI?VbJTzp9i90rj46+;NZ}p z+#WwffIF%y0bz33)%^_q#Ky*a0Pj6Uo!$EsQJ#B1E0`k%^s&x;N49YJatRTB4^LFNwo=1P^!IAC;`F74Fy>nN! zeIR|CQQ7{0WK{sFt7vs&6mfR|ix~ zu62)RkpGYJ9-=9J=g;krlb=YA>~)qgqt%@*QgGn=)@sRp_m<|>(oHj$Hg6X`x3SUR z`yXXL_|dREf8Nd--IL^)p6%Ldef@rtLzjBC6l~A64~Z zP*(dg-+kvCOMG%l_bxLzTH9W2@(6t1GOZfw-q)zsFP)j$$P!JrvC-}Lk2;$ShE&81 zKZW{NVVW+%t^?)rzY(QiHOT>a4=O3kKyQOnwt_K@$mD=7Y#ZvT{c(H%YT$Gp;0+>u zC>!(?S=k7I44`l_3#<~&B|JpfVsxeJky>oimSWToT(y56`Zhje`V%Y~_xL2g@+7%v zKmoW-&a1xdZbB8MQz7d#cjSAXFPL)i@{r1UOLpC-yj`Po2Kmw{gxf34gGzM;>X(gUB% z6(0f??b-Lchg0%n=xOzivTr+8JdcV8-ATxKRX5vEdHKLYP3t#_z#;YPR~!S|m|CYm z;Ip}fBRyzoc~RFy46|~?2*x4+Z@DA59MCW1416@?pFC@}1MJPFG~x`zo)r^__fYfg z=oBXuWnV0E9qe7lb5sQ)!jOZ;AmN+=3>KwFIABreeYrp!0&_10i_gbC@(CqO!pUtv zlXCHM_Z)!x5kc+i5lG^I?h?{S{LYR<4UnQ?2hrzAnw%KSBhsslDC|}8YVT}Z5;@YA zNVrM{@Aih~vrn}eVLRA?+5q?~mX>)9>B9UC#iO<{>D#@~c&0-%2LokTmMbuW3_sf$ zcn&>as2hAi=H222T`f7R-VY;-lNn(6knkQP7V%ZU&R&2D;-_wCMf>t1yzZi7xP(dl zxH1-a5D(HCj7^`we{>L)44SBMr*DKQlsCct@Eh`;EN`TfbTH}xYK~;K*LvhX;><~v z*t@Kj0Vc4zac<*J@Z`E>N+l${W)dwPYBW9p#lc?czGoI8{4|+S>yd7%P|v-HyGr*- zUbqAndDm&cy>4COdeGMPr;4LsMe{c*7IMD97Kno_wG?MGz@es)$Yw;o;iG3f{Dt54MV__{eud3(C?malw*)p9qR$-p~U7788cu<8!986;oWui9>?L1 z2GPV*xTmajy>RlMvd-E>%A(3evRRaLKo(hRO{TA``b~Ln{pWHFH4~P$eiro#V#YEX zS_jf|+*d{=dR$K$@dC8g5=iob&yn0C5fN1+4CxB8t@0x|9Q80QjogEoyDpTn61&KK zBjqI4GH!s@jYo7Z!e7BF%zqOS3G>AxgaLwrxP|CRw5fPRG!e0>6(l#}>$Px_nY4AO zi9DW^K8`|NLC)$N!p&q>nou}B(?b-3cVe8!|G;Y*$ntK27sE3php?CaI6_7Yr#CEl zLM)?aj@v@HK-=9>fzgShsuyE@L{Wmr*nXi0t`8R}uqiX)uJK+bSKuk!f5MOBe{feU ziN`P$b}z6}k~t~O4=Oi<(b7cdH?7Tbt*m$#MHVGl~LZd2k)B_ZMSarZ>u z7w^aEMFTd!s2TK*HaH4jyUO5!o@XB6y+AiqJ7Er5GsMbE&R}k89wgnu(p7z7LhMWB z^2I4wl>Cg%Jt~i`YdwWL*dC@wp-Nhucq>rP8amN`(8$`b5(kX4c}~&_tKNkV{e@j= znCbQwLsWmVIZo}Rb6fL}G5y)PcgP35Laq#z+gXCnL0xMNEk>cSjf})5%+k8vP%?&P z;kx0_t(sVye(D7}p`OM$S~g!*%W3FoV4q zzIkCer}*D>mcA8h%{pZbL0HNb)+X2#CY|{V4neG8S`Z@zhnXPM#4YofIp~Nr2bdI0 zsLKf!3{&y%sz)5I6)|pLuP7=Qe4L1p&xpXUfX`-3z#qszK)*}KNC>50BRpC&iT;te z%_W3kB(D6IqJ~>4==13w@<7@h`cnElS_^#wYz~b;yPJ25Rz^D%Pp4JTx`OaDDowrM z6zx83EaIq%p!NzVvSm~X|2)l(n#}tHc|={oTadH;nte~#u7y@@tqdE2q!l>Ih z)>VvdZRQw?T=_=2j8d-9P^VJDo@wd2Zl=-5*z=f1$!aMVilm8L^ z|G2CXJ%!wEs+4RebBzGXI&zlY59~<}(mcuuBKxUM#s!f>l~Y$Ykyj`@=OakRrT<0r zk4gVDeH0InZZ~9*rKFZx5C}&in33BBB!ux~tc=9cA71T7g6O`_UranA|25jfY6^+g zV-bguN;;vWpQI(NH-LAEkDAtI|0Z6nUlco^_;>AsfF9y8v&DIc@IgK}N~tf%rk5(Y zA0+1T_qcarLe=6*i%0X{N>Fp;}L z^cC_O=OBCxtExCH_yj+Yv0dPSoEEL%t5A`?_xKdF>zooH1=aa4MHx^9hzc=roQ1+f ztOM3ruo-)#{4&1`2T!N)EcgW*uJPvJhkfI@ZwPL4Ch%!^<7f|+D+NQ8f7sLbJE+Uh zA9x3;Ysy}5A5bIG+PHqyxD9@sHfqMo(;O@{efBW7mTEgnDg60cxo222cxl`$)K4ym zbGY;~N6A@~`k8%$&4@BtbI+!)%w;cT?VpWfKVxx6DR~wzLN>xo=O##Zpf+-fB)HP0 zY>wC~bs6i7@Ll8wR*cYQ#YN^XLCtJ8RwX}tl#;b_OZ2-KMh;##56NK*G+`x`tTt6_ z3WWJVA&ksmmdm48z!?9?7tMOibQRAZqZV`a){QWxuy0tji07>PW|!hK%uhy9@)c%? zK4<+fV~6&W&pSrAHg?ty#w^j-QA#?(+0_1(u49+CW+6&hB~6=(Bbg=jOOmr0I*WdN zCSz(%xlc7+TD@i#g1$*~dX(ak_2yDXB0#Gz-wuvZKdi*(-B*sn zy*%(TEb_!OKZP@L)2J=(V$EjME&Ll5AKe7JsJMZ#rc%mNu&!ICOFv^Thxti<;Lsip zlFPU~(-ulk;3%UMXS1r8?1cNR_(|RhI3v#|qjH+9cNXaqwn)U}1EC7Bn*4Z~Nt{i7 zGHslAFJYL1&Rk!_^#K;PWZxwG~o(!ENN@4Prg$jQ&E2q8| zzGu7{wZ+=4h!dZ{B4w?jw^fnS8NyH7oy7vd%XnLnAOBZ~N$A1Pb$=;1zz0peA*kg3 z|2t2&VOguPH8Gg?(mSemm3t)-%93oZs8xP+Gf0>ys|uMbh?eTzYxp~)$EF_RFXF|I z+G6&}uA0wbu+nJLq{?uy&hR#SqVS9EOxz2BO1mIf#usZq?m@igYR9PqyqUc9V^of; zteK5*lALSItvD^7S9d&1A*{5lievM?np1<<@*bPuOW*LqbTv~o+*sb2_C=J}Hsej38S-(uD~S!2m0Tj!wVUPgW$*s_w;q(k$-K`{v!OW+W;g% zYHQAb9ux(cXpjvl!^V85CVHHn4!h{zpi6*XURa?!kFcA#SUVFjcG^w=S?ZD5;5X)I z)RIE8@e}Gv$`btrbms=9_5-HMKStAs`Moe$I|=j8#8lN$T;k}s@JDK95*LA2SMMPf z7o0WViKb+-E}M8e>Xn8;TD0ntdM#<2%U5+JDPSU6ae%yajI!3PFy4arMkHgnz*WD7 zf!%gOJBQ&LRizH1e_K_id`rLWvP=1yetn`;_KR*FrEuKp-GY0-9|n{lG+(9j=VP{o zYo_qJA|I%h^6Xa4R}6FeTx1F}&uL<-6wC4)qh=ZJD6RqN`WpF>d`E4zjGMGuy+XP< z5~7TfB>5eYpAvs^;mXU!jT4Vcyjc;W6n3X^li?+Bi{4hx%DbcK)}Bs6sfsnzBV85c zs;hpbvVT+;UHoNY#kz@C#0yztUkVmvxLUsgI9?~ICFO}UUNw113zcU~G3zhNk5te1 z^O9{bymPUWo>j(9ye>**#g5v7+IEE%t4b!c=a(uo!dnK*S#f}-h{~+c#D+yxU%i6s z=K)=2`!v!3RwYV*30g8rL0FwL0g=VK+gyOM^k2=fp!;!A4Yd%T(2%+!Xqs1KZ2-(= zHlp4aYCSR6`Jw=0)Vy{Ed}nc3iwc2C*EjYfLt^jNPe6?ed2Ja+?e=o1L8AR;D{JSV z^foq{TD-N!hi+})y4Dx?$wfWQ6YyzizZzEJO|igQBK~cNpeB&8!SjykHUT_aSF;-b z*?JR^Ke=>_THYe3fr~;LduYjNjJg}N6`LMfJZTd{0!)8VKY5y~;nWYal_oCLsskvW z{TEk)_BHdk9|~_YG;wih9<|3gk2Y~?rg4&kuUB`lAA7=#%h^|EE2}54t?{zr*#D@q zra>vCP*HzT(vy16@>INIQ@Ghxv?rKr+$(bNj4*hJ5@t6US_RfvUViI;)Uu`-+L?vv z^`7d_sU}OH$`bR@RH)n@9A)^V*y-_HU#!?Wo2l;-TTcPxUjI?Rca3%ChlQDSji%OA zLyg|}HRgJCy&*F=&@fMb-s7hZsC_!SUDqbAv6&_l(kG94qj={Kxk!-lX&1R9HNI|# zyv%uRanIrM!@hgE#FZWkm0dBFLzDBm8!N5qt1265RUZEJe6jzaqViV8@&0Xq@$t$& zM_}k$Sobtgh414I3%G3IyN;>g-IL#UP61n=uW}v^I!YD27?=iqm4Vx_AEu1Y??J*h zt=-s}g0Sz5_JPqGf|Ut2}({biWz86JHLu=6+n>iP>? zymn%H2X?n_d+TD{v_+n}r5b;zzbblDuiH;QChVhx{~`0coBBmdI{8dL{VNVv=8}m(@A(d zI&H->_E#OLKQz<&{D#hik| z2|X)jKyMJIPJWKOP4wM^E8IfQZyPH9OrN3KSO%t@V7;k0NRz;HfN?ZHPAbTmmbmde zc!cKd6AgYueLWeA*h%FMpUKYA9UG*56_v!kS$zl#YdpU%@kQ!7ij((P*ia!yP1 zQ&1TDthWF(pS@u6T;z6Up!=Y(XUP%jCX)5^LFhVOV#@0>-K}(;S44GXO zD-E)!tCc5pUS6*%9%z=@#h`}RF9xP&U*6T(NX^~V7pa_35YyR2-Cfkzx&(N>bW!7k zOtq668EcEVqFrLy{>V_&(?#z+vQK zxFy2@g-5Pl{|#M>GJ0fTW}xvC?h}xhlf40eU8ql%vmh$^o|FVxj2R+*fp%Fd;)!s7 zTv6I=C5-EZVc{Ox5t!{kx56|04`jAXwse&>yXp4$E2I#{i+1Ljkt*WnUO!@&#s2K=*2}&^iSh5Wu)N;mKucu@jZED0h797?RaXrPmxk326GBmn{ zFt_5L;&+5gfXXCWVl`+mR79$P>~}p)j(}eJcLqQfHR92PDv2fslMa+}#$i3c0F(&( z1?pAw26q~EC2=Xf0Rav4_$%}*e5J^ow-2#N zm=P~QZWROv-9mogm%6+~oaS#CrD`A`x?zrNE%<~kjy4zaMiU8n2b-qy%6$X(Qv_|k zjR=wPgSI1%N)aw{c)lcilrkRyYU?jag`kJES=4OEB(nmt2D-?&H#Zm-tzWU(AD*h6 zA9w+NS>xss4qKxjj#24=_nkWFWYD@cB;_DDz3Bs32Pv!vV;sF#C6C^R~HRU1ncg#Q34RD!%7*%B@xzJ+;tEP}#$Wt9FNQ+3# zqux+m!r8GLINdlJ^COmxd%^6jNW`ZyQ#0J~#~J@bYYCef{eD>lB?CM6IU$jeHcBZk zV;aR<*lk!(5f8)0>V%5&Y@Drtl^%|x@>v`H#(m*+`yRvl^L*zraL2e~wv={grbfWJ zg_*8)M-O5sN^+S3^G1F!je-Tsyf;G5~3)m zPxY$O40MV`mYRk>X8IKshzY9(t^{KO4dOW>biX8IloGAvQ}f?ZXYsm9hT7L@{v z;~r9fq}^;GbjDg4n+%gJk7D10%j~al<6+j_ul0Fl3kukFur%@_RwKLt@|qQmxK)5- zenkFAyvN*wo)&SP*@yn&wUhZ3!?UkpJw?AA?IC{~b1v=~@dx85UI!jx;0ZqYY{qIr zYoZOqp6D9k&afjgyjC(+6FclH7#E27qZBWJo=F!Ge$id%4WL7`dvtA{h}KMpZmpz| z=<(sLGz#6<^EORNpJ|^;`%QZ`N^z@bc7kn$VCr@LCD3?kHQzn=5Ve4pxkW+^;p)PE zQCD)Oc&1R7ac}o{}U@PPk3+mdpsNpg4(F zdVD576o*fLL0Qe$j!{b~i;P!rPs#rnVgSA5L0w@Efeh1>B*c?rRXaj2k%N?d9!$~` zWy18+WH0{M8^s)fXc zNrn8e8GyP`@jbr+aZ|1+T2Ka%AxfGvc1v01cAG{dhbzN^+$2bVi`zwMCUBl@lGFhF ze;t5)nnIF2D{n>kNP8=5OLs^N09wX;aU*EsreM)+@Z-Q;A_{bqn^f!t{o58O`T~9T z@3?4p$=#A`kPGl|@llw2$s^HTcu9Ja@GpckMkKUHHU#&q#*Jowi{8y4vk?Iw*k9R;U7_sn>LYW@jkL8;mTLBEbJL^PBv{q9JCr?5eGR@tAFmap=~DujeW)iQrVui1~EE3-(a; zv1BHz$xy!`n0ZL=;m>7y>IN1u7(J?wwiL!(cIhaE=&8P*x1;>M;cH>^_6U7ZasQSi z?a$JG)=t&jtg!QWprKUOIQi)~mB+1-ls(}8eMn1ye>FOkiOVbXaTT!aer_8zjtxo*M+c5lFqJj{^|17UT8r+=TA{MTl*daHGVJVdgFF}8 z>it-D5I4o~uKWhJ%cfooBE*bR&}-^ylDu@DYC7pbCPKj^FWUTpJ0<%Cj$yW9EFZi4yvWQ?am0uo z@+Xd)z`I8u%X5H4D@3ZP#eMR5$~76Yr3A&eIDq()tS@x02ra#|94@SpO>~?uJT9&s zw}5+r{{MQERXuns|5oi#TqvU$zNHUKF6#^9W{MYU`$CbzKFx*YVS=L?uem=3C#C-5 zytotSCq{c%UecVE+nY1H(XGHS@m;-pQF&BHZElGq;DcpSS=HjFmO16ZY5&yiDPLfX z_0*6t6{~D#|l^Jl+^arqi@ki4Ypm6%Onje5))_Z>b zL7o}4Rkou384$C5dhHNsC~G>Go4}r!)&dUl_XsK zC{=2%vqN-bgK8ciiCe2oCsAu7F~$q1&jGUxo6(ZRa{XQO;ptN2d~}BOW}CUB$77U( z1&V){b>Eyu$lh|dI)c!({-Gg~@XEhm*GBYOoT&39227Xg#}R$3S*aIjrctUyUbB*( znT0Sp(TlfW4BzOR*OPT0=?nZbv`Mrdi#;^;v~SZjT37lkYgJ(Xf6-`(r`eacKWl!q zGmo%knf@L3+xq3&+uVv(KQybk4sK7>5N^!$PBofiZ_Q;r_a9Y!#Z(|$k$J|LAgxZg zq+ci*S$AFYOMGipw>n0QbrY$m;-2XOmB+ucE@#RAC{6Wg?b*!zhHmY$grhp^oj~jM zX_l)xS9PcoRF!Uh%3Q_U>H8J0_!es|;s2uS?e2YDIb}%;dQ$Tw(Pdrp3)KbrhFWP1w{nP?}?{PJN27J~g_vWy5^2D%)j}W}ohn2)Tqf}ORXA3NR>%DeQ*sl#)Ev@k3pr=h42#DvshP{Ya zPE#9`5FHcQb$Li@P6cNJ)vC7r+rzBX_FveATZOGmtZ>7`ra#yhLBfV+T%hOfy3aU> z)0FyrocF{-7F+y%t2fsF=fliDZCw=it;sDul!T}&jb=(xP(ghNCDKz_i>3rRxzy?? zP80u_-cqeQC|1G$sNJo#Y~QWk&9m7~QNs-w*72YXb>mrJPqZb773Z|b;>+SqT3@|{ zX?gH~I93(kAy*DMj7a{N;>OAtIM(a^!NuH#In z|4}6^K}zb@>5W9?(x{fY-HMDLKa0D((X-OLN^WrSG<}ggngrCtS#8$5S^9s}F3;k$ z?K>KNmtM%9pbV~9RTM(wRv}8ag6;w>6|q^%!QB9l4L;Bk(0Q+y(3_Auw!`QK=+T`% z`RB@t>k&o9icb0E(%`Bm)Gg)RpqaqkRrZkOnXbSnm|xTy&`*S|mos=avcR?!vj(-H zFDa)FHmoI{*b0^n{a9biSm_iIAZ7;e=)K$$brIE&^T`qq?0&{f4z= zGGkeENM~vqR$5X0HS@W|S$HOAuIK=MDBoTPEI(KHNU%KRX$hP^b?r!*2XFqek`fHp zJPC@u#A@#FO*yZ>VtkR2tsM~jm90>-aHn$h%I#%u3+VFnlx4+prJS|iB}0P@dL0N>Tl4{xbZR~ML$jK)^I9KV>6CgBVm$ZS|kYc%Et4Rk1(1=yY)bXGC3 z^DAVith}u;%d-4?^O5i+AVJgkg|6lCb@RthW-uh^eh1`@;^YPhdZ28*;w%;ed`w@2 zcLu+Ozz8Q`H!}q!AhIvamAoF~>GG8P4tvTxjdvFRp;rV`LKyWyh#uHO`5sggaw*LR zLq|ivLR<`%m$3=|4lf9$5?2u8T}p`-q%?D1zB%P+_ieBer>_-2uMwumLf}7$Ov-lT zAJV0Y<>)t*#p!j}?Nroq5$+d_>)eX-rF}D>!S`Xpx`KdL8OrL*;4G%Uqz+ocJW2+_ zx3jW=zmca|H`BD}K{h00HRdtU<26Ds(b?&Zh}3bwElD8cvm0d5pSFWDVM`G7_Fa ztd$bLV_398oN^qoOx_h7i!73Tb$Sh7ExT@ZjbA0KZU+{BtECzO%63N^TPwyoDA;7{_ zeYlN4PJ2e_xr)OrMM<9^2b(4Y9fGcEcr@=MWO6mrY&-wBklP$g+*tHQdzo~q48%i_ z-vJHS-Bd@gw&Wfy4hBs;Kt~|$1Ku-`XwaN;#%YXc+%~O>I5pnGDZn~S7ydPDDt9Sy zB?5)%B56^b#gEA6F?$mpQzzhd1}vw3B7kOJpdKgO9Hr>T8f55BtcyAd8;v{4vBT{l zaSC;5Be{ploed!`rdE$q?ECeW$nmsBfw!4w4o(JP2x2BOLZ35c)g zZ-UT*VXRW%9T$pwC0OD=7vCnB?~sGH;{WvmOee^3AkURXc^d4F(uT1Z(W@wce?jHS zwfR@juVklU1=tLkm!A^*M7nR*Gb~xUe^kqK7F;D5Y@9BGLE(lGdICJS5)NO0c%{3a zKN)4z@?x%_KWYm6W@6ClHM3eV3st6h>?mctUE$lTl5T{AH+ItWuqpL47#@D8HY~3k ziK~u`@k3px+UQ%2_N`hps{lPy_iw&ogoDz%KS+JSfK>?U52#1G6nYJIrKKfz1i@}{ zSa|?>ts&Rf6*apaH1iQEO@C%gOV4FKDcT@%XXTVxlee+%0hfS(v!!7B9COZ6=%uJu z&KpFzR|NM6s&v|IeijNeO3|%#IkbBfJB8EejnHUP3nK^KT=9!J6?rk+nRyodV#O_1 zE%u^kJ3A2{Jx$4x;XaR2Y-g<##Sy)QzlUm#Wf3{l2Y4sYBib&)s;mHdC29JKxeNdq z;AzWvMTwsl$(lw!IZE-is4o+%DI0khQa^P+!GqjMTMK+j(a{x|nN&6-H4;I~Wc={Z z)Ale?)5g(XGXAxfsv3{suH$AA8hNwuw!{HmVfl7a509MzAh+?FB1|g^yq!yKQHFVk zrgqX6@!G~}L#e`c%eHb7aSvo{+!XvD*(AVGqP0|i{0VVg>OZ zHOUk|+`&4HDXNRZ)MB|cqA~zZWgJLbh}Tz54I3nsR(^ID65K0aPBkNCsTYk=@_Lk8 z$0k-LTF|x`V}ogH$u2#I?QFcA+J|eczYrFW2iC1~pNY4wg-z)rR;m821BkAQG(`Yf zk*KJ&9x*H`Deo+LDdJTyk`9QrLmflLiQVBO*Ygr5#Mg;Wq}_-+qgpJA@FagL=sp$6 zKLG*4FY#Z&wiG!C<|CdY*$P0Y_rXNL3Cs>xgiwk-KJkv|8MbMZ;#moHawnqzlu&K~ z#shYmTaO(noWs3|hbIQ`djn#aBuzk$_DIzgVoo=pA% ztz#pp;|qM*yQp6hN;xjHi_0813ezD_RL&*(xrrNjM277c#S=1A>{Q}6rY-v>M9XAx zlJmWp*Ex;xn^{qudqEo30M~KB9M*oW%S6+OQe4vvM`%i>E0V5?Zxg-g81WtOY5G0! z+B_g5L0lI1h_OaIE$}_lLUhNao$)|)d7^~vEGiqLI47wj4VnO_O;g_nPok;R({g)g z?^H|Tg6Ks`KwufYLvhU|g&wY)I+4sAk(qpfQ7z6=N>24#{29s*<6YCPElQOj*PeRW zU>Vy*3)P~QMMYdO!Q{h$mC-bEknJn@H$GU`cd+>Y@><`xSi3hatAd>1u1_+ z9DP2hQeYl)1nO_F59XiLGZ3>!DK3y&q;v#6L2gnsf^$osDtw`B>0jm7;73*r$X6qG z_~_;L(W!GXmHy~m7TyXh=5L=DNGNDo72*kEjcf&KQ>m@=83vxdP}+(87Wq}m#6x{1 zNIMCpK%lIV&|#4wvnK_Qm5@x7L=o=5J0%lIbBaHUkCKH1qQ);=o^9Q4xOSLLB7yEWs6{ea8kqs{#U_UuTA`Cf=9Ch`5y#N zEp&oCg0Ev*gwOm?r7g6AAEp>CJjCak*NMXE!%n8{uH!Y}S-owDZuS;V~`z zFK%u_Dg@01)yEWE&RSN_!V^uAx7;+<5t%BrF&8*Qv+)bX8HR|uLl79*5WL#L@ z4{)xU0s56~ZCC(V9($@X8QstSiNwXfV24;|A&WLIv5hm=K| zY<^{B>7Jn0#?I3@Vj_cd+A3`A!u#5TIQ-Ody%_t<Biisd(zA*tECSl6a(JXLj20$Ipu~J zp#C?ejZtNH+ur5h$%$z#E^1HM-!ic@KJ;7D55RUWRTB@mcW!d?Y0!2nX-i6lrO89= z!X^KstXggXoU+$67X$MXLK;6-utIAa_Cv^C*$p#bljdeM+QBwk-D$W5dtj>hY2>A2 zR4K4Y293@7)aVHN8Q)&N2eB%2e4P}v*z|YB%GPxYurFwII6;djcJuks!Jn_ zGL5yCl+rl=>TT3{A;U&4b(^O})oPm0oEqai+JXs74W6{yqxJ&dF{+qSvyF8u)2f=s zj*Z=5G{rbWvJKDJhdde#mh3xoNCqGFsR`k_ublH^_G5X`+iHx+KBLaKLKGgGW_T`I z82qZTUii|(SKlK%Gsi_gAbc?)OFK_^_kSp*u}lfd@T&?_hQ~aqe5^PeY|zUU!AoxH z_zJ7p+jJB~;sh^sm-O2IP$51aU_x z(!bis9PY0v^^8BD?JDZ00CM`!}*> zM)u}byovYeu7l{qR<3#ho9%1Y$%nIC>^mnQ3Z|T2bq`@h&naju2H@mY+b_0 z_kPjb#;9^GYP!m3nKIHmz$iB(RbOZ4jj4>~>6CVRUVf~gRl-}fe0B3#-jMgUrVw76 z^WsJTPdnv&<0I2=f5>RfKl4A7TiZBkacoKpMM_#OYT7Cd@NR6JD7oWo(=c7~aLQl< zL&7oJVrUd{{!693YxU4n#x7~D(a4uW8_#JbddnN8srAnGbsyC0r(CO_uZ%OhRf!P( zn`w-(17}K}=MFTk1spBpDnEearOOyu5byF+(0ve%Gd`efh;oCy(v+fmapufSX}y0DAzC%AL2FxUtI zJMI{(g@ow2nR5!Mt4l1%H-&V66!&4%sI_Io_<7&};4Z?QjIH2uk|FdFbT(z?f(_se z)H&nUvQE&!UEeZu$+v3Qxh|CJ(ujgi>LrSE@jKcv&^^Em`mXdw;5kNrsCfmK$y{Iq zvSfZ6SIc_O{>aW{#Mb-_Sw{Jxq5PV?dIzOZVFj=z6 z#k};Rq+=YB?JxFfrzeuC)COkiMZ;uaTjp84f^axjptAvdDR`$DOm#0FQPV@_mPV^8 zox4kDs=9Gtc9J-`O&Y(Zxx2C}#kVm{a5p2W?k!<%_Me*7fWmx%u{}j!gf-j=ZZ6(Y zIpmyQ9Id}Ru7F)8j%mFg2kenoPEC5dDp`=9Zrwf;-<)-(WmegXyxc}|%Cf?!`lR6K zB2=Br{NF`!#y{iI*%)y|s{*_@SE%oX!U~J{pW(HoR`@XFwsK`z1^P(EHjTnvm4dt53-Y(p}VjHs>Xhd~aQ zaX52F1Uen>GTNia7n^KLN)W}GHb5*2&dmgV!jxf7f%&+Ik_hO1f^{Opv`(@+&0!J0?h<&rM4DN1jp0*5@=8oy*r=+CS%a& zdcndOTSqBQUETJ)@$8pMS|NY~WF?oNIeSp^0V}vRMHay4+=6&LcnP*_tBgo zNF4X?=pmS13(Xcwwq|F-qmDhBJ~t`RIZf{$cQb-)OsPJic8e*3u4N=RF~qs%JIs_{sX`n%ADChLFvkW zPrYhU`u2voGEO$GE{?9uJ5rMjuPVG@%*k&p*=DGY)s}s)^zruwF!kKoJAk31r|}C- z$@npi(OEBjl@-!%N&Avp-4X|%P_VkOF@I69vOYQ1yL7l#=Xbo!zUIg5;&QlwK1Nj) zq1NPrC2g3rLO<#U?Awx4Fh{(hJS1-#abX2>m*qgN5%AXSO zg4_xu@hb5*WHotFMJH^SQk3-@afr%{azsIBLN5~P1wDSc5t~S#G)nOkHSuMWnA>^p z%eSylgtZkete+qdq?k?1ng+wNAFoJ6IB>E(&moYU*6BfLHis}unND@HEA9|a-y#5QGRC*$T52g?pyM+(h1XkC9(YN6P)BRC5X&HJO|zB|LQ- z?g(JEYIk`ZP@p`P0j*f4cop#-lB$UDcm{Eo|FPSI7?Q`1QOdG>(`jIwrA4o*-EnrM zwN-k+%W{j#=jr=E!FoG@^-d1vIh(IG`C~LC5XlX zKzZ4P`ibfBz;U&+!oPzmt1o(31K(65?c88*H2DUe-@8X4bUS8aE)55p}+OGrB?If}bbHiZ#F@CS}ViHOpQGbKHw z(@;u^m|_Kgwfr8{73H?bmU;}m)mF#&f*u^DSog$4Gyr;wb^&XSa6lH}B&dL59sV`O zBe{VXjs3HHA*meS<|ZcXCTz5Y(ZqzmaR;7IGzAfe8=?|XlL#RQGxSzsXHhLSn)E(t z4{jaBHH3#hMfGxXz~7^uw9TNDQ#Xy(pc@DY_KXb84K z0|gDPUr;9mT{d@!vju|FtsDro77Vh`0%Ksq!-f3O=Xbl|Knuqr=3v!{=+Wf-WI!G(E1q zuo2BOn@zaqihr{dt_D!pXe0&z`x{)qH!6DSQu3q_XiY`D2lSEgN)Qva*XX$5I22r! zZG*u>75`@1%wMe6Ilpn1Y;Zv(XfnsF_;dDE&Je&OCXtH-Is5%n>PV#-rcGd=} zX(lE#C8|BHkQ#za#ShWKN>>qX)15NL6Q9s;M@5jXFtomnWDaw>V-e{!)75eE&qOZ4R;#VNZ({GLcFy&}d{&*ZY-EN>=KZ5)!b!C{m=rm; zMql&=MXYvBg`p)?Z4rAgMFyd_8Y43R=bS@t)+;TsOojMg3=w-od@YAlAr_y`f0Cah z{#fjtcv2Et7PaBf`Mrre78RfCEk5s5ScUXd?(lOS!q=g+K!LB(yx2&I^EZ z6MT6FBtAsL`-*m7{G6}GAg0#{RG6qy6#{$gd!cYFIO=P82HO(TnUl?y;e6s#*>7m?8V$!HR_4gQsgwQXOE&}ox2J)wD0CN%LQ(QK474>}ZLY6H} zx9AuPL?37OiS?ECcWsk(e~dy1=d&-zHql!-il)ZJccvJ zXm^#dg9941=l`3Z!`G3Ii8hspbCQXh!4LC3pDf*r7rLrsCl{~1t zU7jEDNqHEw+qYBs8a(WDT=fm|)w)~V5Bb}d@PApMS$VsBB?yw|BVP(`NV+O_fUb}5 zlUu^;e8n=q$^2MkM1v*wjz>oxqIG!6IVW8NFmn9_315@w4P%wjef8HX&66QPW z62WFxnLM}T5;YQ405Or6RYj`d498^6u)m;=3!382icq0ZLr1#0s0rmtfq|kxB(Lbm7Cw^)SWs z=BjR(-oi?E5`h@iqCXrfXO5XZ1{R%Ur8@?H7r8{2iWDvN(>_DpTbQRaN1vOXqOV4` zS~#oUV!KD}Iscwt*`bp(z3!79njUKyEJm+^`!~usGVZ-%K+*vEdcMYND_q4PkmN zsBYuAqxL-E7!?n#-;R75eye^G+GA;XT@faFQGe|Ptc}Bux-@L+L|W}s?0VBamSL*j znEhBDccix3ba-bJmn%zu35rQRnv6XwKN}fHcl$G)@#(USOI$Q0YeAiT`TF9yhM!8NzT? zpLwtR1FAB4U)>HFl)UQ>F$N0n*u)&&TRzkDl#KsBl`%F}SY;_44qIe6BmL<2&JZBo zbkF4o`@g({esTRy0vRBgeOtz?bH4EZ>WtSZr7EzKl>7 z3$sdI4V-}Zyi5pcK({-s1qEQ~<{BQ9aJK1s@*408ZFu^A=nn3i>=uM8R-L~R#VK_u z>c{L&(v_-lPlKAuJ`k=uO#!5k+{~MJsnq)oPvax7P&Fob6Yd))ApH_SiE+-}L7H5A zJ->h~OXL@2P~HX}E0)oM<_Su!)2+;VdBH4Az0JyCI#YQv!G^J%wKs*u_=MV%QOO)E z8p$bRl_#|1BiYje9SY#=P4jGuE^<80H}Kqe%34I^fRL}i#9R_$naznBVHxsJ>P=y4 z;hW51;fnY#Ik$ze0advj!Xn4jg&x9w^PRjI!bdeWVRdSfJSBRnO3By|Z>8)*nkTCi zmkPtvs}(cj%d*zWIRU=e%j63j5&0+NM)QNbi6VdFr{z{PQ8HNMej}a!E#{TsFan?0 zP`RvNN9r!!mAIQ3m$X}#9?G1pb#z>sw_bD7{22F_D99KXJhgSRbZ_|k<_UDt%9sW@ z!ZN|SF0}xg5>*3<>q##*K3J+sFE?h*{gQjO@~!!4?kCamYDvl7^w+XjKt+xVy%hMX zz_fiBtS<4(7eT)Pe#Ay194adPGLg~H4YLMOH2B|@J=}#VR(@k)qvUeYu9Dw0pVF=6 zDKJ5~u7aM|Rk0Mxj1fZ6h!o!)PylM%tPD5^eSNeal7}jrvL03>i!JhSkgJr&!X5A| zs71+H;DyRG8jNZw{;aTTn$MXRJE>t7t{_oe`>9->YOH>r z(UECmjE@v&$5%Od-pg8BWp96{9Hoo?r{z@fGGh|^5OhM06Ltf9ae)J%85vsqGQ9xp z3#bb3##{%zaet3(fDBBjCcc0oM=8=~xqI2SLPu5-P*cLdKq`I%ww7_A*`SMQ#c(p@ zP}nJ?2b|^}gH#}Ero`gykbg!gI#P-+0)rA5n@dZCUc3Wp#5GQ_$0%?|Mk%&NyerQig`ztYvM@2o+7c?xwqyptAHOpt3fMtR37t`q zPujfb8|WB$&*beW=GclEf1xNK3qw{?2XjAC1`#U@J*Yd1E|pBBZA>mJYp1s^Pb*Jl zkQN~T5~lTJK58j5Y^*i}FVYuq`Y6Jzdt3*2a9$#pP5g}#5O0!Q$=M>J)`zjeq++WxuDGr%ayjbGl)>~91 ziJKgO>Xg`zY4Pn7Kk0f%7t(CBhoFO*TQwUC7&%|nEs5^=gR1Sp(n1@Rms?1|K^1uN zBGfU(zc?&UoZwQ2ASI>b*1U&0XV_H-=YPm9tzswa%(FE(1TW3ctju0`CqJtaI_Vxd zLb+v3i(8ALWY`m}Fq5-?f_GxKSzCPw1vJv?(U>fQK`po>DsC3Mi36rTau|1;{ zFNa|)^F>_5G?iaR?Ja*;5r?VI4u_C&MKKPrRQ!vjI5>E1+D&3f&F=E$SkF;Pup7G!x*6^O`U*dcoSt_d*@F6# zcpDvz*%O+8k>b*qyv5q##WMjoJbu9J10P2E7mGnZs91i|BGse)A%6J;KY zH-jo%5{=DD9f4vvcR_LQ2E;~|UrVq^eQdX`Dj&m&!(7Fb@0HZYM#fb6> zjmmxqx?J_ad@6sLaQj#Zp%2)T(o2eOvbSe_&6vPZ=80F1<3bB>1yFfuB{vq-@P&ZM zlTHac0H*n#&;{Z1J;oA)au>{FBfxf( zHgng2BS$Ip-}MUq$BK8PzA{N6fczThkouZBy}}UXN1F<{>i?bg79it*v<7v@e?FOyDR#b0-h_>sb1K1!q_q7_IY+{eQmntLb0&|T zj!2+v%(Ftxp>`+jMYqtX5opX&x~uP5ER{awJPvb%{>%0wsgdD4O7Sj^l@QPXt>!Ru zQ{lCo4@r*5KyFz01r(4A_6tQ z2VWqW5FU$26L0cajo2hsJH3QI7jLsw~4DyUepTP7^F za41lyO3Exrip!;|Mk&;?(VRcGkSWN><)%vomkZP}EFq|v6zna0SLV3HUbLY+dDc5g zATZWaC!GlTTZg!JV~PbyoRX4FX?a{{K=euu_c(BH*$N)8;;MTt-vUxK3&Z~b^|Mq9 zx5ECmFU4()%J*Wds`!+;lxc+giY{Q~!yX0|vA!Uh7Ax5T^dsLAhuNX2sI(jMm)U^+GngHFJ=iX4a^kI-B`n0c$RQ7I71|QqEi&iaR6w z;AV$|%5Kb5bJH>xfR8r8zC9aBuLR-MeQiCM0CoTmxdqIM|E@;agx6z_Fv)HIZ0Cxz-} zmR>RWl^LMFwPA|an^>V)icI#s2(faWJhkLm@NRhxAj0#i`~xt2-c7|Nkks~}vJGT< zf=lvXJ4fy5$}uWgC(Z*VMmva)Rb(z(Em;Wh@-&x-p!?>zNSDG^+bX5oUgXr6% z_UwP(E~%OS4jvKZE~rGD2|6hFjSBIYFU&+2I@SsgpugINi$LgKqxQtVPcHu6F|EX% zocp-673tg|JTdS$FPMN_LgMj=u5*9zdWl$Dd%m2g7`3G5kJ*pq313-Dses5@whzrI zu#A0@*6041GoC(fE}8v=Zf|pm8%)QJT5=Nqhsva%<6t9RFvoGu1?*w&=6rPrFkf-a z=6q*LIX`T0Yy$UhZ43U6qW{-k@fWE##JeLD^f>X|00P5B-0mL62o}%fMwT*dTm(;rG0=ON%p|j9$oOSKY;waM!_Bv?vs6EYmj9RhM zI4hsIEX+8k@SfLv?|Dz@g2l?*) zPeh;jneMjYHTI}@{l9-WI5ogj2s6uZ)@Ej= zw)vkw|3CjXePm(!>t^XR{`v&e#A`Oewz5e_C;yqcbXvKcX8Jb!`!j841vnJWX3c4s zyT$Rsyf^a~ITyPq7Ho9AzVOeYg^T0d;Y;KmeV#|Xp88DmUE-JIk6Nk<=nXs=bbHy4 zklD+Zg=UB0!c`GHkq1}Yj{3UNF2*A^Cax@=mQa~EkaQ^dR?3&O>FM4Xv6;nLglu_E zOYX+J@qk#(u!a`Kg>S7(oyjXb_~`ufHj4L5nWz_%0cc;B6N_v5{h`@0^rJ>)zp zd>r^>%9E#04?JsnPI{5_(&^>fSBGBLy`jI&e;4?E>ig#(4t;F-MERWjW&W2BUx&Zd zey{l9@#DqMzF%d(ZGUh6Q!?6f%%6_y8}Dr;ov?4>6B|q0S(D~Xo}E`# zW^X&ga>mb@A7(vv7@2))&Xu{h9q-M%=X7WO4d*K^=NFuGJ-l$Q+xA797O!(3T+-{Y z%Cp0(&AZj7$+y<8%3o*d4e~%qkZ748SP&vuE({fi3Bvgi+(_;UZWJ$Cuu>c&i&e$x z;*ALniA_n($*n2vsa4O>TGdE}L%-)}KH1|y2<@~D!*9vbG-7dac@}Trd*>k|F z@^`>bpsy7_A!g8VFmu=+_)o-l}%W${8Pds;yu!B@^#7;>S@{``VPi= zW)G{GZQ#hbY*Vztv|b`i7p)X8lXyty$)?GE%U>yOC{L)it9v!IT8WON2UTVmBCEWO zj@35R-)o-LUaLD^zq6sQvARjvjB6=rO==5nU(_+9)3Wo^s>fX;-6wkX^ls?u?Qb5a z8dR(ntYNGrtV65^4V7%j+nBj2ZFBOLgst)0;hkm}^RIf2gj|ceo_(YI zCgv9Fw){@b-IjZ+?)N`f`*7oy?FHU(`(B&)8D$h^M1elL+r&GWlv+< zv8L1Pi8GKh%V*^{#Lo_y<1shLF>+qCQ`G!0=O7pF1q)s0ES&0Q>Go~W>%|Y;N0yxO zIN-U}YqfW~PqnYYkLyod3JoX@Ob=SQEI8OJWWn-Tp|)XWVV}caMLdYSvEpLX$>_r? z_rz?A-59qfzBi#Wu_dWKxhBPss!!9Tt20!Y$}DBJDo2^C%v0to3si;bB2BTbq_VWC ztQt^P-e4LRS}WSY9gt3F7pxoJi|9l4qXy7}m_h7n+-m%4!fN6Gsh`|K>7sVfTIr39 zT4ohX%T{p2TrQ8!CkRl&3Q>tTTaqMQAzLQ*QY=t9s3xf`)L%5OwD)x*`qPz%3_GgU z8+)o-YK*n2I$=Gtf!K&{f;5-66u0KL<+NvYWOin*%IeDL&hIJi1@^)F@dM03@oN2= zmbI(b?OK0o=+1@@o2)mxY+1fFdmDDUVn_GRgS+nSG2gpjU+jL^0mZ?=LuU@Z8=iSI z^jP_E@rmA(Cr-UOGwp1^xxDk#3pE!vUOIdE#Z{}3`PYK4r`@QyNxh}G-EgPx?xuTt z?;m||`r-LU7apH`a_Z^fXFH#-dC~k*@rv-e=uO$%(su>#(>_Fg^!zma)924uzHIuc z`v(5*_xdkjxg%;mxHw!sq2Xt(@=e?BHVN@_fNX*F6h+-3*J^i=plr zOF}&sc~0~E<@MbAs?TBH4SsF@+NG=jL|}eU+_HdR*ATnq=F8uO-VeJNemG)FWbcZG zD0MV%B_ReJn;(}PACcgnxG>2f**5u4%7@gaX*bi)WgN-ek+n9vGpE+n57_y*0$^cw zQEc(DlEtO7%dE@3174Kh1fBxzsaOMUhNz%S7#yC5h(Y?J=A&)VUonrc7jS#=gM>Pw zn1m%4P@<_GwCS`T^oNYo%&n|8ww#0K7VuW^7YQZ{J_>J$4vPCFIw@IJC=XY-D900_8~_*!+_c({77rmB`%2dYnO@N1miWZv|=`BKZi*1@*Ac1Z`R z6Syj~E2`VS$F+B6-^9LO{T~LN58hvWW6kBY=hmHEe{|^ZhJzaqY&x*{;Fcp>k8L}> z{o;-rJ0I+NwfpN{%YAnHT@Lskj6Rfe7=DC3TzRzj*xut;PP{uc>9psW#Iuld!t?DH z_FcStdE6EEt7#*YYt7dW-*|It?(Kv-l)Ihx&OWesnEt5o@sp>)&*aZXUV6O}zP|c) z={v*wHy_hK4SuowTJml6_s>7WesO;9`eW(3$7#G|H1RGHl8@iTVXi6F^q@Omp4}P z)@Z$jZ}=0`uE-2NO=+KbKrl&e7P3q;#>C}59Fpdz8yNqmDLqC z#B=Xd&lQ~HWmbMb6!6Y#w`9EGb5-fV3IRe^_9cV^Sv&4d4+q}&;^-hp(Pgt9#5vxE zs{6|IYW&LI$X#E%4UXr)g05oYLNCXcBi?>!UOR_j%2OAQkV6`pA14YxDJz>n~XK=K>B* zWwj62te(w!um@co&W3JAa~Pb-tD_+YIj1`7(yY1b>jQ%#d3!ZmU*{@s@Pn_)6^D5T z_qWRr@rVOj*<)V5F-PXfqj4rk<-B3YVaYrGvb0JGlmBd)arB1Xmyrsd^5m5nCKo7r zA4VpTJ?Mu>cS#Ra&6he#?yxRNY9v137KxKsmueIr63+@65gSAYp0nkN)v!xcS-Ro+ zo}W^Jp3-M4Ijk+Jd?g80GngmDCzN|Cwu(`TaVe+8i)Cp+f#L}g!qXeF%+}u*?n;48 z)ZJ`}zJ5l}YVnimr~1uea+NJ(mw2XrCFqLis0NxcTU4(^2CfomWR_3Lq?-PY^H@o1 zx9L7W@ul{i-KFA?<{F()bg;gbzEi}k-UXT{3a#9jOcTx3zyjSw&T`IUGs(M6splLe zmTPzJI4utAFX{>qb#?h@Iilb;7uqr5>&6+t6ye_L8%Ym^>-Av)JA?-mXCGdcQ1*O1 z^IfdiR&kar$fgbY+1#+Ua4nLXsMM)%b1TV5R4ASez)ta#*PqCdH}b0kvSp!y zcQ-u^o8|RKYxD?48LE|+EVcHh2KHT6ryuTE?X2wD-BahT@Y%dq6e4@K<~9}~z1w}c@RHk~Vw$Dhe;cH{_mu4*XeWcR+QUBgK*%}?Dq6#i4gFy}hDUr*yQ3Y1z` zUT936>L5SMFGdj~xPPj(X{z+X4pDuCWN)ukO}+TCG05m*x_QvP@}g)h>bkB$1j!%P z6pNOw{Hd}Nh4{Xa_lnpjV;b%B3%1AA#cO@Lzg4%YOR9XULX?+zF8c2Z9?C*{UY?Ra zMcpHFUP)CFr8d4ja!2v^6AK#V*Xy^=sIaUZZtPI8VW15TqnJcE*t5houTo_ zD^h(^ev5vuxFJ8_3zM}=%a8r3hj)D5I-zE5Yuu{!M#si|`tOx{>QEdPovJzzk*yIJ z>~i<2aN5(+Y6U=5;p;04l64+^SvN8WGTkHW+HQZC%Pv(^)rK!0Xjt zYtG~bE8iNZ(f+14u`c@jk&eg@4F9NuZrZomrFz}Ef{v?I&I99hEA_{^&a>LIoo#(^ z8+COfBxhJDuD&1jL|&<%>@yir(katzfTRbG+j_Th}CL<+AIPGn$;)BQ$c| zZH_7CT;0Q+l;vqCS~b?SKn`cFXlF$X`zU=DDaKWqD9mr zwQqzMz&6IC!gZOd%1U8xBwo8rc+)#sSuZNyEm<|74IaGNZl%UIylj>!&&st8D-|@# zhuV4atco1tI9XQ42mLi^X{3$DAdz`{E60lu?-F<3s(CqZt}V`3T7RwSROL5WZ9QLi zkYZm0)tm-3ROP82XTbGAitiB{)j#CZyzLcIsol<=&bh6J`k%Gxn_zWMnikXtNjvMV z*DNMSR1Z`|0UsL%^qBN}x*82HqC!nj(!G8uX38RW?Cz-SZR(%j@@o~U&aF|~29n&V zOKuX7l+|8!>w)P8SL5|`x^AZaL4>R7w|bk`bNM!T{PtHJF6&GBKrQOQqFQ|8+#Zr- zS?!IELE;zV;pP|RS1b3`&rF}M?K9ejzg0DB_j}!tBNd+8L)wpSx9&aA;_%@M=fF7;m% ziS<_9QsFu7?~W{C31(kQfY7ys*DzJ+l&q^hAq);(P?;*M_PDFYh(gyf)?n1_Z5DlB zlwWi?U9F~@DHGc%@a4hG?dH|Z#CD%M*Z*H4o^hOOeeyfxeneK?xeoe}&I-)LEF4mD0J)V}z^U}L(;s(K8 zAZLTh)5c$x6KJ((1N> zH>=B=<9dX>{c3%u&#Kw1)>gCD^~g;PZyNIof7Lv$d6am>u*;CXe1%r2QFzW!&Xf17 zwi>A4glsz0F}=vD$z(zFh99U8Y;)IY%*~ z$QzUlr0s$>6?Pxr{8Y8MgSJk_yxfxBzY;m2Az_tuA+sj6c}pVR;8z>C+(A1|FZP_T z=u$jbb#L2G*3oM7ji*>$l8Ci~tnCz9e;wNn(%8jgugTrlmc)_7B{baO%9o{7&*MFD z7ig~uwst<;<|EP>85^Dohs0Ob>=sU<*!6V@`XOGcv;swLQ7b^u7W=OLyWq+)Z)2P= z-+i}sj%Z$I)Yb%5Ox2AI)`}r<=IRl7I$7F#P!%X!fvm#mBJsrQu3ST?Il zBJOv8uOW)T9ox2$4UenhhF0i%L<6g*Yimg_d)})LgIzkFsC;rn&BKZfv7kDVJZ#x` z!!_ykB@5KICCU!(%|{y)hHdMOwKbwSgDB%QQfW_`A+w^lBT)A&XJPX^O>?Y!?HN^c z&{spO{Na)$b%j*d-n==cW04_by=4na*fnsa(SrE8duQ$Lin#V}qbmDy6aW7)be2(3 zwQUr(TR*#7kWK+51VKVV1rd=D5CLfhrf1HaKGWU9%+TG9Ad20|tFPT1uig3a^ZeL9 z&U(%|>skBW_r7E?0pB(2#IxQ0lMV6@TW1Nr68WW$o&B|KvVU7xl^fvD`iRoeBvX}p z@rRV(rIy+^QRT&>l(z!@RX0i-+@8pSg&Ed_pp5HO(%YHXxn(h)kR9G zY%e{Za-^iX_(xQsp;$X3U_iZHG1l#g^o{7IwNVhqy;!ojb5hS|n;Uetj@;l( zvL5#S(o#$%ktJPG35HGjw*g)1>8h!2FQq+_nbysM<-91(>%+g95YKi02WBKg(fy5? zn)R#oFY`#k-uhRp%!t>OZCMS44l+ zWk+~tZEjhK`^OK|jmGeZ)bauJhi|db0TsAZt2dzGt3AX|(RFIYV5H2EJG*bYWC9)S z+$vg-`Cqe-ATK_%){;Le!m{iMx7!yiP9`WW`&2j{y&4y9!nUXb4yv@9h!gviDkgnR zhfw}9)6m3{s^Tqcc8b%(zm-`DxBKQ8n)p60XO$1RYgV5W9l--sj}QDd?;_Z}?+mwT zpW7d3jhPvZLn>w5m+EeLb@;!-OV@{elMPda|G3;y#_*o5{v+B(%uxvrU{zZPuinhE z|Iv=MN13K)`ZfCN!{e@3JE<$ekCptAzxUm#$0QCeuNAii=~ni_&%_DU<^v-eXA#qS zp43dD)wZ2456-l27&HyWov!NCZwv1)QK+u^#^@Kw0$qM63Wcp!QNns|ylTWiMSC~? zp@-5qNGolNs+pN-)!zl9ZSIlsouW%NfuqqJdb1w@t=PZWn zNIoC;U|Q#A9L!`orM&KyGG)>7HU`TlIIDgl+tKr8`C1^tah(1N=k%&7*#pQV2t8{H zr?Ur-r9!lPrvp;(YD!m+3FJp7w30wkaA@rp@UrKPvL%p@<3`;{=##}7=`Z+&V9l9@ zyp?R-(QKkDf5LzYk4@oqYcNu@Tgz_rY_LboOEksvN$EUvrX#HV7x`t;CiOsP37k$Z zksM?Tj_eiH<~`pp7hFuq?&9+|L@#Sjc^ZZ(3j~{pJ(~iaNST2%Cu!VwE zrvlWGZ1ga!D9(G@Un+A{UHeVCyx*oWhH8e4~jXG?rBHZ+wJc z;z_*tI-7l{M@P?l*LPl>mO||~t)+`sgO64mSH1D7GKS06I+d$;dM`u{vNeYkadMfU%M^g}_(V9ZoX`V58~pz&U{LmO$_Z$Ias` z^aA9(>tOcb7jHVS+^{o8ZCRb@^Tvy8Z`4)o#=e9!0DORk1f)ISIKq!M$AHt}Qjd|4 z7o7R#93xIX>UuWgiR9+tQYJ$*)R4qlAe^pz$vVyFu+!Kg-q<~lfnvi{;3ltv|dgcS!c9uVDzxZhC2X?J+Vfa3vj~C+B z3{Js*zsjP8)Wlp}L>s0%94w*}=DW3YhQHypd^2;db_vs(HBMQSI+Z<6stq3n*b58X zEI1Ov{BjIc)n4$=AkC_2#(|}@^EKCM*3xC=7iCV2eA83LGG>9x8^^;NgX@D9x_ukJ=6C8rLAr4uePB5tXE6d(;rt#=uwQ9W^xL`8mF5QdW9V> zU$bU2aD<=v>>0&$vhZ>n)oSp~{^`^s``A@$X=uBhB!ymB|BYs3U==ONAD9irze1B( zUzGb@e*qMM_?Z(EAKns_3b$eKbOK$o#@B*Vx%_R-K7 z;@~bB?2ZdV`r$Ne zr|S-Q5FLMK5VqDGKWzz}RDbFk2?5H0l0+y{*2kwn;gb9!9+W6@N$iCn{-cmt&~Yxs zW-&x>G0s8|12lx8Qxr@?bXPDado7 zK>dXC%^#q=>EH3cUf+6^NG9c;6OJ1 z9w>K?#}|S*m#HE(eE49R&>i+^sN{cwE^Fg?S0OIa${m8zbDtBBpuIac;J+dE#&ftm z)bI2L%ZF_*trl(<_8pij7%OnE$9SiCXEbiyL9Plm5|;=p=lyW2t|B%Mx5p|r+F^8b z&`E+`L540|5Co{J_jmEWDc9Cb=U$LKRJ|b1N;)AL{#n$O{R3YkII^Pw19(RR%;+tm z)oFP8kL@~-@Uu$r{!HFVqg%~s?g-rvWd|`%eFIFxT@)9x=VFBPX3P)tuIO06GBlFU zbbOEegP%B;z&lu%)fd5KRe4l*5wT?x6-{`m@jng|)9CJHg`h7~7h-my+hr#I4&=IM zo?|DH%bk2SgSVz5a9;Bk(<~!%aq5c6~Yf7urxs&zy|THoI=mLU`J0|H;Tw zS*_y^_yT|7nMqvg@$<9D&z3!y&PE_HnYu=or*@)UD+!^4wYwaABXrE+BO`A zA1L^aZm@>`_~?GkH|pK?GpY_+QE7ofPMJi1686PDGMxO5aJ4uneHyU0akCDE%+b!%+H$_ z0wp-u5fpgJ;W$+VA8M^o6!12f*|K=aq*N)cw*c~7S-&YNOVXkpwU|sRykTi>k;?H0igp#^M0+H`8-oxyaJsPPryvXhf+qdCwHLx7Kh|rPJ0M@K=IA z_QQpEg!I4`xxTrjv0BQgpK2hBX;mrQo5HHn9*Q;pk8$R1f=AZw-0DfZP~@(U!BMfh zeIho8s~jkmyY$>>_#vIu9;-hpp5EBabr5>ij3@K?+OqhRzr1Mgej_3)2>5pFMa zv=2fr@JIs-WcLQYHWW!t^l|l$qC*|G2(92r)4bumKmY3J6czVG31thH*s6>1d4PSC z-LrQ^HGHe?X{GC_u2p+X*3=8CRKr>t3wf_irw5VjRh0~{q+t02W>SP%I)hc`?IE%U z0&Sc5OTq13<4bHfzbY$@vpK!W7QGcmiUevBIKl!@S;gttRVn)bj*OTjaRsxzt_V}0 z$+l)*I`pP~emGq7So4{3u(1mWG4kEOeO{M^KOK zx0P`ZBRL&5CL395d4s`H0?ChP{Y3*1TLlVd=iQM%=9?0Oq)|MFu-~F~V!+EqFa{5^ z#kel$srCqCxPDpLaeb7ABD zEr|#t=C|%IcC2TXM(NzEy`)*{n6i%?ONH6gk#j*dQBRFmi3RG_p~nTkWlf$a4;Oy7 z&B8x$C$z3GTxkDOazJ~f>6PS)>O<{8K&9}g;OA_TR++cQuM#`z$A_{6)k>ac0?$r- z%ytjnz#VF7Fd+T3l3*>r3z2MBRkp+dGv$x!7H40RMwUN_J1e?ll!gumRyC76ow*;R zp|(jliN~lNS=UcFtOKiVQxkam%9qln(2Zs)?crWe!v*@&9mli_n2UqUl|d|q$9-ua zU~BCp_ycaLajiYZnWX(#c^|mQ^C(*a^wJla$iV50ZvAD>TlWaHjXA6iLCyqSmWvUV2SeP5 zL|CWsg@||6iRz1z1WiWyFHs56Ug9epL2W2D@TKW{b<=pkF>6&E?)0ES*(LmzM}+7v z)@se-eL#t-G1W6P+3K2dKjk<4jhT>FQ=Sh0kJ>ZMM^mF%yFE;~K)NpQiWC!Bc}x)A z;C;3>@kZiJ6&EX?RBKhjvU%lI*cH;U6O@O@=?rMC9eqj&Q2B5aN&nvnR^R5Ra%Msr#9}RS5+y+!# z3O{r`In3sIwwfihL8j|hwrWLe!Rdxif?I6Ins|O{Ze00E-lAQpW*tQ z>Iy#2bx=BlEnD3x;G-creai*aXn{|Ilf0j0s@6$$IVa1Bgc^Z#H8y6G+M#a#ZudX-MjT2=K`-IWtlmah1e$TMD%1#Et&a~CW8 zUMe|)>#m)W65e#HQG6jDu5E0tE`P_5uOC+u#5_`!U0j#_z4W?nN#Z(Vn98tupSDFl z+3&pKsW{uUO|qEZZ?%GNOU%=TGzZtOvv%kD0XGQLmvTzo`l*bHjD zRO|d26`1s}YpZy_(ACPDcbhn(`PB5QZ8z^y-R4Fc=K4xg^_A?xlFwz_gu&u;W7Ot& z&0XzmKfS_DesWmF6y;iN<(at=k{JWrD2t(ro=23jqPgujH7YHwX&!Cu4pR+8-@fTp zSqr1ld!Sg)vUPG+uL4F{jFg0e&f>xS3^odJdPcGX3g5L!*xqTLjZ@hLJMyY?+4nY` zC^Z9wccVeXiE!GcS_Q^hYw_dM-w>y!Pez4f$yvPi{5c~J#3J!u-yGHWe3;kMz+?#u(^`nUXm}`~!_@zzB z<_>(MH=*mr{G5aeDr&M^CVY?15WU@}ksk!nPFty-^sKowuIHwBv2^_Ob6DDJGM7rMhx_zKq2c&*SDsLXC3{U-7%aEOpNhrT7N!m2c zWF!3RovjVwo1A*&4qPA0Qo&>Fizujc)2thuj-Vw}q(6gxsb z8BJ0Ug@c6JiuvhUt04I$)yn~znMx@-!lD(8CB+| z-xzYExLhUo&Q|{;z3cQ&`by}udN%(RaT%FhrMosu=N0_&D;vqk;Uj6w-m^-2S~MdWHx}f=yc_ zPTA5_Ux9T65EZ@HoV9a}98_puqI!o~t~w-MgWQ9E9*LH=QW6Gi#g%*8x~~Z@CQNDF zA#m7IR#(I83lNl_=ccc9Dy|~t+yAR_#-3U%7U|J{;oFDRnq`#m{V7UtZ$tMO`NV{& zEr{gEma^J^Mfw1B*)IXMHq7vpM|Bvl6ccQVOwnAd0X}f(yD^orp}$|hYHveVv}SC= ztmX^K>09b+?PTr&Rb}zww6*DmjRKv+8s$jt9gA9F6P^f{9sj zvNXY=sl(8<<#f#)O;Nzb(p`%6Ym4=JB(oeCiuHmCmZO9-i1equw03glY}_(QYzdf(uik+0($V(62x;sC661`3e4d_=LP!AUyw`lEq)R zkDx-_V-*~lhNu(U(L3>0>LBAGb~ZVUwHkdG>c-X}pVyE$5%A*&)`h>+l5=awtCSOZ zu26zy)n&h_g_0cMby|}sn^H#qDj+9un6bR9O)%>L;p6%mXhl2jsY%aES!ZgBW*I+r zhm-yF{8BN6p$QPksK=D^$RfI}Y|^d@Muq5V$Su}JezGeIu)ve<`jcig#GH;R^sBzs zHL57Te0Rwfa+7%+pF|y_KUBn{(bYiWHO4sk{E%SgfM|#70(LX;=#E`MUiX4iVI+NP zb;sMnBMr;V{^U_r^*o4@UK&!kpZe5rHPMQWs4as}F~g*DTu!q?c;2_S<$oOPKS?7k z>f78gqtLgb$COyaY+AsrB0s2>7LKNpNv7G!w4hcOHSIBvf&JWxN>JgH&0;0lQLnW*Z1!XXh z^;VYEn8J3KJjCfH7=wMi_?>a1X68T> zb4i7B-4HXcBtVTZuNTL|qgZKL&M>cgy3!Quz`h|Z**FV0B@A^^avl=9FZ^b>w?*vl zWUv}JwbvLYYs4xk)2&<$SuxL=YO)Wra9#BdJ$r{TFQ5^K72j}*=Wj zj1gT8wG$X2EiK9cMr)lB+|3NHkY+Dn%`)Zfn9q8z9TTvP{X=Hsw3_40Yd_yg&pwva zpGa>yP*amkf8L{3PGAJJ#&h}@_vyZBc~Nj>FLxQ4CZ`bvl-l7FyFh)Hc@OudC&pM}?TnZHJZvLtz>$r92fm-U%?)8a z>2@PP_Ogmv{4_gWM!{{^)$H?_5tx)Y5?cX?wkM-qoaGzdpc$Ooj#j7_c=mWF{s2GI zH3E0QN0nD#2o@lXM?a$_tYIbsx^VBJVJEFAx)eEs1a8=knBk`mcM&O!9gD}RrP2-q z`bqq_Y$X~e@{vqIZVPIer3l3L$go1zaW8Cph>RwZ{O-bUuwZka;{T!?87e@1SVe{S8j{$&W!#B}(%=)_wkk96dneDGZGkI70=<*g)aQ#f_ z(?X^0n5_hTS3S|cQvM`I9zdK$qp7vqu0$w%4xPCM@k|ndNA;tqA_kprNrl!tb zVq(73jTO&kZ6wwTYgsKtUj<=oj}#5>7yHhZTy7gs>?0tk9KIchZv;DfS(5MQ+1fGU zJ*c1Nr|<#NgWC%TB)n)c-y8m(e4aN3KDhZDaS0atEWumgY`b_&1#j=k6dxClsJCY6!wxoP6eBwr#yxHX~--^O3!y&Fp+PT4I-$(To1yl84kXytu@ zz_?j?ioaa%i8yd?X%-ix5IxF~yVQ8I^g)CL)+?&_o`c@tyV*@dN8ov#N+GQ_rgA?2 zYb8(dmnSY2!`a+mBaq)g*yyr%O~h?f!Qq3LtMrH0bu>emY5N5!CxDJG!clFTD(HNE zW0hh%Z$V8Tbci@tUXwo?Z#O9tVeF7@Z}={BNIBW70-YdEvVDeZz9ORgEvh7V|7H?T&yx~y6e$y(Q zUEw707WK)ZDE5#NAy;I-l5eEWh`T2pMXL{8DC%KktQ!VvvdA{$c%y;W4JtjvK#Yaj zk&I^|nW~n#lf6)p&b*uLC39loasJ{z?C?!$;Ss=o-6lTH39uQ@bq5XgM|B$!`(j9a z9X=@RP@-@W%S*l$UYJ!RwShkFG>9idPd3dIJc1ss{ln{rzS~S7AlRzzs@6`>HC(`b zoX-7{VKA>b3#f4b1}}^LEdOoYBLePhp1}5XzY~XdZY4^ zd>8+KTqZ4KP^1}ReD7QFR$)zSiZG6UHN>62llx&UpSuhHZZipwL2uXEs*8&6>7FPT z>RtGghustsy;stvtl#S+s+2w6aY@iDSrUAaHz4$18%12 ztn?8tUKVN!rB9PA*PAnHMGMq#cI*_`C|rU;p1Wk*T5BRn;A=A(gYd7_UsaUGYHfqU zvNo4{QhKZ61C1kYEZLs1Tv%i1h9=Gs5vB+jJ`j$&KpRb%e-11*t z+D)p2znesbZwikX$mFn8H*GZK~&>y{}lWF@bz;6DH!n?1@u(JN(E zB@K*eFv-YaND6)QDNL)~otgmV({0O?i-$vAZ>4wG=iK~7T+X=FXZaIA*kmX>4IPta zo25_|bh0=FT1k@XBA^kw7pT3!zflzm3us}0M)Cy;c3UFsfRwA>@isv}jSovZcqb%g z6UglaUm6mKeFaywq4<>)vT74PEo!-ZBepZZSF#$dTJuxz8To1TKW;g)-MF&kqO42& zz*r*r4%+Ks@uq^=8nUo5`JOUIFeb85#^5phKZ&!5yKC+XB5+SDTkZ^0P)w9e(6x&L ziXUnMITGCo<%N7u-7DXo9INP%+=<*I-6zWQ?-up*pRGB~@8)i@+Cbg9fpAMs1)d z-te|E3n*SQ3DfX zqEBmzKpSdIMGoi7-pwVsoR4wKic`Qj;bXP_VEp<##SgH_m=KF-1oyi^?FOUxteb!s4#qv}2+ zr1G>9BUhE4m4~MvFrJq#ioK*eFZvKRS9L^i&gZqPhF9q<78Mb>mMy#$n3vR{*24G` zepu;jSW5OSb#@wp}&BV6Mw6F%cDwjAQ_!)HjY)f}i? z05?~hELD)lmFzPPrOzv_(EW^Et1VMIhMJX4@?@V@sYc9omJ0#C-trB14}M&tswrxi z31?RnRbMSSSQ1z6mv*6ey@|Kuhjy**UTC2*P_@=aEA^5Joy9^I!Ijlxxyy)He1A`H zegk87J63Qr=S0(~!qrJHYTp)Vqh3|qqqqc(F{`M5*VXE$&_COMQm$jIUs)lx0)}v; zJD)a}5!Pm)F>)Fk57H+jov%4hKN)qYypypn@Utn0d1GCZ_7!`PgQda>Ft3^;at5RE zh_1~XZ~Bi`4)8uFv!NKckVI5h1J9$>Wpa*F;3Z=Wr(|7?<{`M+VT*hXcxx3yxD#r{ zM|WD|j&x&7BDOjEdp(Fsk{qf;$gildQVh`tRuu0*Hm@_PKOr+53S zdH7SALEqS%DJaP{)k*llyUtY>^TtI@D3KG-0%-;ces`T*y?pq#CYF|<_buk~{~|xJ zxOS@IHSKFtqwHyRbnO|*lU>}3E258)XU%7YvjU^__52O%_^LE+fkTz#8(wa)jn6`# zWB+S=qA#KKH_g?K$X-}$r;6OQrNT*G5veoVN=FBJ=%H;)AKm}XA9un7rMhpCwEM0g^SjQh14gKpZe~rctAb9=8S0`{fbSU`ahP- z@*fffaGE)7FpFA{r|Wx6J-qu_*BV;Xj+HGT^rd0Rb+Z{(zPHMa%)M?Si?6fJ+Ky8l z0SZ@0#C*_~IsKq7urv?Z*T=rN``?bg?Cu>?nkTYfgvHcc2e$b>Ez1U8yIC8$IhD3C z%05uEa*C)Dk}^jh7>&yF5_=J(Z+Ch7Y2<$~&l<166=6Qr?Qov&lhSSQPPZU^8ysh= zS6qa_l}zD1xR3E{|7ZSxd44@)o@O`P*3aD?GuUvNhzfJ4s>XACpO(a7HEt=o)96dv zA;lySaliT$f(fq4$y2Fc#tl-BDaLrhow6Tzdfm6gZ&A-=E8Ozu%Pmi9Lh zZZ}rG4STX`m7obNW7PE%n%q2#t{19tyGgB!<=U9GdP}Km*z(G$q9?weOlJf&ZYu2- zUZI_<>;Mt9DplZx4VO3fPc`n&TiLZspS_#hf@mUR+Uqc-N7&+ue3_f?XOp+s&#g*x zS`cTqLl(dltkUrBU_Th_zOM4sc~+e-&5GSX^B=>Zn4a2in&)8_<&Tt3eq)XMqyo1t zO`PznU7qwgPq6ABUxhPoRu{g@vprEmj>UlzXLbs$iaQ3&gwikuKV=g`c&37X?glkyL!7U{&KA~}JcD)N?&&HInC zLS%~bqb(K84m{2X{>QbX~Z zT!*3#t!wNZ%1y<_jTh-2;xWz%%!}NWm-v})dtV^l%(tq!3%wxC zE}xpiD6%s;#Kut4G!r%!&@M>X&Q?q+FZ$x2O!<+~13-54es$fZoUdKSRQvOqn@>XP z3iLJSv+ow}D;?Z1MEVFx}Z*F&+aMQ z4y^eSJEj2wwrju^jt&TQ@&uo8RHvTPQ20*I6M86&RCzMS!?yC1jC0US z;0v=98q6Ba8fH1ic(I2EjQ$I1<*MI)_^Pm+=70-iJb zIAeGkl{tpV!@q2&u*K$XfjFvV4X29XTG)pNx53V(V~$-Nmgr(o$$UP~E02n$mN_e7@**n@Lzs zKG9%BFQEKa*^;)47GYiyRYAX?jrLp5BxDv2?d*J>{6GrI&e_&<2VI)yXA~f}3nmMa zkQUM@S~D`dVZP@S!k|D=Gms*h$d`vm7w#&O{NtD$+|jRr9^4m@Gl3BCv0cpl(e zu#(aT{sbFS7emXz<6FC+c<||ZIWz#xwhx9wq0qj6IL&-Yy$7e7N9dk%s<=YpE2oQ4 zkjc5w!Hd+dfl4R)!gm36)9P0dW!<8nxSn)Sha9{tH)WcXS* zf}O8jl00sh>Fu&P9bib8`pn^M5FD}V1s(7|JyTfWE$gZ?Sn>7$sb{d#ssquDEPh!A zDVp`bh$fNPIa*=F7hsYi#rt32mgv4+8Rr^zWOq69b#H9dQ|7M@TNR7>qltr5v1SjK z`yOHCl&N=pXZR@jbAdtf zd>h{QqE(4yTpP-&@K_>>7V5PDmoxU;{KQ_fO)Wx!lKiqXn-5W5$ae8?>TOWXEu~$_ z+e)0GKS+2)j9^X->%;w7VV*ZIGkd?yGi(+ouUW;P1pF=8#GA!gB~9R3a(p=oVh1NR zw*Xgj3<>twQ_hnx2P_cu_C(P^u*&9NbQ`q13FTIEC!4K_ej-I;Gwhy~1A2TZ_AEz> z6=H$$IC=}M4{b+xqEkKHkuOM=%?YFqZg1Q}K+-=Zd%Rep7CT|*#go}$Y_6~{yBTHi zZ^sRyqj@o*s}LaB8At{>qbcgUYlHA!g&uhVtn!-ZF4 z@nQbmBr+dDqndwWdfcqeM6m0xi9geEl7JQlFzPm8PjXAypcS8(z=k2MvDFdL21^)G@x?3 z&+x|7{J;iYAjjk`CJuocJm{79?=W9 z?}?8a9}^0^%H1B{h;6iLLw_Kr%;zOH)q}D+v7_=I_@+=QKTt>rMo6WpV|gNR;x;+g zS!lbFz#sEoy8XtQ2-K<{Wuc$VHWDZEDCsYeus8vB5Iolvk?!*2)Tz5k+}DbTZ3_v5 z)NZ2>zFGLe?G|Ro6IdNVr(@qt_2Sm*#ZszhdU+3I7G#<~k+$(J8@{Lf$IZ}uj;bM6 zDjo*B#_maa+zz6L1<_WgkUsn$(^heG^DOBUVQ<}QXq8}mm4CriUV3Rn3POA;j*5!L zyELHz%@{0S?WRY`!hfyKBV>Z7eq^@D`pvslyesE1%RzT4Z!qVYW@ACguI0*(LhY6q z`E>F=zxR>^+DMo0LIcBSX~#Rw)~RERcZ$~Vb{d??>zM|viLxbUvw9|#lvt&}Xsw&y zO8;Zb^s5mEGnFn61v++w90 zk$AoDUj8~kfeUxICj(wR13Q7?@|d2KF{cJG77EVDUCpSU4`6 zF01vm;T;owabXg2{>s%BST4R*zDskV&JS}^B~@{$d*zqQ!uJMCgN$e6Y(@8Vq2Ymo za^>OmKY4qk4la9$4FY(z8)k`r;=?t$S+zh^#kU-!pt7_&Z&xbK6j~4xGgg15Ffv4= zu^|&)<%$gILq~53#E`FAA%NK`{>neL$zCEe=Um z{iK_{aQQ~2uj5v60ekT(=CIG{!Yiwq#Q4C@DQjQ`<)1SLG8=c-8Sb!Lx5sKTST{oE zDetl?yi#QA0N626#NzN)o#54hO}x1k$KWv5`O@6s#-in>nb6?w<@ydt8~sqT8R7?@ zP+W&(UTdWxP^DwKunanDF@gI69>pcfJ9!G0Pstu`Yo5qBoj98!)^*~qqM7O_d}%OU z{tip>nl33s%N%nB_mQU-8@R!UD|c+!1L+0k5wlLRJ#S92zvyVneC=bQb@WUX#+L`L zmoMi2@%$=oCGs4}f_2!CMFBB@dJ`384w|RTMAIwP#oQ)?S|Ld8)OyHlw+$$7h))NP zl`(|ro-f6tc)uM%el@|j&=TR;Vj{A%$8?QpZ=w|2pButt-J67w~Gl2sqgKD$B1hyzyGj&=P_!jYV1fMxR_y@_wQz3|xlIo(s&1rR23qaeQM@o-@_7Q!? z7%+On3+)L|<$gdp6?|fsA#sJauaxm4p&>S@F@^{wji~j(g=ry`6R>}F?kefQtRh&& zVW@t?AH61-;B7H&Cum{nT8RsXgiyxK`C+@mUcuDTOjZ{jPa zgkRNLNCP&+ss==Wd);s{?U3Cyp@}2 z=7k^Cp$c@v4%M>ZbXljgPN=YZA>6>TSyfDY#zzz)eU+KFGa9?cWGfSnx4GozMV@K+ zn@U1=lhfyJnJ3C0uD8Rro&g zaeV`MOVInO36w|P>q{(YO)l>GaSVg?Bt;AB*z#CWEN5z=b#DcYoB?;7p`A|XZ*HSU zM4qeL%9s`Os-lxQ$$N|GF3ZJbk9LSnvrd+4falAv35UU0h2wiR0v9tP+6#b+1ZGnL zV2G@&9Ss}}8Y-u7mU(YAc5sX?gk}JAvaXSt!N)6t1ahdBbhmppHalZ=TL4N*h-!2~ z?nhFpZy|ew4wpqE^SvXBYvAWDmFg4lQR_$2V{q?^O8#BApR}*bUa&1=R_j*2M?ye@ zJ8wqho~j4L=b*OI6#SicjG-4F>vB-_3bVDDC!K&Mt$4@Zgw&FBolIFu#^e@}X&6wK!PPHN- zpl(2ZC^D`xSsD~nYJMTQ?Y&)}C?H&(D$95qZF0oVh?y(Xc-hz-QeKC)_(sOO<|6(2 zgw1vK8kfk#ij#_8L6zoc>22>6-6hc#mv>4l{u3LH80XGgDd8=~j2FuD=4bra|2+S7 z*7~|`QgcqB`ejj4o(b-z%q+N&yMubOXx`4{^g#*~xP*C+ZsmL$h-3MlJDA;7c)UM5 z_i)kU+LZie$~e_Ql8EXIRTbsa_U5Eg_R>3JLx=g@GdEHg7g;ATd||DlZdv=hzgOFk04@!k6e^Of_XEIyxYT_7_?2)XV$|?>JeT9;sk= z7w)Z*i7I-so=8e$K<-k}e)i}50>Sgl2+||I_4bEkDmU8yFl_@K?^MLxi7q;koVM8b zZcM;CP?@n;Ua% z;qI?}ui8JQrF3m8U64`Q5-Yl%`Mhp8{*#kaF+M#n-^O@pTW#SSP2vVW$_A;}@esX@ z7k>z){LOG{l~Ml;|9GF!{$_s`F&HEBoEbvqv;uN^4$HCd(l&sdMTzt~2K-B(?eGsM zXN3=16`dlnTM+W!!Yign)K%oALYx*ne72Qz3iUvmnQ@SA8+DOo$!PHlVjp9rI!HOK zz|I4$q|2<*rk6!ltPe&qIh(yfU`=Ud4}0OXvB2m(m2@TmMU7`p;*9a_XZ^!5Icx(S zgPR7d3+Ca5#yAp+{V}{Kyn`k2ZjslchpCa2e$+d)jTVgzL`E_uBR;+*(7oBet)$00cO~zac7(2=fU4pWY|;<;cXCKknKXCz$YCP%ovqVpIRd}+6o#3bZGW0Q z72B|{CWl`!x%PS9+>+Z`G+$}V#kHhmx;sUT!t3hIDY4`MdFvJx^_2MS`qhj%{P*_t zEHf_a{hEEPQD5tpySJ9FIh^;Paxr$LAg=^194vG;JW1{&+iE1E|7mRU5*q-_HUECq#X=iWb?NeCpP~js%H|%*O;xUsh8`xd zv1c(qb4xm|a#o~QRZ=;Dnf5AA4w5ZE7jrJCa4Br1789?lMFf!Ut%LAWdr$Etcwn|YqX)a2%g&6#u>9+>2e37Tu^~n1JMy2kMd&%& zC+lqV3M;Xy731eeYc<%+g10;|+FD4VpFk6fzU&3j`4oQaROAWGE%+sJnEq?+D&!FJ zyLAro9Pq7dLk`h{G?@sAF_8-)s~G!fhu{~?f{aplkma-^9&Toj4$g!d*iSuf!RLX; z!>YO9$OlEVsReHkUJV;odXRb z^UJiH4n?Ojk)x2iV1*p2lt%u<$rkI(KPl z8^Dd?ZHf}$h<*y%4b*CAWM806*}g{u9Fg6R{>+&q85ww-lOvq${s)}MeQ2Enp2WDN zVSro3DaAOzqI5qx8yIKWSX9COr5EoR4Opm8MUw$o{vj|McrO{@ex0M|Ul~^A;Ovs; z>_d%HmSBeg-fCZLJm-#f zrC=4fkpG=O9SmWw=1l>Ub8m2`gM~>m2}e-2H4IMx_icEJDZrPmztKmK|;!yniZj{-cK4I#)&Lh9OwFtPtrbQWw;t!*2& zUUl2u(%m2(Qi61M4>L@6$LclRbb}(G*tt#Y?(XicZRf}L8=hmub6@9uUYA`EbOAQ3 z{+Q}#Q@47%YGT8`($C7db#i(?zQ{VRECl13>eC;g=M8gW#-j0BYrrz(wd#(G1sT96 z)Gt+4cA@G3rL6s-lsXimUZUG#^^H*JPV{n}eL5RWH1CPtfgClY1n3c|X27KbNyXpQ zy;i>K4_BQ~PU?9gd52Hz`bz7=rnhY<%|$btNa>EqvAP-2I8tod7QjMmblxug$S~!A z(XDwTX&qwIaGqi(D6YFq!)xwYpEDj6jWWMt7pBZLKHz?dT&6!G*zen+-6Ou|cv`(( zPBfSsrObnHZ9SV^#XnFh;ry;CwrF_$g>@#2fRcRB&@4)er07~CxxS5><+4_%Nvdst zz5Z$aO<^x|xc0qB$Dd*yE#{Ecnw=$t!v7g#q>SVeJwaxTbk~CNGrlJE3LwBKNqGs} zt+%Nw1j@k|RsiVYxtdo3SBPJXm%(WTG{bnXBI%_r5!@5;OannKzKH4|)aN8qPJ;b) z`L(l@BS3e{QoN7LFez|V!R zt7{kIx6s=DiPcISYz^SVmWi84+`pNx>S6xvc)C?Dd>A4yA(C-kPI{J1;1H^*1g62k zodE)(;6ocO%%z4m9}{Jierp^dCS>aByd<^po|bg!qmWW#sXW7Lv5u&C;$T$s!49aa zeVe>pklZ?5{vSotL{+4fa_cuLwq?$?egp#J?wdV<6Cn|XT#)0Hsg**04p&sY&|hd& zn;1R7-_(2`)so*eMxk*fx9d#Emy9iz8_4dsCX)wZ4VkB>A#|@Y%>a_+I8FH(i2%V? zNPCAL*z`d=jVx`*)Hsw-YnQ2QGt$lPRW@-o#u%kr$QWHS9_mF?f5u`R6O{xs1Dw{f z-g1_AtjWX7B#*Dx8PAjqv)(dHNdIgO&?Uur8;lxt$O!E{)iE!bx)}fM$i<&wVZdO^ z!lp)Eb7NP-s+wDM@9Hv&k6Jw}+tPQLK$Ao4Tm2h-OYrp}Y3WQaM0HDrI@aMz>^A^3 zZ|!vB6*hXc_184k37UiFvF?pMrl*@~f)8mP>SueQDo}mMaXlV{cM4w( zWD%d!Gy5KqqbjR<_|)Zjwq55LHc30%-m>;aahh&$tpR)Mx&=nJ{pKX`4Lb+jH+i*C zv?_?9*p3QQ>ue6juY@T1EkT+`0PS-~oGz zW;}FB5VPV73{dwkYlbQ1?>lF~nK^G-`EdBsw~hb8u~9Q>-@z3Dug#NSm3x!k3EpeJ zO`Q+_ApEZxv>5HE@RX8nup2zYH;gxR@o)lpHi z{a4i`gYwih|1~hIr;@T)aKRN{-xsjADZyU8`fCWjet)^u@ZN`s6C2% zIC!g~&Aqumhj#PC?X-2J^a zT4{ACR$jwe`JT)DTCPxjcOGvVEcb15X&9BWpsC9GYiUGXzj;FBR?A33V89ncg;wM- zN^?`S(*aPba9{dAo39b+mA}?MuNlaHuzDwTV(P|zCwhAn<`*}sdN*;Tu^rv(dF>%P+k}Gud{m8- z|33WtFgZTHGAk!DF*z+^*oc3`To*TsN#3~at~J4udU+k&R@IoBmY)v z>xv*@NNinKr077%sn(eixzCRJW3p@)%uG}i*lyQ(f+U*L`tOplm6@w=N$~v2ezA03 zDr5O^>AhHS#{=2oTYlV&hv6tNcT*H9S=M`-WIv;7eTjhJUbX`x$BmT2E!K@wLpac-Q~lbRvIp zkH|PbbzsT!sa;70necm_LlBo)DZPCN{8v7*ma4eQuvU+dB@`^A0)pa-W zXD`2Q)uvAFbT$2sjclP9@Q_>eD|Al2Y34KPd#*w23`2uw?rG^B_9K2<&3Yb5253GNSioAIcm;S{$cso=+mNSz*HYpRs-e^(yE5|pS5%% zj!bHMNe+fjYwu7W!A;^E#sDlMu4h|eN_GZsIb0l_D*OiL`lLwv;I!T6DsJeFtDh2v z7@Jlesa@-=5mU(OPars{0<9u`@-JFA`Bhj%W%A#}qyKJz4h&;`5D@`{Ev0|QmW zy5^R6Vv?1qE+BiFBZTfWKjUP=b0$gmEb|ZNv}W64p+KT4_5LVfWBYbW%DlV!SFNv% zZC~GG@)Yv+ELI|VQ{45jT%rMj~cH}?Mj`uz<{-X5Tv8i;)D)!3v z6@*@6lYx-CjH+BsO6zduw^J0&&xSeypVW6}j$vaK@2J~+vR>@HO?0ZevZ=i5kvkN#M4?{ZAXhef>m1f} zx~#W>eU`~>n9CKibFjPoIb2_!t>7GgW@UtEm2gISmt>_lATm$(LaOr`1we}6&8_r( zLUzwDX1|DBw~j3o=b<`of+Ugii|;8-tVj`t%1Y86iWzb^;+FKj;)v&c#ZVLBrU}#y zP~dVV{a+}t){WT@r6GyzRw$c&kGm17DX-zbgw$!_qI76ogh28My63rH{uG|Ep`H9v z^I+LT+62u!%SFaqbtLqc<)O-9-Q`p&*<}{qF}x*pnJ^#Q6){`lf}Zp2lgA(@)^lp0 zTDa>aWwYhJc@OP^c@FrE@!c5Ce9unOmzG}Pp439Aa|MXHHT&`HMN_T6mVj#?AjjEF6oTA$9lsJBrsUJa)|OdNWDOhmiIGO7PAy9*j-6afI;5=(2dYUQIIvCK9|3arJt|_GMRPZ7= zxA!LZ65!DU@}~k?4OtKmoRzE-Lf|-xP;?K>F7%WT!QQ1&vT@MxklpgP5Z%2BoC4ih zQO9vqWi&={rOJnDf8G&gu2?6SkFO^;2%GTn1$=P=#!uWWoq=8r5z6gRKlfsQhDdu< ztYcI{cOoxIQb;F|qIW{AH0i=uSR^u$z2j0y+|k@4{(?zxJa=+osJ znCqHL>j`YT#(ZTBM^*nn;Wh3btFdMhf0cQBeu7YCKoj1JjoQZ{W2JZ1Htrb;BJR9= zGUM{Hg>}1GnVn1U9qjFGT>=^O7w|r?oB4zLANY{-KSDng%CpG{f%*h_@s6;EXiXpj-<8I?PC$+- zJX+r?TzDE|uR_7U5A9K$6}oVK00AOO)eT^ccx!eG7%QC>w*&kjvjk>97ZpCP3*jfg z&z5ttV0pAbB3m~!2Q|v=6=|F~@@~a}su_xCAT0ZTieJF~xDwzBm=ov>J_0|xdcn3( zfAa=O3wB2jNS(1=K%I0G#%52EC1L+mrpSk({aNMmr)XO2Q^gbH!=ks~Y^2UL3=$#k zP5Z{Hu1*wHVl? z6j_=z?cdaT z;>@R1C#X}f%_<*yjA)0lpIJejrSxJeivQxfxT{ky;6?l&iznkFMNGf**afMb(^c${ z!rt@(-_OlP*Wv}d{lY8QD}g;F5;F3zI#w2NZXsXvhwr->(C?4C2nN=p=}5 z_<>|0D7+h)i!|_`zz-2sO(VPosVG_iHy{xyEO;4W9~B1gLB{#j!++t=&WT7Re9zzp z&(&InNVSie&-`%ckj9bp0%})#7BZn)l~3|}XuUEt@+tHjkMR@0X;`o`0X~J=>0xM| zl?|1Ee=W|u2Jo`UK*|8O84eWO0e9=(Cgb1>?d-^nkiR-?$keo18SN~Av#=oD4=}G~ z7I+1WYg)jY1kS17K|Bw9tDROr1;?7JljnkIhSiZQuvh!iFCPk2|KqHKUgI{p7T{2~ z5@Z7ZcHHK60NU0*ViiDaT2L?n5Y%att^xb-AWOyGnAcH? zBzsJmG$rGhaX4dLWrBVO>t0Tcj=^sz?aEfC-b_I$>>UBKG zPn4~tLVOyoDT7+eRHJ8NHa zK=s(_1C92i7lq;V|D#+@9^tS`=lsT0@m(NzBbV$la{O z#y;wi>Wm>3?AL;awJcU-YJg=Cr#sqe{J{4Lg!C(g_dI56X_A}v)6|KIiQ=z~4_FVF zt@ZCXHH3q;uek3Esw`LewJDcOTZAdmMFz9jEs(FPkve)rYEtC6_AFHr&@0YpuoHe~ zJgkcqy&#OR=83Q8Uo;m;E~OBR+0y&b)AXtGF@eR}C5m{De03VI!hW}s1x*+A*R2GG zF=DJY076xb`8%*BKf*Ky_?`UMFasAL;1bdFS_u0^ z-)Y&4ovVCddW0$Rju^gRQ<7WtlhD}cL>5~AQEA_RjoTo zk2hb|jjxm#e`_b?6&q%#pCw1>f>nnWQ#2Ii>OfCbH{R}{RSs<^IuNlslrD_4T(C0f zW6kasx5{W^ibQLv2j|298vXR=x0Oz)|IR2QB7?1qnV{lAEs5 z4w$+c$5wnc?5u0cy`kG_xt4TEbKT^yc)Z$K4=?(nRBK*)wBvJCIS&2kCF~X}u7^{x zktpr%B_PEm9al-jjHj(PDb-8TntJG(unYCEtcSjzEhl(1mvhEcQJn1qnu*Y4pR@LOOm6?VDW>VHc1+G;fi6(gAb z-Qi4Ab!&%;y|8F)>srpijEbfKo-Y1Ry-L6hJ7Ucgp??0R36f2&1l>9L4BM~joq(RP ztrHOVRZnfZE(|ML*fLd=mj0{JK`e>iS~pj+H>}4pT;}K(X1FU~=Gv$|0>s)Cs;+=9 z8KE7+WQPbHtxS1J;ku>`^3&<2`csOmc(L`8;%yjYx(W38h3T(=bk{-6T`0kBKs6n9 zpr35Jilh>vTGEi5!lK4HBs@K)ZZk3?KG<>?{uM?wUV?x5Me1H5V_olRW+C(K-YB_< zADz|uLfu>SUo%$g;AkFj0<4BeFX**oJe z(3y1CRuAL8s?AMn4TlP@*1y-&(vH?n)ZU9bX7<)pgv~URt6uqqXq8H{n~mxY?rEQc z1L$SiyOy51%~dO#9BPvbPSqD%BGNWntBkkfj+jLH)-VtKI<3GjOY=!haSK*)lqL3J z+!^CmuU&JpVqP)0N>FtzE2Q@kaWL`1vJd3*QM8Ue`rN?KmW8ZN&u#S*Ub^EC^D$Av z!bW|bEWdi@YAfkLvF}O;@`J2VD=0L-#KG<|#)c?f`#5%WU}ck;m+JYe_NTDKiE5%s zR@iv!X34)123Or>I2B#)6EgQ?9$CJhElo6Z?%>j+%3CFTO(3gry6}pZzqLaW<8;L6 zCA(p>Q9A+<5V$Mn@d}E-6?^!COxm)Uf`P=`4oA^HQ4!5Q#C3tJ`fbuEuR=?ue7N&e z!%W3fTRY86@Cd=NuTCN@3hjxN+Go0V^++!zPH)>OYlw1g>XSo(%sNn^_7aQ7sMX^=dR_!;_q~ zx*Qm@J*Qd$zpq-cf{e=xUoM-8$7a0m5MdV*?zc2xnUOymn$QPITx~wAPKkV5e_G`mNVQy3dU)+I+`<<- z-`7sX3hkCCSD|oKanBrcZ{ek`4JJ*-!?wSM2ML#ka-m_7|JB=T0|RB25H;>~(vYQm zKp!HF;9L5Oylh4h=^q^8c{HsT9IcUm@dGW};vs zM;3KkTq>Y?^W@_skGAnE={0$MP&J9Nv*CVCJbgC4mTJQk@qRLE9N}J~%@;*hdNSqWACaq$b;(Vn^G1#-{YGgZswjmUT6E5#U252Zw5stBfk0UXn9 z*hhgQkuv@Z5c3`;Aws1aV++^dhnF>%Cg4k~RTX=%18{e>FBZdYs5yGXOm-im~*f0BR6G|*jIY%wNTqRL(LSE2fPfxcQ!AxncP)gZ_q(Y8!*VuiNp7BjM1Q_m`8k{=_xNnSmnb522I-*waU;&00ZfVO;J=Wxam!l{;)(uri3 z28WcB^g|YP#AMDk{kkEX@VRR3>f7`QC2QM%Fn(7A8O5v*gf1YG^Op1HjdXc7=y`h?!+4An9 za88nfkd(mZ0Rf@MMK3^G50z{!26*H5)=xG#v_wG;G@YU21nX3p9t_DV?E3QCrEZ;5>l-T)+A5X3gt%s^$c>cKkX6H=tf&pk z-^z$EFGw_S#_L~(+!c6ej2<--m2%W_Vo7n|VExQ;pvO%)uS(t(AzVf@x4Dx(lV3M2 z$SGm}gFXYv0@Q65)GD3VS25lK?Uft?u57x{5JLWMyvu2uivi7jAA=^28uAXBDjR>X* zUgypd*^363OqP^N27+MOec5q0Phd6R+P0Bq5xbZQ7)r@JIE_V-eCPIaa;0YpFpni$ zo0BHkD({HL#BPetpit>!V7J>M#U1c#D}jQ*3yd>qt#Ar7kI@4ca&)Y1a8}hi&SyA1 zdl{bx7sXE&&4Fn_!=2^u|X8UXUbVGu>k3jp)o~4vA?U)Q6F`TJnJs>MPS))=NgP;a+6~YlnVP zmYFNkM#NPMYSe_l4dRtbmRo{+4p!Q9f|%bLsjIJ9+dM|Gh4QumV5QR&YY$YcV&1d- zFKZHK(6}USBLAdL6lf7UsZqCN*(RLVR9vlJ&eqK(z35^nd?;RRUzsOpy5_WsFs66? zvdmo^8_WCHL;OUeS75nlP@CYEE~``))vcEiO0?>9+3kucG6y+KkT5)ktZk>uHUs0S zz8Uj?&x~Es&%xguaex;bBdBv8Kn_ZMYn#Ol#3ib938CgcsiQQEYM>{}>=`ztU*)!} zed#*IVlEo324DdrU^Mtk-0gf0-Xiz2N`<2tkCZb-Q&`6&HsTqac3OeNjYlnABrOoc zr+t;J5rss%D;y=s{!f4#GK=$j=nyd3lEB+4^Y4~_hyHVM2BY9SlLOmcm4v+D)GL1oCvtx&W#nGI2)|zRS2!CF zOwAR&#ab5INj{^0{b6}HTHz7~tU$IHOPFU(0OHQhGx7xmoHGXdnxDK9-O3`GV6N6J z<$-9DdS%oTiMPthpCN0;O)e>b6Z+V2fN`)<3|m=+^&9wu?3=av8Wxvt@hyBZbVlb= z*ur8xGpb!&ryb#6D4VKMxD+Y&U{4Ks^dFrr@Iq#5TR%URZQHzx^og^(fiiT3YOZxi zaT4q?-Ha*~PtmLWeWhzP^IeDv8opco9%Yp%6&M;?{)e88BNIC(ja7Yz&R6e{4?xdrXlxBUi8`Ke0*m&YZ*9#y|wB;u#DT8`yY6m-zkI`la13h zgvH3q)O9|wiZ@EYsSaF@kr1X}d&@gfps=~=F|Aru+>lr9DR!;}vaU(o&C8bbO4)`Z zVN+x`wasXakZ+O?wek%n!@}YOH>*; z{{_8O&Js-Xbi@ye0sBF`R_-o4tQt?-&Pi1EG4_zsl)oMUNs@p9hN*a`S( zp>xm)Y*4K748odZ3mnE_7R4Ru1MD3ykX?$c<+l*4uu8$lqEXmXQAS!CdQrSHW;NO; zjSOl-b+Rj-QK&`H=#Y-C2kFu=sDreVWk!C;NY(AgG5M^*1f*U*n0filhMxQvV72Z?N*_1`(?#pRUFyN0h0siu zmuDrk5;r*ff=kfXqT|574W}4d;99+J)ehif?WlY!u+?lzsRB+J=SP=<3w2wAhJj{H zzGop6p?vE&6CR1J;EL)hN^Hn$tvAcLWh{%J>SXp7^C(hq;!dNSaya6g{t-j%FW04W zq^>tKrvyiATh%;i31`3>NT?#uFyALlEPZU!k&kAl8J%c#i9-E)CK$0v7shG!S8I;* zZ@3Nh28wI!{!uNKJF>r+{!o#ceB-qt=0DBQ!CaelSf97!owlcefWc5V(wD8}m$%?uDWy(2# zpBsorftB|E!%(P}`B=LPOeYo(@eCV^sp=QtyG(D@1IT8{YvltdKm6%XH)4-}8Ey;x za%;xeaEW~kdK3PaS)x(lAFD5`590faUaPL*#TkRjo7mMQb@*$nD0~Y(1%2wz#u8E7 zZ8JKEF0kjJ*~mu5TXl#qq{&|*!bhv8hwHIqQ#eN5(!Mtnkw)+<^FMHNHw(Lo6Ytyr;*yJ}2-Nbz{bL$)^)L^nj$4K)oG(O{0 zI*-&B3Xa)~(fpED*EqB;tpdv!&Cx{nT%X2yH6N1u>P}N{Mt`;zFWh(sH)fFJd6cQP%IQtI=D{%eg7R1;!=(m)_mF z7oxS!y_&Vse%oQH6^f0dQH}Fh+e<_1Q#n~VvucaEUz5&QqWIgQNv3f^b8vwEidf^l zTH7mabH1&vm0!0dDmR1kiGun<;i8g_wLPNb>^94OaaB^0>0gOF+R3m?x-odNu2w$6 zd#y&JAi0cDbpQ`-x8skY((3oMFXeqDQPxyNcy@?cq}Y-4KcfWjT>Mba1vUo#)$+kS z?~Q5$^gkCj<#A}A?Qc93=2v6Z1IUZwhn668Sk?;@1-Z9$uYra1FJ7(_BT&$FjR|3U z?^bO=*e*%R83@fT1RFpqt352|)bESU=3KQhtKDc;9aswLTa?!pv$d;~!-D$NSMVtB z0o6ZPoeLEQ(K~izEEshnJh99%UMl98RvNx#!G=eA$j_R2A zX(dz1b5Y@=@u_wO^d@?ww7$2j=zDI~@`f`1lqX&Nm9=q6?KGlGSV!}H@;86i1~0~V z_ev{+ljcxi928tyFjPq!0Fb#$1j$&RtqKdKI3 z?|1JtU*cCeoHHyHhc8^Loh+YK!dTW*vn{8h^Ec&bihcVGdT8v9=Bv!TVHFJ|4$D8* zdY_-}e$7-ON_F(seUnNS9#ju)PnV4AYGPc;{;y*c%aFXG)t^%u%Way@%L((ZJ1F4! zM_P!Yt?s{!W2BQD<=P8!gH537Bk--buj3T&d3Ix4uD~U^qS-9u$2vB^qBCK$YSScn z{^90n(jOl4^>^g!9CvFj0%Ds6l?~)ooY)}omQ24Zs=8$ zT=~mCL2tr;dk8iE;xnCyDlaV1R)vp3X=~xKNBN$e0hPatT}&$C)bg2N8riSvC$pO- zBt0uV%zR0Gmm0xsWVuC55w`MndySF)5I=!IG$wP0HOA zu(BNgS-6UnjVC09(o9%gSRTg?z2kXO_yTq48Ax@v3L12oKh4)v=knT39%6ZMj6p;` zQ(>b!TsV&yubsN|E_I!{Ak2X+RBAjA32E5!<%g4-TQ}Ap%rG}QsqAyp8!*wsqA9gE z$xF(oTS5xDt80v=rAo?A-MP^3tf%T%o`b?+_>1M9N!%W^J|tby^;NknC$+sy#4WUM zK2r0nETSQ_pop;A+PQQIrP}y7^dyU~{o%P&utxcF*%jh{`9XD;$+Y5dWis_yxvOX{ zLrNH3!()4q-sbo4rcl2p`U>4xAt9cUM&4ETQbmzuT(@VHU&WK!6~xJepLjye{hATN zNa`Ny2+~%@AY)wqIQD0@f5IVt4G#-fn*PYiv&*;YIlxQ2bQ)`3+E5HS|^vBS8RZ1S5Sbt zTvPS`02yIN%`MuxQCbb_RGmcp?7_Bz6}{F2T;NZh7~VbiIN2BpMwk55 zKV(0t_^K0DEhhSD$7VND)~h??*-WO&FX$K#!MC^r;_aAYb9J_=$zPwIzp=pqXe{1d zdzYPFe%^vtZmIS%d1cQdU)5iVpU)W7a)VZK|5LqnhsEi5e$$;SdY46aGH+%33Se5% zV2gltsq9&!M`b3Vr1oXjd9uB^Kkf#@-H;h1=i-{n?x^UyGN-YW5tLt`ZD5TmE>O6# zUzSI)Msc4JW>ruGBS}9q2SjPKF|oOl!>r^*V!4U;!Q}?nBk`<%N?B1s*HqK45v=mD z%zsELn3LFPl#S)B+)eZonPUaX>`^g~#M60y6k*?DfEsEUQF$5u(pzJ2a@E%DT z$e#p-wC}X7!h@x^nXAM>>DxJ%B>Q6i5d_Mr173+ADg0eM%esmeG9SE@@KW|l zOeS5CTd9vIrxnhnbLd|c`_t#LDF8FNm;Vpw5^zZL8T{tDSUwiIYqpdfMIU21l^@Yt zA_?&ybS?ECvOh{GDW(}whqP9fC-NdXhc_D88L&*`ju>1sWelX;G*I$KPeTADu- zCW2a9ODQB>*073qQOniIY4%Jvm3#CIu7`3$fL;h<4_(Wp&(Sr;@5R=-waDeNAGOnj zQ>xM|zU0HiZ6?>^MU*Ooed-!UzHY(d6C6-8BS0v4r~K?nlY-b$BU}WuH6q2O-&;Zi z*2>~WF*&9BVx79^Jh{%&o=T$k7&kB0vtR4>2c!xx^}nussVlxoKZgHrJ_4l)?iTZS z&qVI!nWXb#Gr_SiQ98b6Y;wPBEp2Y3Tp?l+e6N8j{!}LvzARa)-O0(U_#YU=y+QEh zKH)P-Da6mhNtEh>CeazXKG{*Sopmj8$Ry0m@jVE*h#Z`@L)&Bp8ju-CRw&-HCs7}9 z?sD!jqKRX8ds)r-HwAk+zmwWUZ~0inb!m#o!*_%HwRF1EQ*ehOMjcG6W8oJHEZLEApGplY!gd2<30`XNkY8mlh{= zX02nu(!T^>)=}AsJT5m<-n!Jlf3E-{!bGP5wy#q99F#i;01Kg3{0HeJOp&gqRKUH= z)3k%|_9_xH1m2u`hJ7qK=dHHn+K+wra8#|3Y&=e`sP6Pw{om48J;Fg4+d#Z!_^Qks4; zaEgslTp3O~qd%Opow-9dJu#8Kpbj z#*+i;C>6)4?=07HN*QlVDT$*w!TN*Y8T^gfP~R{yN43n^AYX*ffiB8{{BGeW#qeT~ z+OF7Go?T`c%7L7-?7;Y%Dee- z85GuVKb0hk4)Hf7Kpb8AL0lO!O}-NF z!2i-03DY6}*mdF(2o2sOwL*8i2=X6roFf3z;Z@R2jO|JxyM$G*OdtZB z68uJy2hR&nP1_)F$M(l&ipsEHDhw=y(p8i|GZYF=Kuk?H=p)g5yQ5gAteAHa*h{ifr-6}_S>?~b zwY1J$S7lHuoc87TI0ydUrr+=JZRy9HISiGRXqyx)d zq_t|#SDlHg(M~4a3{BRg)9idssGC^rF8`?h@;NrERJ9VE>Z7$QV^!v9R#&#>ztDJ8 zUr1Z1ZYSHs%~B7inM2)G9G0)oE#)ijZ< zE0S-(MRIbC0;VfMLUP~+z}9Cwd>fqU@&HMIX4%n@J@7=57$iYp>2B~8bTMZ$G#vVw z%!2IUsWDDa7VH<|2DQMIKIfrNaJTCySO?#>>qI<}NyMLkoAO>M9oVYeki!FhDm{`H zg9~s)%vdlVdk``j+=rF=Y=xrGm#(v+cPPW|7`zR6LTpob82(o}S#eUInX?dZ)Xhu! z4rFWAM&AM&)%n5i!AYuFKAXUP{H3cCB*nJdJ%NCb!SC^6h zzjvvM5IM>Ok<5!`7>-kac%0JDVzoG?Yhk`>p^IjL#9A@d`m+?z|7tl}u{~X47FUm4 zvdJ{Mh8uC*Afx@WXq@gP^SZ|uEs1;4akcu7Xu`q`s#CK3@**>(dS-rti9|Y-_R1JV z!Iy;V-_ffhK%I$23V5&e;Wm0sQQr_ebNsAYDPh{UDEs6e%QhK)QtR^C4R-V$Y4Lg+ z=BxPQ+Mk@@2v5y%-tvIc>UN=z=R%cSeAUTMsgSL(F%8jTHDwcZH#sBoM(A9)J*nHZ z3H*fkR86elL-;FokZ5nf8da!drKgiJQMSy9fJ+n`Z60Cg!S$sg?RXI(SD}H#K<;oIAPWmYPI^Y8^~hnTTWA2X(Y6_#Fyypcq)gHz<)BJe^{W&a-mm^A zt`a+^{1je|{!~s1ScaD1>7D>`59@RKjci6=+72RXQQy4V9qK&CbVFN7;kAUHEq0|F z7TY$iuiPK(Qul{6%csg3MBU_?U}CWVyLbB2eEs~3T1e8CH>xeNgr0V{CAWNKLVlA6 zVO&&i{Z3L>(2Ls1RH_fbT+U>=stnt>jrIgxwD9W!mc~w&lM6QQt7=F~Yy3qlS#qQP zH#sUQtac?WCupt3o@w$aF}8Akx^CCo3RLz7HMb=Z3qGpe$sgp7ZOkFBNIg-%f%5?J|%L2Ay9rUXuK|1vDzm~lL#z#i%i3-?a(QC!bKY2u^SdRqldUJKVvu;J-FzEF1~To@#>e_LPanWjGl3 z$qiWke?s<-? zxbl5PE#id)Y591vriMz;6da|sksX(k+2iP6LM8m0TyKwKlAq#H%iOY07I)XB=ie;% z!ygpCuG%GhT``9gUjtSHl*{=qDUJ+P;$G%N4kdIRuSl@c{L~t_XICq$2yvH@sH~FRxNixpLH$Th( zIR8Vg<`!{x@$-t3_f10XN zt0X62EUQD>&YPEiU&g9tm6GMDxga505t%TZQVK+eEMZ*&=^l@SbZD^EBknCCHqK4j zfYdG1TNW54nZPAW-@;uxgO62XAoKQ!4w5%=bByv(}hKR`nG8FnH$JmbdECmUxjsO?B{f#yVAn$2xv)N5&@veOB?Cz&6(;U5{!`l$2v0mQ`s?7{E|_`YkEfTZbqPn?(vbYRT7#>Nlk0M=`%pjg5=PJdB;f!AAhv6>;!XKbUSiVU$cm@LVfz$v_^^096T2?+FC#pxnZ zh;l)WpEz2wsNk$5o_3&AA&oB^TSb+nXH2i@l`~`3GHevxi=J|y1K-`u;scP(;+SHF zBC*ez%@9u2X-bMwo5&B_ZR}Yh zZ*D>kq6?I?a&xrPSmR{o`&ijEuagqLY z<+tJhcy{%Zvg7>Pnp;&RH5%%3;@hGrOeachikj2KD2);eayUi)!zGo1f1N)l+NB0v zUg?MGiQvl0T+($OSUo^lMye%GrBe$tX{%V#$v;?1Zg7+nuTxOy_ewloe9~osyhGlq zIariUKMVMl%^32ZOt0L}K1Y-jLGGD?DvE@EB{_+)S@Wc@1n2wW$$Ri=OedEbaP!Mdar>L%!ak@H!HAgy1$Up? z9}?%Ep$UOjY?a6LFguoyO~YgM|^_Bk;7xc{N784 z$2A1z#?2=F9J(TCEIBWt-7N^dF(%n^F72NQHoI=4K1%UeUxxKVbSjGzmMwxFz^~7SJ=q-`sf(oMbm$Z^*(2_J(0z8x&pP!T)5g)oOr6Stf%M5-v&cXhRv~LrA4_rVpQ+V54 zFiTQztVze+Ll!Lk7jXcKLpa7RjNKg<6Q3KO9`a-2(?p{uJ|!~wxm_as1>EBRF0BhO zyln}p5*f9IgdN1}TIxhNf!~A`81G6_u z&wdQdNTP0SO7kJLt|>yVBE4LC3U`>iE2TQPh;cD`Ti9bpW}sP=8U41~o!C73RvUEU z*EIV6B`Jf{%Ud%M0;=B{8Hz*cU-|+UMA?$EJ7_si8`U4G<+cY*NB+Qxa^uIa*(Yr_ zB&=YC?z^Az9^>iOnA9h9=^8%jN1FAr?{V)@K;k5J)b0BSdmPJagI^Lp+%ME+HNh&V z%2GjGAHHJGCer%osZCyF`-HaNc2Pv|FBXw$A0Q10v8YA9Ug4JLeE}DJ1(@Ivnll|s zjo5Cv5vo)BWcMw?2MJ$pvL~jd*!&ht{su9<=mvCuKxzCTgepW9wmyAPc%e@-k{cy- z>O(zxW#s4IW{3~6$~3a8~SVN{LU}rv;63Ot^X+LLVFH(L{dO69hUBuunvhF67Bv^MpV}C- zJMI=$@3}D%PYtv`ll+Qu&kPAKrWEhmlNL`2+}MFKr)>D`A@(5o`I1D!0&-_mD)gEB zOW;JTf=%-nPVi-s?O93Bq0{Pi!Ay+3yM9C{>3cV7kV=~4Z+9^R)Q}}yd=rHnPN$x7 zJ?Hm;de`%@+jq3Zers%w&>Vtj2Lfox;h%4RpC*o;UgtzRnQ(l0INbui{nsga53)bZ zf)wv#@_V0jI>5!%hHM}F+-3(^8{V`30p;W9`fXDbT>R|10O~(eb}iRZYY=A^y3^oj zWvB)I*Whg5&+zBMN?hoK?8rvzEaHZk8~e$`i3E#nLJ}`|aGgInFcrD{JjDeWwy=$A zhYbkv#C#DI?6Va6W6TL>CGP$B5UV@5xx{DtKf;ft7`Ay5CR20PITNp@XRY|0{0q8y z(JvG`+~r^x(j{?`w=+tZ{GrnYbZ5$aD{IUt__cjX+=prJZTk`LjNGx#oKS|Qtk^{Q z8hdR~0y&vr6Qo4Ur4D-)rYEK?ak4>#_nBdc=v7;vVIN>B*ID5yIO`Q2 z#8vpKiz-MaA~x^=d=O*lc@L3={n*izz6xuwbVllMetWN>x8uLtI)OQkzqBq0#~=)? zzz{-+Rf{f=7Lmw-(XfA#c%JOkk4XKFF^I#YKFgod5hTOje$+3d=B?%E8>G|g%(0#1 z?^a~tTgZnNe@Rr30|Q*ysG<7sHx;k|{(eY9m;bI_})S?l&= zmr}o6A;z0ic#F3X%_(2{a=3e3!(5+m@;xbb3pnrjwjDa15gfF37o4pMJF;mD>sEB< zDhbOxVQ$HBW-Ve%e~PUm%Rkua&;jQ8@D01ZV){ngZu*9C zEWTt_J0m(}@zU*#pAqMOxkzuotKy3{ zUZY(}_FXkaYfRm-ltQaQTK^hDYr{HvO;S!rR5>H5zeamlpQ7%J`{>{@>b8XAJ6)-( zlE*i;Q`f<7tU60Qn7(3Z8#NV8`E`O?kL&mPnzTCpbEi&{E^(#xZqln{#{-4r%`ocD zf04sd&utWw73m?Xu8<#~ZY{k_3B~3tTunJj_|Y>2-vbM9`jxK zf4`%RcnUeXkxgn$vDzh4>R;-yr1I_*p2vU%PHJS!utJ8 z+*ty3$00nAaBt%tf;$nt`hDV;q%W4G5CN%R;W^Sv^84;*p~}OB4kPGC)E_Nn*hQ4~ z{c!9}iti3DTp4A-##lU_{ABfSgb4DLWgH@rJhtd#l8~%-KA!i|rOehom+moX2G9B0 z_t!o9vlxMjE$1>%gdx{9^Oi;DtuW(Y6Xq7>vme1ze*TG7hrH}GlKsr9(Z)UNrXS%D znO_wYvYU{3FbuvWky{bfxwe4wYrM;fM7A{L{l)LG+z}UlHZpC{DyQ!q4@>l)`u^eN=}=|7^v7vG=}ux7u0Mf(bW!@-Pk zJE`BYk8w9eaNrQ52%fyNhyDl=yct2?oeoON#)@``8AB{Onl$I zg*Ji6vvi~{PCK=Kj{Z;NQfM0s7lqsGNPURDx7MGUgr%0REe#=(Nr6L4WUmu;jh>{_*->|Ksof@Bjb!=ldW0$A=$%{K>yQ{p|BE zzWnOzZ@&HR`yYP%_fHFc{^i$&ixw|gx@`H1mA|c8y=LvY^&2*B+Pr1!w(UE1?%KU) z@4o#94jwWyx3ILbwz0LdcW`uac5!uc_we-c_VM-e4+snj4hanlkBE$lj){$nPe@Ek zPJzKw5ozg26dHrY;R!?%nL?$}8B7*C13G&=lb@BHlbe?>C@2&biNwW{5~)mHTBcBz ztJE5;PG3=3Rb6AKtuxk}8XB9LTUy)NJ370%dwTo&2L^|RM@GlSCk{^@IXX3c?D&b9 zlc!FfnLT^%{DrxTmo8tqdhPm+o40P?xqI*agNKhEKY9A>`HPpYz%~h@Yp+~|+I#&5)Z$yW zZ{L9$eeeGL2T;2oJ%0S;$y2E9&tJTF`SR7f_Ji`>TR^F`{Y#ls=v{?l>LryUeMaqC zFkbFg-mi?T=~1QBcdF3Mttv`Klakd}U&b1)m9ZwOBfE=l(9BeAgCG204^Egx)K+gJ06x zQcqUc=S}F{%Les9Ree=4wcR!FhW1)aYeN;K$Dm~m>&uxF$};AZM9Q4WlW@=cU4ZJp z9PC5xscd1F_12VARW`Yk)z0#v8lQ@R`ta)BrbJ^?ExOH6N$IVC98@aCxJ*GmB9t?Z zWl7mHf0sWTEFE5z*@fKKSf^a6v?QOdwa7kFZz~-!xoL+w0`;v8iKbcux}&0!(x=ff zhf3A-F|m?`c(=Wxt1Ymq z-jvu_S%dD>Kn_YBW3WU+9}%i(<2g$DB&Upd^zQ=Hkb?qpD7OxNP+^{Qt?mHfTGxQ>!)TDPc@ z-YbASvLO$yjxog2GDrR{K(qZ12mOBkC#Ib-cY8L&XOFGJ^-gRTRChUR6b%t3sWG)h zQj2dF*U&l(tLWXikO#kl(Z|s<2UvR6;NJykw`~FCha5olZr`V^o5L@Ut&f{HyPVWG zzOzu(<*q4diZ+Ujh-P6ep{>wB>&UNRbY@pGx-+X7JsFkEUS=h$@9zS1Tekr1UOP~~ z#p6!@8vo;GmPB{WE~i$E?GsA7y;Vgmv4#RudP9C4p*63T)|O*nwDS$j4sH#zlU>c~ zVpg-e|1O|n^A=FO)#^#dYRB2>WlsH97RT3~SxJ|Vn-vuH`6==`;`P}r>4vOELVcEr z*1)T$H*t)N7Iq!8m08Pbqt~+A|1O|v;}+1k`rwtZg$GA2{p@bKwIoS-W*x0?(keH5 zI6%VdO;B>X(zTp+dP^P>$;%sxaMTHM)zcL3Poz zf0t)%zpR=*{l&75JKr7Dzg*~3d}n=p*2M!D<{4)i<#-5}bTlCwdl;6F8c!=sA43Td zqZm=@C{7F?A&6naq~erevgGe_V)D~}_uTwqb@j_1%%otsSI&d&QLO9MFw#X&4DMVQ z33)n}o_aEwm2v`}k#szbn{XV(i=W11#!X}Su~T?{%oH)}?*htpuK`l)LqOu{^-Sg( zb-TQ$> zkxo{SN{_rP?;QTf?p+S=a`>NP=v{w!*B{>XhyV9`<J4# z^c5T~4KEv%CRO!HQO2$ka$~!M-PTf+(cPHO?XS(&KLnDBHCL$gB#C^T$hWTC2&O z^?K@HB{ct6$~jZT#W^#AqT*9I`6VabmOmZj_8!m6ZNu;BY~fd`Y{|2=_WWt1n`olm zUop}Ur5kF6S9Uhy>P-f6MQ{ZUs`mMCoVbhw*2lOhn_{LoyQB6 zP1wB(YuHtTHR-I$hIgXbx$sE4k949pLebj+t7vM#n5rQMO$DQ0rlyY;DjAb}dB!o8 zEcXOUUVQv*0g9b#fZXyBD6@5cp|J|PUul_g&1gY5-(s0@s>?p__>gDOP+z#Br8T+Q zP>*iZ){r|Dkb@XngUBnVPjJduM`@+}X=-V~TLYB8JD355wfjr0W$1$%^W^IdX1KXd zbLQ-bb>@+A_rlJeFjZ}HQmxL2ZdO7L(n@-tP)8rihSp=)(E0;a!8<}$K)0yBC4V|7 zt=wMe%|jm69ZbC0asYj~{}AQuv^8sR)J@dT6{^)YB^i}Qbc+mf5Wk-PLw$k|twFG$ z^#`hoJ5DOkns{4)a>p7_YGDRc7OtT3V9;aJzPLMGdl8o=4q}d+ILK)mc9T?fgz1%y z$@MZLrlr_G=@9-g|L^1J83QaWYly1hjF2?^(YFPZzjiP;1DZoFz_2&qY3r`28^gPj zPMzA0?w>xuuN`!ksX8Jmq>Zq8krCS>G*H^1`F~dyH23Gep8Hp@`l))(07;iQ__hGm z_BEgka?tN{0;U~4_jTPR4`GJF=W~cqrwoUGr$2WQ%KEE!uvtqP>0Bm-*D*Sd&sV3myD*)IK|FG)Tl9 zNRVgrq?a?ha9UaiQBP?nSCZPO)r3}B4X%Y@z&5jLG0p6^22^ZV^Qw8prVEn`)(>9! z*{uHYGJoZb4JifZ_K|qUUAU~tkUaWmVi9F1t%Nv$mgD+yWtcwb*3e#(64^s3Pw%Fw z(z@wtL>E)@wt%|jD{c(^ux#|=x9b`o{cNpzwlY9?YkMN^B6M#184nuyL^uaOm6(N| zgy*GCqze$^=tB4yRtOu#7p066Mad&%ancC2IB}T%);#R|{-?vUpZ&Y#{PBD+>}q&g!sQrL?8PKZ z^c)Nqbpb($IFBTRpFAab(@5_iAHQqQ=X zG9UB>X&`H+I7Tp81e1>x;B`Wx`70Rv7uQ2iDF*{-EP zV!acHUF?C>#qUX}YwWEu57b44593s6Xx@>McpSy#P3>9ywiZrq zR})jv+dvf!m`JkWI=pH`kJk)o32)9H4puusv9mppIr}~-bBVdFbVFV&_oAOx2IU+r zjh2i`Vd{ZmY;})_THh(;G_~dO+M6@8dK%by1NF3`kvg(`Tu)GrmlIVZ3X*#GO#$-P zIY15)Cp#c_^nI#yioUIKNx!7=pq)|sXHS)f7mt@EmJiC1mAxe-V`nj|sjZOH(UhIp zSI^BIu49YF3{1u0av%I^*(kVA>19Vm71d0OrmeMjS*c3I~}oz?m9 zk7+|h6Y4m{uo9u~E5p}z$>@!3#q5s80$!gnCwI6iQ#h{W$R}m=vLj-8`Iv~V8hum# z+rhyOl-c_{Q#nN4(K#ZnRJf4OR(WQgs0`ejkol8N9k6PK}21#|9F`9qn*!oe5>s)Zp8sdP;Ah ziaC_6;Ei!g1&5iX@=3Z_Il&Mq$KMoCx&v~s*a_7Z+W@tt=gUfqu!ly=#9J-asH;5= zqzmJo^b<#;*aO1}qNXmGrm_iDS5}8_6;)BXbD?=R7n*a^Rk`Ej^5O|{nR1*gFCTkT z{&Xm_vH@Cik5@HjA&(l&;_r4^BCd@%V9w5X{Bn$g(Naw(TqlDZit5Qt`Ow^(SH&Qn6%S!_(l-W_ZC?sx z<~u>TnH8wo@A|4?uiyQiePNdlTST6iwLlD*$tEio{u02RB4&J9lf|CrfqI7uHu+2Pd4gXRM;1z$n8wk@mq1#yw~%8 zXy#8hF&e2xb~CAt(~7UnY{S;(v}0@Y-WX86Whp4%vke%w?tk2|!F+CVquKb}2Cw$p zTNA3z?Ip^l?K2C;0*bN+;^e$;ggT=Gr)Rd2s;Dg#1G$-A3!RH?#5J<(F%4W3%9PcB zGG#ZuDL}P(DbR1-3>w$&xHhtK$K<({W}Ua!`B&fEnk+xJpCmZu#LJurF31>8kTCnx zN@+dVa#A-zgYP8kupLxArk!4aYGYQVw`Ei#T6r~y*335sXf`YXwQJVi>s`8T`phru zyKgSDF+5!xRC;4air~CCfji^QW*iO8rcNXl5JwPV+z_e+J&2Pb2Z*I<{p2!4A5{U} zp;-Lqx(WluK*3vTU8;#{=D&}O}< z#F@wp>~ta@c?6z=m`u-yPhbQoNS^C{KWt)>Rco#^-Mf1`4o(qcruM0e*%>e zdji9aIgaN>A0zUjrpcL+)6jL*Q;e+ex8Q33=bsJDeEOy7@i)s=;Md(ku-1ZWT7L*RM<79K59Hvp zR7%h+?Ts0p_~iYj^PhgJ2H&j|fh9XL!DcHuIOK|d;q06C#3v-_K~QAOz3`ZbJF)R$ zw-OUWZo-m+Zl|9X{>r??ecPbB8Jf2Ng4D)%q0Zw*xFDt*Un=UkUQN)d%q>`pi zLTPgcuDqoKqibzP8(N#uwQs~bhd=Uqm&3ap{^!{FU(p{VuRkBGHh@A`Gaz-UJ}oxd4cv9EzM@ zzx#Iva@T;zr5^~g_yEo0ae$Zn^Dul&#Ldr$ZKk+3tL;s zl8zQaSywYo+f#?F=&8U}c587}oo@mtdF^1i0f?Lq0jZM{D0L2atZ<9Ht@KL2tn{bO zmW5{?mn8@%i__&JMMTYjfLYy>n_1t<%V}<77PPleio2VLie3|5*IxlGYpd`TJqki) z_nYvigV^!)yMHI3aPogr?ha!5+n_ZBhh+VglV4VihJhK!=#N~U~3OV+SyuuEe|2wAKsB^_!YVf9=YYyhl zG{@(T)*(tdbr`KlL8_~i&|AudoK9JOPM;`8I9QM+AI{;aN3uBD0X|3H_a^+egUtcx z-M>B1T6@2!v<-hy>yUJ-!3A}t)r)klGnhHuk;oq~!6mJgD6K(7sME-)&GKS)r%0I9 zmtRmYn4K>j=H;qKI9b|34qxB*Cj99jwLSopR`x(=<@KW4I_y!sUBaCfXl<;^3pYCu zMn2pfpV`v{lQbC8H5EEsZJCnXES57n^Cg+Rd~yB&r${oyEK(0M^ReJM!YK);o zM{E+5(>wTO+#a?(x1TN*4U(m*A&N*lKo#ox-UJ}~PY1c>exNqD1yyDqpx!*_ahrA2 zjee(u3zNP{(?`Ov{X;Rl#;zo>z9m&9uSeAgYY2^571TDiHlv%W&h8_qiUzPM!I+U941KLA2z;M9rWz!+Q``wnISH_(qW>5LWj2{ohbc{!H3z3Fz<4s3R zV`}m`k=5d^wCeJ%)ar^i0?4<%cGw71`}ctAJr*yUcG=(Q+v{>+%F21_oOQ^+c?WpY zX?Kc#Dj-Wb5-l$1gDJ8)&^k^FsfON2Gm=fL27EoY8B>?tf~qTQMb^n%(`uD%ZvrTV z9ApPJ0PXIbpl zLzj1XwcOYrS8>r2BR%QN%0CjAn>i9IW)Gyw={=Zoau-31?|@E7YhzTQTG`cUEnGut zb9ODPSx}eKBzhx&V$*`(>rv`9ZhFwYX7icjYuArl+F;dsZ@YiRt-XoTIZIsLNjDbv zXmB=jJYGm0Mo3=QAYl9O3RDmIb?w3LbqDay3|&eGbVFoEZbf3d;Ee#vjSE1<`V}u) zep_{MV#)Hcx#e5i?yj@1e6lr2c5{DH-kc4VbJ~+ZI~K+xO(y2z##0MXqbO0@Fs?Xt zh*$y}q{xy7=<=j~R%t>Xr!20IuZZo8`4m zYn^0Iwg>0kGE2<3+&AJ? z;}4%7o&5B}u3KOHQ1jxaHKkz1{(P{-G2_J{KguJgaO@rEUdS6EDT!Aj5wVx!km$SSuYM{6 zzpNF2ReL#Lmn{WYxnp0r`=>tk3r%Z8!uu-yjp!Nu_#btrKmJq!zFANR7Omle4Lc}czZnMD+rfdm zYaH!1!?+UN5Jp}xh*DM!q-(1C(<*EF5w(UsM3bR2y?NfebNC~xcRBno z%pvc;#)Y^0ALAl4>1II;=3*Y4KAVl>&t%dIrr4a~!}RRZ*W+S@Py~$&iGC0xuN-(i zE|A(9Xj~Zj5p{;1v?fD)`uzF5KNLV?Q{cK26uDUfv8Vg1V&9O5;-JKvMUm)B1&OrT zJY?of7P;Ukk1aXO;+Kum^3=m*p>B{+TseT1*Yu&4hCYc&oVO>-l2QYDa(rz|8KJIezWk@dN>F6K1A6yw4$2&yLAkTvGqqdP zJ+(LNx;hYdQ5DXZElcE|kfs+N5fP=Mc}#V0W@c48E8o~iD{eHB%35j&`Zhhjrd5bK)f%kK_F7At|sZaa|KLN)JpPC(`8`%LQ^d0*$5d{gg_xug%Jp4G;2XUY-z z<5Ik&uaKs0%jQ%!aC7PnOkq<6P1dTRsN0p~>JBNXx}%tEXcbXvo97D&BtGXtOU$5f` zn#);|wo-<&LrSmeETU9(7E%pu0$Od$eEHL%*k(KQ-u)0zL2D2?JMWiOj-ihXZt=J3 zd=M8+!T8hl@wD-()a>4Jv;+!SWe_r|bx=*GlAqTs<%-(G8Ks>@6hG4w1%kb}f(8*~Q4 zL7;`^|5a8VFY4@q?lrnZU2XGDJl7qXdZaCm+-FSAYOY8tt}e%_R5EgvRLnFA3;E4? z0zn%;SJKJJRdunmE4$eI>JE0Mp>@9e=}=<16*~Xm0MJ46{~Am8XC__#h3Ac$S%4=f@#U1oQMHjW8s*9Fa-9gVW zw9S`49L!b%srgpu?1BBD0-FEVnY%o0w(+^y?G!XO;v0HmG&FIrH=5Yenvhv-go~6_ zNM*4WUy)Z%t>cwuG%{t`t(20Yc0x&MC$6NblTcLMK`Jn`%@QT6sk~N?y~Bl^ELQ3y?q#V#uNN;AWuRw+GbjGk@NE!0t|;rPHNJ7pGIF ze7r}dg5ujoBXHIIv0O!GQejaGqBN@kt!35`t4Rii5mU`;NUIVw!z-mN$yK^mxVE+> zO*w!5a5%IQDE4iF>JN5-`rQW~cJ8ydI%a8k=CqT|48hx9Y__al~93hrq>{vxOFKF`KCmZq#@p#HqIANvgJD*|F#5;GTVFXDs(jp0{!AKkpRWc*ZkXeLA?|!e#soJ#adCU5>S4P*ZnmW5_Q~%XnmW?+K_~@@%#gtrj zNY6d%LC!c4oIyPrn}eT#7obN_;KYaXs1Pu{{N<=JRXRiKApu{0KuFJDeej9?C3<8qAeO3<_o8110kL0?O8Z2P#)Dc+$Rj z!I|lQe>-?(>58TYYxn4%Y;!7kye}~Ku5}#ysw;wY!4HR>jijcXN?^iHz&T0N$jtaD zTvqH6QcmT1kP|FU&~Yv|@K`o4U^+i@zJTh5pWf{I;^WbipMKnY|N8}cuw+9CSa&cN>~vzi zwDcuCatTA<^^1ky3`vT=9tn@R5)a)%oPr9!n1%_RLt{fO;BY|~i1@(s6hgo`I??|e zo8)(vNA^9NMVT-6TR;C`Wc-tVv|jw|Gd=imVF_5iF&Avy&jS1HNWjh={le29_QXFV z?m8g?L+cMIzBlkNpX)@J_jL-~>l!`P^BNoBah01k zUq<>qey{cD$M07>{NhU~Sg`YMb&yu;Br|>zsGnm4HM!#jsRa(b7;|HvT|>XSUEPv%2?Qs8X^3IaS|3c^Ak<;Eu5&Vr?1 z%M%+5W5EhwBuiA7UsGRcutrF0UeksnU3ES*TIE1O7cQcNUvDTb1J z6g?^P1Ms17!G|394jX{LZ4VH7+5n-i$17oQ$Rj~y{O#Pt^s9U%agIY~%`#a0lVpDW zaeTgT3L`2$f|N=RBNU|*aIIoIrAj%LTwgwx)T$av?oxHbx>T+3`2n(icUTCr?V&m? zmp#xrh&2#@J>xjYKPW@m><78WF1%tav=wy({5-Vh82)_xB-c8;1h9h z?A@ZM)N6ty{9F!-Im@H)PqH!u)0Aw{5ki4<0wXCKOD`)QP1R{eV71!elvZ7DYP+r# z(XOvgYtz@Hw^hsskPYRK4LRi5tp`PpyMe^n5=h-#fz&(TX-Q!8z2b2AbzvOtVm^X? zHj9vXlEciOre}&LNdnn8wpcleEK?67bh;t9v7!&&R?(K$T3MgoT3L;3t<gJISZ!O|v-SNlLDK94{&# zLYHd$({&Zyh`OqFL`$_Py`{Pu)m*JbH&?4LE%O58Ksn?S`-6#yT~&u}*<&tdkKMYbAuHc>!{v z9CD!?gw|_83A8_{3|fOw*+J*-IeR_Rc?93n`^8?>hr-WmVzDQb2-;{dHmg@a5w-H! zr6zW^riNZvsV7To)I?RCl2Bum6B_Cz#0H~?)L2(UZmOLRe>xOdt%dd>-qyCD(!uSa!PW1E(I;%q z6dX5G7l#wW**pm+b!+}q0fMUB17J)?{F)h6$tbFHC~M;l^N2da`Nt*SJB zoeW!~6Ol_50+vRS!>=sl7Z`H6QezfJZQ^li8@L%J6PMj!zR~HuWDs%Gk z4ZNIUBRi|y#K@{?VDRfr%*=**7O%lLA3*-PFF-z&gXGX^pg6Dv=nn1$HRk3|8f@%t zwmG|8?DO%M=?e}SZi|Gs)yI=-t6-TL4N@p8!^?$IsyauUQNbyKP9Z1|87TsVi6p2r z5%WzZN{*?Xn%!WW4}Ut899#v;_iqLj2X=!xvqKMBtgWv1IN6;a^L02f6d2ss6#;8( ziX~OnCG*NE(+WiztTb0iR&nGkJzbhrLy{EM;fm$;XtCae5}WF=g$+i$ps{W~00ESP z0LnqO|2LrCy9re9+xfEL;67*{%AqU6&gN&1c-fDQ1_X8Vg(cUu#}L(xNgPRCsvy4# zUBcB7m2@>jODN}6p%nr{TA8#CUZyp|${LJ_lEyluxUqIVfC9*&aNj~ux@RR+f3N}6 z?%DRVb>A*%AIk0vQ?5IY&A8hRO!@^j4TmIE^hV+39SIqQO|ZPodSo%Z7GFxJrm0bt z9DQmET4+6}d^iFt>W^b)btPvr+tY-E7OWK6L{Y#RGSmsCTwScGxFX7= zs*E(%RYujeR>oG$4SJ=fFj7@b#0J#^I}lHVcDJD^-E`uZ~bNB!k!I1SIiGJT(oo5opTN;IpdX>domEk zIvznGPQ_;+kHWK34rB5Y#>m2$5wBA7SblL%J=(xJN~@vyTAl!Vi%jMy18JMsjP z8-9$Q88XG;2OrJO4m={r@jp_W>o=*$^PSYs3m{+nIjCCp<%6ytKbt=N)knS87yjGy zX!Tmn@LNy44JKpig>%s8k%aO?Vxdd$V`BXyWSrj>JmOu?TL!}3u zW-$Uz@tFQ6b6CDJ1#F)ak__(?Wt{l{)XP43+4#dp(}zEOzwg>tpVmKK_^amS>J7!O zwjIa@2OOBMY`h6i+=7w!{i2fZgv7_*j7pBYmXI2D6`mGy8Ho(KghK~hBw_sK=vdzi zY`o6}9>M#34$<>mA<5%h@w@;v-@kvf|C4|8P5GxTMMZ_x87fB$Fkfj&=@gT0=lhIl?khPpq(gt;=XMLON* zMLFKjj-C%aT_3(zfB2*K)Hgr!1AyyZZ{WS(0|Xv&1)*lnAkxAS z#9G>e1S>m`4E^ANLmMyCY^(v&)(T*3Edk!n0+8*@0S)?r{MP{Ls!srQ_YZ(#y8>`r zHUqx*evlPt2lx@5uQ>6+PZ;pndt@x^7M_N>hUOA3r{z-T;6ldv6bbuWQYrUrf+}-1 zPR~CRTa$e{#*}k9x;5uiRB!I7sL|Y`(T8)#V<-QTcMgAK^uHzt8q^q*n2cI>?V`E&vMY^s=dCPkigI#HE#DnXxjGOjj%Cbp^I zL`-+ViRjV7iMX+Xf%vh)o`liA1kfP|I^@8%S`Km?H$m$ldqDxT79$9B2YKOvPqX5q z?{iXNHyJqeRWhA)5yxYkN9A#55hDI+m@MaHQhEMNLPf!exVpmQv8}@6F#|=1<3@@G z6Gn=<5=TU>NyC2$U_cHG$bnxH)-9(vb4k z{O-Vn9C((?fWUquD012ZogHKeMBXl-D9Ha=L1g5E+=S#?nQ6$YEFy7^!eX4oXK_!X z3bRilN(9GK%7xR3Ridf*#^R%KeUjnCK}mPgU`b2LfYb;ZkQ(5B4PgHE33%SzvR zZjM0avj`!of6oaUWbG?SdIfJ5pN9 znqa+UwW+;|N<^7fNH3PDv2R z!vZXIFq6vdVsY|Xs5v4Np-5`L%FC)ynsOboR;599s1>L#wH(u>l3=@4Vr+N$U-7#` z2IL?(v;?aCUkgetw?TCnQ0={=^%JeT%Wa*n&t+Xm=vj4K+)+6!eYgls>B=Q>o4L$< zBa<(xq6%bMqC`=SD_50at2HuAi&lc|)QIq%8X=)eT|nqk{S_bs%Hg#`!NDa^z4_}i z_qIZ3FzkJ$bFh3^>E?K&+Q)OQCOGh9MQrrAGC93hl1^zUz;lh+wERjASFC2{%F3uB zWeK@dEhg%gTu-vMAO1?UaEiUC`$%oZXHnUy6wI9u2>KOrT3mdAc2rV8X=^R5FmsWdhfmWE+8VPAYd0PShpP% z6a-NOdwb8?`#Ull>Zn1YKT6x1hS5-fx>^h zx8@!=rla!tgrUaBX>;xVcD%vEHb-1nlQX@&)lJu+N*ryIx75PJIenHh(;RXR2D;y+G;3KL*83`$Bz?7_r7n@Juq<5 zOyyY@R`bRsg7vwx6xzvVrl6{x>swIm9-dz2l@MR#mmZNHk}J=NDe}!qE%VCAtMEv# ztQ2K5Rf*HvD?O7tD!h`;mH!w2YDhS^81htCq3?*<0JVp=er?v+`SzU7?w8lic0K5} zJaYA_omIVo;4MyG zaU@rsb9T#XWlNKrdBIU9#4$nj(q!4Oz)X+o@LWMvLZNF#Rx!Jxw3J!VP|B=4U*b}H zp~SV|zkyh!;hzp=5t@mq*}wW%^S-sC7Z0xOyQ8`C!885MosZ4cTJPAH)!lF)6WTV7O5?c#TJ5Dmdewge z@km3K@_Z;&UIO*Imw!IHYx%$pgwxzNf_dB!83|?-Y?#zBQ%-b9+yUG&&(vXmt;A#*JlwsIL4_2T{LoK^ZZ9ow#~WLud=G+mDcW)eMUzsdo9dzpW+FLk4TL0`_6p7yBsgc zZGk_p+cSiH(?7!bMpz8_Mtr=(^~^-V^^zpJ8^@FIH_s*EySkI@F5XP}FCYnNC_))T z-R8eOwy&Apb8p4e>-}36bPONZ&^UBtf5m{lPR>hHtAswRW9SQermUCD6ZbGZxX;|A z%x50{)Th33(v#2-;^Vk*`-ka~_y+}1HV>*1P0_dqSEF$E@Bb%|wsAUCY@YF}dF6D} zfl#{9w`5xT+s#W(jPBc7{#IQzdqmeD;f*Oa^bOWgHcX(4hMinFLv#USkn2HxCH8Xa zm-#rn2=XQLM)~7=5(90YWd`A%6$W9SRt8%?J&9=hPatpI6sTLF^!noLN!<@;Dz?8} zI;-K+=9Oh1m3L-+R9B1tsAm}R(ac)*5l0k#L~{`1WF}*j$)S$8xsis&0^*QVWIq@v z#t(!^Y+l89;a(~R56N`n@l1x%crNq5xPC?n(|UOdrvAZHg(8?cEgjY@jDekNgW%8(DQF)M zfT21Y%(batqwferV|yT*+5*EI3mi);;8|OMJJt+5ai-v7V+{VbM!$mbhQGq?41UJg z>HSQy*ZYx5_%B-9CS&SuOvV)UPEkyQ1=FHo{emFay~-O@H}T-;E+**jBZJu?0$|l` z!TzWY4yY59JT&z$JGBlsy>ggVabD{ET!!ZmbQV=tF4~8dQ$^PiikI zVhZmoVp2cPP>h1bQ{}MnFHhLDgbVvuJA>LrN6^`d2jiXAV7bQvY?V!cxZenz4jKSW zMGu&VbiqYc8@Q@kAULcEBDJI7sdfZ>)HT2l6##<}p=c0rV!&hL6p$R83!b_wA;4q{ zgkbkWDB&oCP>djujRhH>_`}ni_E{9f{=kpsz2_#mzvE(-Y`m}!}Lno5Utkt zHMP-ikaEUWA4H>E zEQ(|ZVRUPdbBW(&V%ldff0uD_IDb?SFCO8hc@1-NeO|MQ{RWwp0R!|p`77GVpqJFM z!7nM7Ltawuggm7^47o#p5^|04IP~g&0ABxBgP+z42shjeF(`|Pv(c;_DL@rIY;J>;70JLpmrFu<&kzhu+}_d7R*^wZkI`lwxDJ+yma z_vnwpt}`BnUt&FsxWIZaA>h4X3V0uw3jvxdAkttn#G@?cpPp0#Q6J(cmJrDz{0Qbz zKl^#PjCsoi@5E7(VL_75Yqu=_0ZyU(C95L1pHUauM?V$*f_6UQ1+6>s0sTSb4d#Q$ z%dEen+S&J`&$>*^zZ#@SL(tI`5Tm~dlFat}+et~b(}P5k1;jG!e}ubIKg-1~V={li zThDOGuqZ(`$j=CPwG!-iSym)o6P&sm)ZAX+FkC(p61+* zZFZd)kfL?)K^j7iEQdIh#iW{`vq3CWAKW6R^hurGgQk5YHh= ztn8IAEwIlmFSM6a9`Te_7yXENCgwila_lYU-MGu_J8^BCJMpJnZznWxZzmjgn;7sx z8e|9NLAb_pNYvd3=|;OC(+th#V6`E`-sDFb+2&IclQbH`V-AOT@?Ql6N}l^f`9AST z3i?}^9d?^n9Cg#RI`*1NW5QK-d*WsG&7?NhTS?8_?xf>x-N`ll?xZUItqB1c(%_3U zM5-@?WbF;;3?9F6Y2T&T~IM4WrkKH?i8LB3b~qk_*#lOoSbvf@sQ zijqzWt5O^IC)4Zs=hABg*VD`0ucsG_uBYdVZ=~h@2jGj=!GHfeh&{X%GXC-Zy4%n! z2>LEcGqo=zSl!WLd(*)pvd!~6HtFwl0sBURm-td-fNy(nc*tr0xTr>-wD@|@yyO~> zvb0K3eMXt6HLFC_m6h+&m6;>CmYL~!JtM>Odiq3w-})&Kux~EJt1g8s^R@9tT^9mnG*s2XdQx;=R%Uo639jS-bI?5P!D70mm0%; z@9NACzdB)~`Lw~oxVxH0xKzwxw&V!iPo#OusuTP|N~1%g^TT5jGDA{QQ{}mti2-Ff zasJ11V*)yIqXVwyMg?@{L1y^!L1JG&|6D z+UD?sCW28{E!DoGoXu=1;JepmdC1CAWWo6fK~b48Q3=VBNvUyRS(#BGB{|{2b$Ow| zXY)eP*Oi6@U(E>#?#vDe?#h}72tex)w&yQML*6@I4efhttp8P`xn;aTZ|CdNrhA{a zVGrIpZEtwFfo#`O&14)eaYJdO$fqDv8l0IL7?qqDo)8-spBfRJkr^CWm=hRTljk3K zCeJVOO0Ivz)trFv&g_8juB?fGK%^mJ_g|24a1j)$u7C=)wcqQGY#eRY+4`!@Wc$6bbEMH-Sw8>4zZ#-YHz@1CLexK42Gy#oznoB8H`1!Lq5qQchQBYH?Z4V# ztKWLs(f0TWXXo-`F8sU-zISSgL>^lpiwMgJiVMt&N|vQ3r+cR5WQkJCbA+jlxq{S7 zIqu1w+2X{mERTe)%!vRwT8EgOvmxie0w_Iz_TCS!_|SZ418-<*Gn(3N&lIsz1+}$s*)+?H?ts42$QN$0c#fGE!Nk#p(3Y`V8l? zjtqLq^>kML^>lXL^|XnAV5A{w+e|1#&qmGe`CpoM&L6(CXKwF3)tR>+9a(wtuF>x1 zn^s!Yo%WXb7oA8c9dve7E5|+Pv_R_9BncEZ`iAiuLZaBmW8>)c>50_3qGYGKx)f4< z8=^azQrVqMEuR<&MHtFL?O)Vn?VW?t<%x~%oF;m-Q|mPd+j z;mtCxI}&2A(ip*)*gT&Le2KWjL*~{lle5nThdQIFG;&K?v_nf_ETN?~&c5|*tlinW zv4oR%;)o~i#7_i-BMsSGra|SF89$oWO@H0FLh0VKwUe*D-22zrz9XwnJU7@`{>(xx z`;o0t!hHwZ&^uI$tefQ`zQGf?UH6c%x@11Iu3$f>&KNndGcDMzvnbTIvo_SG>uf0Q z+PzSl3lGC>J03<%1jMXTg2GM6|F2ORJGXGs!^d+JuD)73wRLdM!s7#K>&ss1DrfbX z9F2c&WfIzBXCr&&L=rz`(7BJf9Oh#&pZZ89a(oypAv}!rwtblHgL_mYvwl?PYxVf7 zuho+~GON42e%9T+{u2Qy%O^p_nn~YJ&sV&AeJ1AWtG^UmM%K=(8`-_A?fAOCipF=Z${0VqJ$772 zC3xIK+h-hW>^^R1HE_$HQyFYDg3s6e%iM^Yhu2u?Fjmz zdrw!P4;;4QKa@jko#9x3~W8LA3ZLb2R%JL^AmjNjCbNKr#H3 zK{fc4Pt*Tc=B)Rjp04|$aYF7NpNzS1b_%BH+7wLnlj#ciuy|SuY+4uv`_{-oW1Bbf z{(LYw%mPbIGT7=8!NJfLs3uronOOqY!W`T!O~K3B82qq?5R49xh_caz1Y4b7>3Hp* zxprDVOYOCOR7}XF=E<0o7basW?a%*kE)ZSETV#R2n}5DW)1|U|R!i z(oIBD%Op%imm((n@gz(l%vFqlRnr1s`&}YiMwEqXXz|vjLNxR$#ry4D9w9 zgX4Y!pd8c#hKdfj9MT4!D#{)XA3@oJ2FTRaL9THa!j7my^pQi5gbpH3nUKm07)IMxSxgW?9Reu&;KMct zvCtL-GKU}BFzQ!!Jo7Un-Q}Zm9(SBt${!8^teTNCF!KT^qdHATR$1N$}>Ttwh#ieSN)sCgrkm9n4LNVJL!Qx(;U2bwjlC$ z{J{&RedWZkKCx0=KhSe|W3&?CdrGzFozn@Ax1<)yTZhY@BM$eyUOM)AJt6mb-9`g_ zUDST>3(kGgi2xqb;D$7KsV;yZ&6N;=vY04~y%1%47{VQOA;{Sbd|hoo;^FwiJ%IMb zEt2)oC7C*d-lwd?I~DelERD?epoRy^vjSe&KtT z@!Yp{0{+#&+dC6{4lRJtqbngAE3ofr@z4dUH1AQ*kFjzbwl zs_r^;9>q4uwAl9}(?w))P$UIX%0K(av{9Q%;IW?!)jhw};_H{6}FE0m8MDL9%lOgzlRMiE1c= z&{+%FhFj2F&Ymy1Sk=)Sd#%@*WaAepEbOB=f#a<(FJ@<8ApfE)LelOTFFPYn4`>qR z2cO_qgw?w>L>%L`MOJffMwRpajw;M;g3#%s@X{=0Y;+#bjx( zhCKaEKMPEDeJHd#@TL&2(Vy?A|0IiHc{|C?u`}9(c|O#a-x?SqX_CeGHh3im9`nc! ztrC?)lnIYTl?YD96bY`zsT^-IRxHDU#r2La1a?iTJ2;VB-1bL}q5v(z|i7(t9z{KKG+10>o=3gCFXO#qLJFS9Kv2Xe@&=%{3pY z^fnIFnrwT~V7>ePF}tH(Wn}Y?d=~Lk29HsnDUkj}wnHMdBDJMIDvqptU#qir z;Dph}o+gW(x9V+=T&{F7Yb|0BPULXuRcRt#agtP$8yhG~j|!J3hQ)`)hGaxVpf5!Y zmDj`v$F%tnEXdUF6r=j_z+30N2`B0*|_-nQL^0y6|t6rWm zSo7$N>5l6sY&6atb2M!(bGEN7;5e6N3*GY4JU!Br{A7voq4MaM*s!q3)Tp5F{8<06 zs(9b9<^-Rxs|m8OJMps6yK%lD_hKgEUk$;Vra|(qS*ZIz7s^!@eyUYnGTd}z>5De~ zW%te+Z@!QJywl*u(29!xvG?H!d>KNqIYFC%oa(7{9iI-PEp}(IrFDyu$6Bo|U%824-7RR_` z*2S{2+7b6+UDEHxaFg#xPXu@&4bjMZ=j@mU)9gUmMH`*$4hPG`RvIzlG@BmS#N&FO5W9TEkHW|$69az8cPFD~qhzzv&-%5K-*haW)N^NvLidwRlP^3xIJfzp z_PXkBQ|0_?Sk08H1hc4%6g&BOCPmuLWr@y;+_)`L5$lZHlXg1N$LUnEAF(+vz`nUU z5P#}SpzZ0Kf%ucp<@U9I27;F;LdHr(s9ZDYK@@elQn^>%S4Qf%#tazl4SHpvCVgq6E9@tlxb#!4=zVNka-V=e?DKNO_XUt~eGxRPz9hPN ze-6X6zk+4*@+8an#WJ08~NorkUUsIQ&HXb8b{ zG|s{3eTJjK`ywa3v0Ae3*cr0U_%(|5_yA(?k31_=#B`lR9f%Gk%<-F3F=a!u6>>hW zoSOV)$Nb1IDk}rOYHjxVX0(U@&0K}`4W~i*X0PS&overd&M?G&=Neo7a5pvm;cag8 zBhXU+XQZ|6&m^q&uWX#=uTq;MfPT>YYQby#x{kQm6#?)V)j48Q46_fRI zu3`eLogNOm<_93pEdk99ZlJ%N0j7JM!1|y)*s0=xq;3h$N6`$17V1A}8-RzdF38ZA zfCn2KfoMZiR5wybhm)&8iOFH8F;#_A6LPju5mVQ$h$+4?36u6r2@?kk6+>aeG+)>~ zR|E%_azJA>4RlZjVYJm2EKmkvgE9!BvJsH?>jV9u4scX7L2w9}^uy{PQ#%Yn>Z%Z> zp#n)q4npS91E`d_A1XB`qW-i3rsxU=lX@S6iTW^IAqW;Ldc)c&eAqgR1$*a{;m{I$ zIJyE0dTY$UWW5nsZPWwX&DucR@=yMt4s?`1xa?2`-oM$y0g&$A4}t&Y4tpVP?`}v{ z-h~b&nuy|a==wJ?nD8D9CIDtBc))x`4lJESgLPAhux%y|l>agZ)%iwnbdfITEzty% zWg1|){4n5F90L252f=aGexR;a2F9Abz*)N+1Z#JJWZe#st=|sv4O=06!xo6&I1xbE zG#MQBP64XgY~W}w2ENG}5Ms9h-(erP(ow|1(+0ZK5GcWBK#H{jVk!>obMatTVh^@e zM6juM09=zJV9%0%SzmVgVSS7I-Kv-T#p*SA+^b?WPS3FGHXPnS)b|H8`Z&03pW??1~A1uXF(0dPlHnBK^X( zIsL?5CjYR$L-}U)g7V4wHRV0_EoIo|9pxqdJ>|LG*dGBZS_en84h+@Vz|&lW#*5Z~ zht*aP+be^Bss^qcZD2`^z&X$yC{b7-CEEfq+aBzTh+tRg_zPd>^wXw^{1ewk`GLDi z{f50y`(oWs8^;dOMr_{FUg6)-dhJJPkL}+({|TTW4WvC&fTc1Ughv;FC(5L}EVhCt zUKzw>HQ=$efg>^krk@4SB5*)X#DilN5r~D3zw9fVe%jShe%LlqzuUCazT-Nbzv3Rz zKVo0e-`Nb)2k~#|&+XsQ9}-3xcZj3RKLIq9i8&z+oP)DLtg#5BdMFPv+kz@rd%@H3 zFt{^N^@wi-Y#%h16^a8&ygiUI9DX?zIQ=A)Q-0Xj(Z1uGoxj<3(7)PTXMDyzV~*Jj zFo*EN%ol{W%tyqxtXmH6*w-9K{|GoE4dmTZz-|956fgcy7878y8T_$(LFS+ep3d4J z;2Htf(-K&68*q*x{G_Bh{vhR%zd4lAz7USlKii*Veza?6eZY6I-`hTAkKkXs^by{$ zA32P;bUVJ~TqV7Az3B93fR3^t>aHmu*f$G&kiQ7jS_#3%n@}FK8v+T3Kt|O9iHi{k zM3&#V{A-wu8$msxi?88 zZdaV%@XnFn@Xk`+@c#rbkOumWDInTA3uO=sAOv+%B8)adgyk*>wNnAP)6pL?rok79 zz~Y0@$9B{$ggD|7OCDmRIS=3gQY z3EQYc!qc?Z?kAo93^0)f);82n+C3BG2T=}kbUDNru1DRR9T081|3|o^#-|{<{(BkM z{Eerl&7gZAv7Z-7dCp0qKV@dIAJL0k@6)PzcPNd5ZgQLO2Kl;s7x{(g0(DT-N*fe6 z(FerG83W>4=AQu;%A+`2ltB8A|3_Vnm?O&|L4PeIns5D?fK&byOH><;py~_-xtPB6 z6XSZle2I@lp_IG4IA*tN8s{22k9U<>CcI3q6Rd>W?`y(BQM9Jo?Gg5%(d31nsY{0>C)+2&Ux-z#C;*lb9*7n z=DqOAkayBA-|eD*F7L5_7QfdoUGUs5 zRruUDS@=TsC;rtSMz4vGtW*3A7^0I=$#c2WYUWtAgvRD~XB(0H$OHT)dNxOnVeV)lf ze4Yh{`1AyX`1Jb!32;Rkq^l=G)aEIWzGns$9Gv~ROm*&?8jS^g$8{F}U2nLds|vfX zqlBo{oJTXO%W$zPPZm%L;yhVdQGUGC@K8}gNUT@1JXIDRkcXxUE9HUyO+f+vSAzWm zo(B2*KMVBt?+FO-Ltnu62Y`z-$W~5*7_`@$xf}J~_s{%Ld0_VI`on+qG-=MieZpY< zpyGhC+&IRSpYZl+Gh(Cws6`<7IB~F+rlJ$SAMS@MKwFXik7%aJk$kxG~5( z_+qeE$W!#^vp{K3Pk>b3>;EUfZOtU`TY-EpdOmY@PW@H7clzit<(V%}9-R5Owv232TEMW)&EYzwWr&#ZDN=4^VxW6Se1vB}OoGfOD$Cz9vP3S9 zI3DC4aW2R`@==f|;#r_LtS7)DwAcSn03Uh(0Hh%iy=Uj|nDVV+=hTtoJEy*AQJ#9Q zU1jdoGrDWeo;2Tmq7JW7Sw%7~D5cwE6mm!jxk5%{mX~XAy1&prHB{oA6esmaNcR)Q z7X|X-YvtVdwjkGpdvdq9XMy~fo&Z5qum7I_A-WGi%M>96Js(Bels?sLQ5tO8Jo(xA z?UTCCADnZcO?%a;(`LJlHQK0`)HxVtRnxFZ`l+llTq`k{K)yI5jXtEdCz@mS%^TRn}?oc;Qbq1NnZ8tboW|s7j8`e zk5wJvPOD7xAXnsgIaX9ki4~`$gvx7D`-*<4Lvg>9RM7AJC%|`+BE%#AU$9i+Q~g5B z!;YDl+c#%ouH0U!&~j_{^!gj>OG>*8Hf3M2+@Ej(uNmG!G7e~S#(K4I2*T3>vg;{N zIV5p&Ufn1gv#I}LOF z%rwje)In&uKNHi?vs|IFXUEk1XNTvfKGj_v{m68?`~mKu_dTMf@DA00bDM3(xW&g( zx+QprZa<>k%`g(~W&+vjW;WI0W`(oa&1PrQ?k;Du?w2%^8)FR9D`U(*0g1CQ&q^m_ zZk(8cIoCD?bL!eOOx@F2n6j6vCgr}|H8c6;;l+{tI%@;_OtyQzu-eamZm;grOV)Po zWg0m3@Jxt39v1i>Uu$enD9*Ac9&g^0WoO!3W^de!0?p@_5IqFLo>79qlaCI6VkCPq z=2p#Q%(-SIOw)NKObwa^DIS@tkTtSaDRE@?oQOASO9S5Mu9Lhm+0J`orOX`0AEFF9 zYB&tjwd{snb#cS)23EsTWAisbrY3Kq&5hoqTIi1ySm}-&v(|arVy*q|8dm$=ORUz& zd+R@Ow*-T^aC{QxB;SE?&HR(VIP(M^82K|RQyS2E%%er7RD#b zT~42El?k664%&XEsak(#tDAq}A2InN(KP(xr>*xjOjqY?g1*+bEQ6!pN)0u>*BhyS zKWnV^YI*<{<%~!_}7-HKFD*sgX&@z&{|0Y zgY}MJz8Md=?N}h}vH8YqL%U4aAR z)fQm6&ID{X8i2!QU7(;I1asR_aNVvB?x+Ldy-NiGQTHJdSvZYV+7L+$>Z z(DX;DnlYH%ix^Bi>R|-+Vlck&mx4RWLD;Z*G8MK=Bf_3pHgIUJ1sq*q40?<8!DOj6 zSS~vXwkysNN0bwY6_$PPB*t8i6HlstC|43dt z`u|@?*ME$`czsgD@L{$B9pxa7uxyeItetEDTc#Mno@u(EGD8zIW@&)V991y<>mZoT z-4E9D_5yzXZXhn$3FL*_fw6EaxGvfZ!o?fFd&znTT)Gw_mac|`Wvd|Vj{ttlWU$_+ z1o(qffqY~R(DfGs(_#(K?Y97xwg;Se2Z89V4tBwsU=ybc*69XdnQsIZWhP*L%oNNT z&A_z9984})fbk7WFn(qUMz5{FXw2$|@h7X#reCezn|-q!w)k!}WchpkSA+e5sX$Yo z11!D8;9|Z8SokgAOxXhzR}}Yns)M~;3v6Tb0GDbAR(Zx?S!xOvHRfP`!UD`%EWz}m z6`0(#2IF4Du=OwFG3-~<&)9MEuht`$->hF*eZ#)|1E^jz39!maK-@PK=xTF-qq7*e zrfYy>vjtdAdw|AP0VlBr5CgQqE=nJ4Qj7qbV**wsW?)%k0Tw4L!Mw#9%r07k=`Adn zyg)DA5!`pvaok6<&$zdiUvPs~UvbZ|-)wrZ-)w&e*l(T$HhYzTq&yW^s&l{%?B30CCeKAZ=Fy*7hmjj&cxhv` zf``)q;IlM-aNKpiGJTCcIft2zljE)4lQMAc918FwgmU{~`#R!~-6@Ab{CUS$_*;&B z_KweC|-=_>6ec=?S5o{D^Ra za*yzWa*Obe+DZICJLmYpxrOwB-sCh+KS};Q;J9%TIB!PY8~J}9)Wwh=o(G}YOCij7 zEreKa{URsq9rLBAj(Bpk2Hiaj`+5H6&t1Z?PnijJ51liJ_b3IV+vIY}O;SDWy5kw= zF2~FCtB#Ku7fHj6Hqscgnf#vBKzYxqrM_n!qx~KrAq`BFi@76z;fJ~yVTa~Il;&a- zzpwflWw~iA9KY*L5J}~gAM0qZm(bv`$jAI1F9_GoiMGGSN+w-pWK%9V7dfA&Rx>&% zjjT3u2fLNr?Q)v(%B7L|j#Eo}$Ek9D$0?(~b17wv{uXfBFbQ0c@0K8cA>WBQ2r6?R z?&!jw3HmEOB$%xqiN$Sy6-nIJ6T(pc+s{qE+e>2JCHA+uBnTs(C`f+Y1 ztCmy5sb*JmD_AFaWvmPQ64oPrA$ypg>+*)5#d*Waa2;_={{#PO;32Q&gYua0?NcFP z-%LnT`|Crd_M+h|!{vQh=Ib7%+U~j;=XCf=1WT_Yh;M$z&(rp#x4%QZB#crciepp= zQrV@vJZ=%UoR{x@)4yk_&K}J@I&UCfZ*fn)$*Mb<*d3ioj;iNk=(=aZ+{{nN#WuBmGKWfOFtyY( zicu&|a>;eia?2DH3)1+t?kW5hQ4;^UC{gfA6fbz~9xEIY#t4T6(SHD((Y4)?-wZ(B zHx}h{X?v!9$yJ#-Qm8(szeH>Pqhf=VH*&4FUrZw&YE7W&G)8mGYQx-ZD&*b{#r^@5 zJXts+%R8Qv=9%u6!4>ebJvs)1qY_TEMp-nVzIR)&+cGD23fl*nQ2lS?}p2b z5);$IeJDvGL5x^=6eltui5KdZEtLC~iTz~_9=@{k5}EH~#Gu$$HYoCyy>|DN4GDh- zxS(r$BhMMO0(tKZlfLI~oBXzX=j6WHJxYHcKQObaMtfODx!IPcBHIJCIV7#J47zb% zvMV+t-kp#X<4ul@44_AZg}VfYB)A0xWeR2TVzGB%y~H!HT_Op*j~Ebp1`dk60$#g& z`40(y2e_hZ`=CAV$mI%_Y@g&y+|hPF!hVYelMutBjf zWKiTD{Mua&C1iyojAIrxz2dw zu_~-`Nh$G2P9fDWC6{d(o5iyWPxm0nQ)JG*Nx^Kd_-L*;E=3@S$#-{)t`>8m&v>}R z+&~P9U87!$+#-gAZsETN1ZWKc7b!qI(viDdVYF(6!i$rOF?U*5DO@?TXIg8s#-fH3 zh8rsCtoG(t*{i3Qll9|^nHCWRTw8gr$iX*TO7+YLWV)wCa(JmpJWg`1keOU5q9-+r zoRhl{uiP1lLqb;Ekbo8Ydq9M|f5-v_NM4BfQM3p%R5u^<@a!zi^^O$^=h}BoZEjUt zaO{-9y5dI5U77Xx!->b7bR(qPfdCATfh@}{|L1ApD_fAHtJCd7iRiYXlwSte+jAgYhR+1V%UQi`*aIN&EFv~;fw6ZvsQ)wp0 zp`?^+U()DiS9%%of@@bi!X@S*a(@rVkoS+Bi}{p08}p!MI_7#a${#LF!<_A0h-vKH zGP&xC%3lQ+wO6E_Gu;}~hT9*~O4RT@P1Tn)vrGj|Zq}SeF`jWk=0G_fOm?h~rPgMs8(n8zhkFgNPa48)nK=o|#pLFk@~ zsqWq|sp#hZSsB+gm&SFXy`2~E!dO?AY=yNnFgDZ2Oqw2g#d^2zC3{uL1+pgp9Miz1 zgKJ7}7g>?pd~6)f2HV@U#yHrtrjx8&ipiEO4HWa%i-=ybS<5KZyy+v&{N(R}h?$t@ z*^@Bcl}eb4jY^m^=wyWB=!D9u2eUCn57#PYKG-uo{=UY-u)79p{BB!rlXTo}$JxVt*epF&=^ti#y@W}-; zgD20-3?7Y`={@*rsr%sjZ+V=F!E{zAV$L+6Rzm9}ObJRQve1M|^58;+=+~Pj2M_L_ z=`*OYP&BBw!gbJeJ$(SX)oFmRi!eahXFI??h#laoS`K)sn+*gUF&>D}G#pIU)*H;z z(Rp31tNr@4p4QNHL_azX`J0)7VNmw4$E=IF0&8Zy~ZCz`wTw#9MJs` ztfKuf_R!If8HbO2DpphfRHv@?xlQBnmzx@@p9c|deoI>=226mOs}G|% z9!-R-MbjYblp%D(9!S`@3$ixtM0KzoP`i0MoY}Gs&ihs0IN|dv02Fic26;egVXduW2QFf&OQo8bJW3Nt}5W>9R&ON`@v~}GSC+y ztGH+uV9JR!Wh<0(uFOPHDR}s8XTB%2-K$T2hFK_L2ue_FrK~>ET(S*+>9+?KVuU( z&D;R=nd^W%YYm8JuL9pWD7< z%XYwd>;bF517IF=2u#w{z$i}x49kvy!7)wHZ`1<4R&CI`qyxIQ5HEB=_YLAB;)m`J zJ@hw2(0ykFdc!E<`W^pjFxxvBY)~>nI56$sgotXm7%13PKyus&MAi<#i}nJ}{{UD< zs)Bj4I+*4h0h3})Fsjx9qXum-Jfi~!=XJs0h92nmAcpjR>W}MxN54KBfZnJv`WF*0 zcxeiTzXL4LI#}+W{BJ5jLg|b%N{AQ+i-BRa3aEsQK%(yeq5y?qvV(vNI}BC{8eoyB z3Fd`bU|OLACUv@C(xeB*?fPKUY4FqNvB5W^0mCmwV}>7%z8SnX2E!p!FzPcy*%ivM zeg{}?Md{Ga$?#7qK}E?3>z{;3ZxL`TRszdzBhaWjz{yP+9K2M(E=Ub*VvYbdRST?g zb$(fv=>4#$(f@9K!tk3}i_urJ%SN9}?;4MrzBC>+9W@>?`)c$W)vTUdfaxPkFuP*~ z=D!21kOtfBs3o&a2^c6D;i9$08U2ro)ymOb0CAn)X|MG4HYbWpNK3yK@5z zR#$Pq2dq&_W{(m>DuT0f3J6tZfmmw+h>e${1B%uI&tcn7Hhu3`hCt;L)kl5YDMV}3 zAy)S-A=TiGU9QoPZK=tiO^w+AuF?D@uFawkcg^BCuE*jjZp88d_OtaZ+)r$$%`e;q z6g#(}5y0O8Sft^fWQ2hd0Uk*4XSVu-kIkmH64I{MLiT}v zH+S`37n$}GMu@=!TCB-ka;o_)QjXOP#}e!{VvWsJ!b$vP!a2K3gl@ZYgje=$gmJN&|$*iTWTt!MmqIgv!h>QAg*!i!xX;7;drp zd9dB)hkjJ$TV5QsE|Ey*5?^L?jvH)#)+O5d3^U2LnVx0e=v+i>pjJE9QJS2NQ7(|H zDG$gM)M0WN^)tE9`7=3>{+XOZ|KjvJz+tT-u#p24uR`tzB_!cHlzzq>m_8n_K4&Oi zcj1dTljV;hZ8miWk@jBoW2v3@;_I9hdl{V)23R!m!m-C)bn%x znXghc=RQp~Tyi_sdShp}!=7_N^usNFT~Mb$&vlDyg?cnP&j5NE~jTCyaN< z;-{0-c?Gl-w<>xfw}~0gy~K>;_Aq1J-ZP?kzgQ7u$OVV5 zRzM#;6vr}lOdiNpR(hJRGW}Mz_M*#a=Ih!L@VlC#$%pF0SXxzbo>7UP#3J9v7nki7 zVxKOFaZDDckQ3ZHv&W3o>q3S4xW=R;=Fh59S zo)zGOOZAo8B}yY5W4#h7k&-OuFpm;uu(+Nj7q_zm#P`?%9&cFwk};;g$2bE){~f?U zPF#$3p99e@c+7HzuW73lhVwTl^ptK^yj`|;>Xo9S3)*sx*PP72?Kqa~pi&m+teGFh zF~|xNnx_PNVdDe+?V|m|9K(I%DZxG&&H>UQrk{5$+sC`rMe2Ra#alYWmP*H%QtvT_ z)O(!%JAj3pxCChkMo#?yuyxj9QEpM+-ZMi>D-BZ8-OVrz-QC@dba$r+NFx%0D5!wl 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�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 o{9Q|e zoaQDPP+j6ks)0jPmFUVVOPJ0to)IJ{jE@xN#m9?t;!>5e;&PQUVoPOdv9ncEV&^Lo zW0q>Wcc;T4Sk@npC%(B7I2Hy{UD zARLNT#G^4qh32H{(#%vVsz|k?($vXZVTva&FWFy^lN>J0Oo|n!CnZZ#6SJksiNz|3 z3A5xg5}FjT37zWEGuCNF&DgCKnQ%rsBH<2>&($Lnm|9c26ks<5j`K3{6gCsp2$@<`mT6AKS!1Xm(~--~oW{$_@a3mxgbGvBqeV&SiIRl0 zOlf>tp-OCOwLCg?u3ALO67{f@wHl!*JGDYmPH6?Fe23%j>LDpiEi{G6f$SY$VjRvS z;d+36Z-@5A;=f#(#W>dHq7ogu$4YY5sUU9{<>uK^R^B8oBhQVOn(NI^$_)}ERTrtY7~RDnDolgZw3 z9rJF;q1&5>aVWt!RQ%=2EWoiE?I;Gh#j2E5Y)Ba;BPg|GJSCM(;Sx$bd2z)7{Fvf! zVN_9^D7+|D5?Yum4K6HG2`H$O`xUgQ`4p^DOwaFE_bNE9;aTvFx>x?M3a@;oIz6As zr{^)*J1%4XAHy8j4XsUB46mN`mn+kRV|f+y@ptK!DwJHMLy1)uG^2Vf#a26U(bdy< zkyXCDu&NM2NM*Dzs4_|HUy&v8ttgRtm(N!5EMFjZFJGZLt$eGRTlq2YrJ7sWGgY@T zCZAf068&rUI0mX8ywmh{2vRI1ry`V`P& zMSd-KGiHkudACgCyjpxYkCss0w3b-D+x%3)l==BW=lNA4$L1!Kx6Po*^l2%?X)Jh&hg~hIfbTldXjTz0O!;h$vJc;@+Nj>^T&6V^X)ns1!Frpg`+!q zMWZ?niflVR7TGR&BC=V`L^g{+8xy}{FUEW`^jFWvJb-pHG~c;0$z6!S3OE9*h+J25 z%#G}+RSc!Rnr(1)yWi;zZcRizPIb!qrEGqT!dOP1Rvki|AvGT-J+X8mDg+Mhrs{W)aZUrk2+ ztz^)@hV=UfNU#4Q>1}(&>1}z<>278`-M)X=)B>j(F<-nC*F^NWya!{j0aXFe4Bm>J z5!6jB^6 zCbh$jq<){ zLe5nZcdiwsqWIvm2XMTO;}h@-u>Z0Qv2R)ZS7lB<`ke&ruzk=!1pT9k|8ckiCsCPj z20KH}!2tOmd0t0bsZMa2xyretS#ZCR~s4 zPpOD`#Id2BQP4k!oiXUI33RogtNJYJ0opP2)m>~J zSPA+80?yEBz!WCPvEfFj00HuTLKOfFIT9|wAH;xk@c+k=*p1&i1cs_Zu7ca}27ZQ1 z@#p`zAusVS@53~a->U1wi2xG(OhfHJ6#zK_Zx8{JK^~|8wP47dSp=4XmC#uSoj&*w z+o81&Zo?qFhzoE;zCoBCAzXjFbwYl@Z$AY;{|lyrTwe=S5ej$@D)1tN@E-{N15E_( zAQ;4hOi&DFLaPD&fd4@4&{+@L0N_ z(*vDe=xnFEh{bJqF}F~ya|4t38~hhvAyQx9lZJe&&)~zn1ywVjfw#VgA$$iNWyAw{ zzb4|L7>2QdTc+$luO*)JhbV-86~xm|f(&{nD5QJ*O1dkkrQ3ogx+PdhHw2yZt#BoM zEnG)m2)EE@!U4K2JWAI@7wD?^7G0J+r3>(3&clN_2mj^lzhI{DA54({8^V7ulA;m? z@zBNiXqwaSim~uqT6F?{I*uxtqwrx4YcM(p|K-5HV3yD~$0;&|1=?XMrPoFZ zda7?g544BVcbXIED-C!0L^Fu4YQ@kctyKC@JD1LCm(ppSS#(mTfj-b}q2s#kbWFFK zj_R$W!+Klkpx!>(uYZd6>3>eU4IXnl3}12mMvU9~H(PLg$J^6*ILuUQoc7@UaE|Vq zDbZacHTu%Ph(0nJMHh@G(-{*VI$;t<$4qC?VbgRvXqHd=&B|!6Sq%-CHFCSn7H~Vw zI=JoTtGIsiUT&-TE^f2=F|NUZJ*6s zX{bfe?KTM)*$oKW>`#eW?Y|MVjQ>T{4Bw^cF9h?( zv;Xo6`aeSdo2kgRJfIB*@$(^Pj`mEFQ@?{DZF01s^-d17#@T~bItOrFPLbSFry0Bs zr!-!>Q!amzV+ntu<4nN<#|B}GW2>;)ahYhI<2rGp;|_6y<1tCS<0q0@r=KLVo!*FR zoS6s+-{;p!xCOc4){D#fSzoO4{qXb?x4d2M$TwWzKj3XTYuv1;d+K;vI@OhyO!eUw zO%35%-C}qxZb|%Rw@m&#*L*>vYq_xAb+)M1rCB`NWr<{#%W9>WE?bqVTn8VM}yv(TGYb-6C zKABpubE?TJkZbgc;MIG^^XGV`3TixZ1T#H~h1DL_qDqejNx6HQQmOk2X|a2sa*_Lf zl>(0oD)}DwRq{PwO7lFK1c=|~kt^N|f_|Te_R(-WeT_i>aa@l-ukb}Rf)A<@e1}ns zpDoSvcc2EpXtN}#1IvzH99N?)oq@=A z0_D^kWIzo;BdIoc0?i6`<*I_Fa}_~Bywbo3esN&DpfDg+m>-ZM$_*$HX9v_sGX0yS z>HeL{ss8I^DgL|U$pNS2Nde!1-&K+VnG`4i$vf^~9$Z16k4GWrj6+q-48#C*VIEvjm_IK+G>n%U8pF>HO%h~=WQo#4io~fQ)sp0p zxzeQIB`OKQJ+k=V9rC!459F~SH&kOoep87JWzx7%rW6;#B=5M1alZhqqtM))h}=IJ z`4(83fNBJ^t1ePXGo!SqBFcU#U6>S+ zFHVT4l*C6gNMj=wsl-IAmPJMM%OfL>t42h84W7v&BA9Yy1XKDO367GlF%D;;bqJa} zQjq(nBlidGsaWgBW33w}qVhO(DvldQ1@ShN8$Xe<;#|4(xanMKTp%wwHiDlR8!wm< zn<|Wp%@xJOluM#w>ZB1d3zfrTR?0$Sw#h?cj>&^#z5u_-LSmRQkOCzj8RF9r%mu_? zANsy61Lr~(a=vWLgG@XDO+vnr$fv?YHOfsiq^zV7l#yglsY#Q$V$*$j z(P<&P$h2sFcv_+$G%ZsYoLVdnOr53VpE_Uao7$!9o!X}|J@t^xEA?aWM8zwGNvEeU zrN5EjD7lDp;0VTGC;Gk-%g&X>7>5$Nw7y9`7)NEx+%+{j#98-$T8AZ{#6Dcy+ zm5a!o&V}U!@E2)IDpH^3?2uDsI^yskmkR zq&zi?NvCEqB_NshH)nAU9KaZCL*Lhx!h@+m-dTych+`4jl8&~-7l|plNI{WBMigE= zf!T(n>6 zTy#b1RQO2Ax!{e&xqwNW^O^V^ClG@H^tTWCYpRj=%|h;7gSiOuXCm*a!nz;3rh+Ts zKUC?GKfD;f>e1v=J&C-l-N>ujoAam+;-*zc@upTM@m#C2`ID>41Wr{ALWim)qDfWj z#S^ObipN)75|6L^Q9QolwRn6v6Hh2-q6uYxaTs%O2l~1J`rUJIO{l}0LF-YG(13Bk zF%EZ@Y*290OH>PO~BWY@b9l13)lS_j;O=<8W=Y}xOu_2zD)R4iO&``{`Z>Z&u zt6wA-TfbH?x_&@7s{TXpgJ4wcE8(a)OgL)xKkUUE*n+;UsYMJLaZP9%+MR@Pn2&kT zg4}BXo=AhK3wY$*DksNQ9dcM`Mw1rW(!_-mX#7IFnPQbyt!}cQXy^Ucni4Z|4lVPjiM{-*bk`UUCLY8E4SRc<GnpD_NHXg+EhfEo9ame+fLLsZ6U>`6QtIAn-m-VAjNt{igk>8$2#aQL*ExJfd>Qa z;+3e1fMzuG{Clx8p$}Clo1woIIrw(u;5$(nuv>}L2GoEq$p_4U4ao*305?(@@FV4c zXp#tJa}12Yrr*cF=BkPdP3uGO0FI(E;W+%4lh~DV zhDdOpaHA6g8BoV-n9z<(XvZbA1fC85cn0i`Q5=q?=Av<7lV8E2o{f@f`{PQTWU7K3q_cc z_TV}IZFlr{0(3_}*ATiISKz;VjJ^+Peg$rT@4#(4OKmYVMOkESc18N|Y0S%!KEP*|6 z0|8*j4@!epKKfGuo!Rg{=E93;h0YS_bYV!=;PW@)bGKor_QLxZqz9-4xsS>7J^u9$ z{_8vVl-uCDzqy6u5O2K?1$+k?JP0vrA$af~$OMc6PGCAT!=RUd{$xR?2+^&A?@^1X zF%LQm;d^vIryCk;@%eq2K0D!i9KsYn3(wB`Y)Ic{0B`5Vj+a@ z0UtyKUW^#A;H(he@#yDNXa+zp8d@pP$wAvoaC%h3rmTZP6Li{ex^_ZiB{bH*<`Zna+w9(P`AioJ4KR2~i&nigwdc@i96q zxk87e-_w5O=d@RbS|YG}2sxu&fAjX`!v@d?FL7%BrY(g3B15f<7Ts1x4TkbKx~Aen zmt?+lUKT-Tjct%ohaI?n?$>HGij%80d3bSr+&Q}+Nw8~w&*XUKK-TCtKUN#4YtsFgMGBt z@GSKh-lUaA&$w=5#&v<^!x*>hJ@5rxZ;RgUjlyMc3@+t3;>B5Xewc(#qF(8Uu^H_f zHjZ|gOrd^LZ`xuON_}Rrw9!0;)|+S3I`cy6F|VZ6=5uJ3c@wR$Sj=@eD(XS`Oh0JQuCha>lLBrbbnVSi7=?ZyGmIw#@wW{0)54UhI) z%4z3tBib_3hI*|XXdS$mH8%dV(k6nsZQ^OUO)4$5$>BO|in(^%DsHiDJ=bQtfct;g zdJpibj;n3^IY*5qkPwI_Kms8N)KKre_lkN!sG)*D5+Hi-9Zc`dV8DPe#^3-pj(d%h z*nZR86UQ}8yKrytc%$Zl&`HpW!fB6W7-(hXj&iCZdw=AZCVqw#JnnKt$9VzcB|z< z2d$O{owZsLbj^BE&hHM`UYFM3HG#M1^TZM4f3_#7y&&h}q^v5k2OG5i6{E zA~svki`Z*DH{z5{SHu;Y&WNXNXGgwo+Y$M#O-Gc)dR8A+vm!0M@Nlr+bvRF_vjRSg z`oq}_)*d7?&yF=|XS9R1#EjL3*eO~Q7owGMaatCat|f7KrbTfjrUh};runfA=DD$L z=C0Uot2wbttY*iqx1JSypG{lraog6|OSUa>ckG(u-iCkMHpN?Pz`B<>j_^0?`y1;1 zL^f@ZN3N64JfGu%Oy-#Qu_?h`YZ6CkMUsb>CI@O!ai+o~mLq4mt9)izB@+ie??j@Z>FU9hW5y4`Pj@*m+VyXnam+uCG{4OsKK zmv_0uzlgn?*nWsh?AdAT#^AUIKQq~b@gr5rbm%k6dz%tbXdr8mjK>@tTwEty$S2YRit* z%S=c)3Sft zzc~Age#JQ!+iBUo*l_IS4f?^anQ~pj{`pG!VHLRsY{i$A_|=nVtzFKHQ!4! z^8?kGAEo;IB-Q0-nrib4Ox5{i=BoT!b47l$Rat(gb!q-$n`!wQY>V>u+7;&C-!DJ^ zdjI_VSNrGXf6i-*9oT}+&%8z-e1bYZTtPe3kZ(;V_lJ$uJdFXry7;WUXs~7$k5Xf? zyJi&oYkG0GYKr4kRh(|BD9$sL7nhhyi>uAkiW{wpi#x0fix=AD7q7F;E#7UHQ+&E# zR`E4>xqoKyryT!lmsM=B1)HCFnRwsC)+Owpo#g$2+pTiSd#tm{*4Si}?XpWRJ873z zezjj}`HTHh%0J=wlWl65#lR-*F3%Ox7qE4q4lRtSCuy3twa^!vi2?DLiEnk){Z&=% zqzazwTv|O@B{e}Ru8C4%O_B;~GEI3kg{It^a&vY~ojJ3n)hfMao^@)?Dx2i$9kxj| z$L$houGq!bJP#k)#aI7mn^0}B>7|MzJXOLuSxerF{iCg%53@KQVR<_m41P2algb%3 zDw*M+;u&L9SU*Ym_5R9j2v<%+ys{e7mD!MIN^dANr8d->QyONPlN!3M66%**$JKAM ziK#zo8(sg9ZB)av@S$x~{SP)#Gc3JC*IBF$9w!D5)w2c!`-f)J4qdbZEbgQq;LG$j z@=oHCH`87@EhCiG;--vNZ>6^eE3Gv~DQ(G0Zp&6;Td^sjt;!VF+Gvhxonww_U1}B4 zy2U!I^{{nl>m{3z)~DfbHX$wFTZgn*tV3r0!ehkyL2R6uLp#jleCQ$XgC1y^OWxH@ z-hn^qbI>2=@XMf`W0lzHsras`it7qjY*)Nuy3!TZm9NOIa#MI$y(zS7mN~dPH17mZNFA~%IEnxe49K?+?QrQpTM3R;}4z{S%vb#bly7q^;x7x$RF z7q2%>S-juuwfMZ*bMX^qkHznqJr;dy_E=!)#k0p^Hn>E)pThnD>}^|)7PgAqb2aU- zhMh4`0BH~nJm_9i*Eq_5&1m_qahK0pUwN+$(Ui5Zn!GkmUhDGZxvoMU>zd@gu3Hn= zt(M!mJ#t-l)--P2EqGhw*8JNvZk45vl^o##;(e4l--qpu=pf5BkpFK&3)@Wozl9iV zCI8<>{slhUS%a`+kS6YM(u5r@a@#RUt~>oSerKr0?Tpvhof&drfE~Sax<>8n(8!(3 z|bOZ zz(Z&N53@Vsnn~tI2Ow+?f#KYA7z>lYp8+odQh`DKMg!2X{GRW80Y3tM zz;^1sig?dG!kCQhGU}Q2AUk6&WB*Fu8WU0DBRmy7bFdqC z4g1(M*1(LujRtTB{e`buJ%{ZV;T3oleq)6u(x0^`gV9BXG9eqqW6CEmLHA{XNIc%o zfC{t&+TN6xGbaYdi-CTSra#`fJW=^Ov*MyJ>e1p6xj`_&7; zmthv+siE%qkD-A*!OoDv3~;_e}cCSTY&q$I>;v+KZAe3KjB~SwJkc! zAl9A`lOJiD-Y2Hwhb0GQzyjC-ba2a6prT;0Lw_)#Kghty``y4BA|MTlp%z-98w~wn zHEe<%uon)&33vc5!wq;EZQ>2`=1J@r_d!XkYQgXUw<4MFZU`BU+~J%J3fcc z;M2RupI=+-$@TlQ-au#%GLD8GGXea;*rj9WLDR4`9Xl=9>BPoDY%Hhbb=cT~zOoA& z`zikz<)5LcE}?zgK$Ca|t>8~|na}Au|DieAgYy4_WeBfF^N*ZhMYaco^N|any%b`R_v_ z@(rhyrI!~tK7S7uNAwSSGyQ_@VZ&>o$qOIStiZ;4Y;2|c-IRR@-QzU9;UcSpZs?AlLlt^Qw}{wHTJJGRH+svx^lBeNux}4^ zX^UNdeP?pOE>GrUZO&V)&G`fU;&*5jpZHVJ7FK6B*MW4QU7Z9lzb zHB_%#x#|^bUp;Rfsi$mG^@L5nZrPUUG27|7Zr7}9b{)EEH&0jkE!O3Jt8}UVCOz1H zm(KS;qz8D4%$WfX>HdLF=+vOsb;AC09UJ^#9YK3JJcKjp9*l<{f6MUp$vB1_c!R%R zb295y`p9zwopr~4l72NfP>&9d)5AkDblIU$4?0xnyhEKHaGa?#jzalTGEF4YOg zwK_I*n~n_Kr^7=}>Y&p_?RUDReZyYU?%|(lm-A2BF@oy@Y`cda#xl%I#J(4{r=Wd! zayf8AQb&t)5Db9Ufh!gQI8Yz~~n38#70H#`I|S znC05#vOzmsc4@oI5p5lNPMgPG*QRkVYQy-yYn|&4TH|Ult-i}Djt2jBC-y!J!vS1w zf>{5+@ll5RhbA%496Ly7*spcM)kBBf0(D?QjP^`O(|r^3v~yyKwok0qR`&*Nc5l;0 z_bzR4U!-;JtF>m*R;`}2-?VblY10aihfT{oo-r-;eBZR#^IOwGFNu+KE zMJ_RqM={T5XuTMU{@~9%*NgoZo=)29<*J>NeYFiOX0vyqHh5=hop+(uc$aCFPpww? zG-rOdbA~ zUOuAUzsK%Vaa`IH$hY83Ec3f?^3DMC2S4-&e-~|->ZLUSL0TCYqve6AS{j(6#ev0I z7+9&Ez&gzfY%$FZoMY+=TxgmTw8k_$Xoq=L&=GTc&;@gA@GWyo@EcY$L%uXOhgf=P z;@C^D#r!^Xei{3>lgT;LnBu^3UUQoa?S=VOu)S7?jL`B>cP$C?*TS#}^@JyCZg_^e z!t>P`UaHyQHJTOPXlf6iWoiwdXPOzl!rUCb#oQQvz^WnQ0jn7ik6G14zGgK&@*iNa zs*SXm@8vDx|6CFp443*#TxL&alj~%1pD~3wE`F?x?61XWU80?3h^1 zib+*lOpaP&iZnB(LQOGsriPdnQ+-UAsV-)zd3wx7b4|=%tLoVMttw+5wXTSL*}5X` zGwbrW|5}yDSq#j*#9GX6V&^I9ehu5kH1Ig=%VUmwJE8pPRUVaO0gIL+&>pB4BMxf{`G1w9M|#pV&0#FA1&$jYD{<5j0`u` zW_YVQBUqIg(JIeKQfWq}N-_#HEwkKIoLOfo%xpCkWX?0^Wv;Z!&D?I4opsDQE9)Wa z%&cduGqOH}AHZUjc@NLi4{j7N7GU>8C4I4qc7WC8-0vkGZTQiUGeEW3PO8cor-~de zmE{DeBqvhEISDGtO;=%Vp7L``O?kPsrkvcFrtI8qb7tOhb4K1)tF*i$)~R`ytW)xy zvQEzbt95eT_q?`P^^(gGo~9pMo5s{1`^Rd?{imaa!3th?;a4+$)D+mMyueYV1!GiP zFiC}l{wgR8Q(j@5atl+HQvGXyKkKEaY_?eoQAO)2f+sR}NBEV#6(ej>~tjTk8-buO6 zyRPx`ey8zszts3{i)nn9#pK%A$GJAHPn5qKyPKA9J}e{mTuwVc1?2E|5`-^h55!Wl zyq4O_W9cxtFLlwxWs@{vnXlZIg+iRhFHhIF<%Jr%yhbi;?i#&(kwz`wq7loF$$9xz z4PXAMhA;a<&P$lFF79Il$J508;3C!^U~laz#-%mHU>z}7PyP?-8_5455WK*3gN;US z9IR0rhil} zUV}D%BK!3}YVdky&+Ga)wwM^KBnE4V0XDifqrq(DeB6!(vxEF^7i|Dj!0kSA(A})T z*lVl7`v%K?-*64uHx@iJaG$>h?2AzUeaY&#FJHF%YGkvoLsolN$h4O)?Rfwm$Jo2@ zHJ#5Q)2=@DQ+GpyS-YiAgK5Q9^&axi{j7sINE;kN13JtakR#YXiv8ng04L3|J2g;pN?ucV&AKGkqM&pLz$*$Z(=Twv^ggy6Cx6Tgw*%0eqI2xQQUg>0w< zI{d=~`U-_#;mZ#_3m@^lZvh`*3-SJW9ZdZ(#v^Q|VJ{MUzI z|Era_*G-%osdFi|GcNKAHCM2YO*ca4{1_SlHtil)pZ@X;$LHXAcmeoTWAWq^y)pz{ zWEhik7bb@utP#PFKO{gAnne?E(*2Qs@y84B6ubwt$sfP&eL_w18Tue~&U%=0;5r)I zudsi+Zx53F)5PAe`69duzk@g6P52}H8Qy|-h{=0{Sa(89J{*Nc;ZD+oAD<_YJe06D zqz%>po$Ct>eeo>t#V`Jfr8EO8Mm5 zyBKRR4E^C_u#i{w=?;eWfELl~hdakWh=Xh>g*q^_m@ZgI`76*^)}cvk!Nx8$g8f)J zhE8w>ZQ_#tMfUqoGVp&8yw7>{DPDcTHw~Kx#=aC|O~$)mu`_agGzg(V^y&|W9y1<% zz*vKk%C`%tPZf3=vC)q9F_%n!5!%2?Y^2A8tA=YA?LdLs@CUJwV{2ZsyyF}zG^a2Zd!T%S_Kojjj*Pu)F z`7w}xJrtYcvFS^lBC(f(tvu>chK=di;8_^>@iKnAh#$}6$FunHw6>u(?A0Ci<~+`G zQf{KfJjP$w`PMa}b(NZ3#md8Xxx&$)SNpKVK7M?QA72xXztcAFvPS4ntj+m7{o+;j zYQ2aS^DJ%h6q?W-`o`ny{dw3~jGfik*i8Amb(~lnH9eri=4(1+^{fuqys!PXUu!SFrnIL&JG<`T zM}`#R0Yo1#th@;?^ZGgbdfIM)Zd(o0b!#_0Z0n~>{UXs7$5yJFV2lVVkvn*j}w0eo||OKcv;pPip0ex3qlZ*IGKt zq9u1(%+cTrH-_5D48^`&cKpdTe3)l@l7HjZsS*8j)Y(Y~M!0GBC|~Uy9jT+YZ+XOIAuL)X$7PD|l zn0ltfY2K7Hb$jQk)4N!6yerk=Jwxr@t!ne>Qj5=0&Ggx*Cf~iLM&Hw>2ERv4^?om! z>ij=8P51u^EWhAqG5sl+TOZMV8q9-9Om*NuJh@J!p?@&H^XsQYJmt8@Z=AaQC#!R6 zkY-Pf(yXaTY759zOF)5|14`8tP@{%`Ce;VdR$bsiO%Ggastw#_st!6~stUSdstkVC zR1y54sXXLAU@?^k|HALWnRa0FY6^WIoi>0yspOozw~E*-46#;skb`Cik5+r|B(;S2 zt2rc0jiGU>4^7pK&>T$+wX>qA4j>}O|+%y%&S1UihNqO;eOu6w(OxX#WOj!vB&6x=o%o&M~ zo6{5DhHt=PU`kKu;~8Rb4SVOXf3%o(fXz(5R`B<{Ox79`kGjNus!DKFdEywACQj0{ zL_ZZJhNvJhMtO-z%1g>pZc?Fgk}H&zT(8XJ4pT2wKxVzlO#^plBBkUfia6`#|pxSaW>nA|m{=-l0=sNDNa5qXc9Bl2E{ zf0-h3Eq&xzOp)-bT>1i2&J)<*SIgRiI&>gdP=gMIU$uNzjE~v;%2r0+P^IO&C?$WA zlJb3($bPMaf@sATBrC2UTd{@3iY}~HRAI9s3%eCww8|7#w96DyblMbLblntG{998{ z(U-ion1Ty`;Ze#z$8_`PbW*Se`a%QAFKN^4lsL^n@zX{suEb3- zB~uh#5~!$>2t}4AD55k&;iUx%E2~gQS)+o>Iu%&9!W2-p!{lFn(&Sfu&E#AD8~DQH zS7tH!mENVqVtSZ9a6k1wgx#GjoRh7r2ZGL-=s>(zHiO)o&y%XnimtR*WYsW*SB+Iz zm4`yA{S;gss-Wsv1y-jjpe9#SYf9x`Gef>L9rCGNswuVGG`aS;ylStSJZoQ;XYJ=E z&l>cHYKzIspvq#pNIg$d|NYqA)nR~zZ6H?z_f%WJQ^`qq9 z;3mI@$?|OokWWK|yc-iWr7=@pjm7e8td&Poo7|fgX=2l6O=vnI*QP5P-}C}}D%ZyU z%C&)&!}S)E8=Rw_y=!sikb8I24)ZuCp?4ih7wcd;$$jxD5}&5dveM*sdwI4GlSjLY zCe3n}`z#+#oE5AIvts1dkt)}Ye2wd<)Yy(@xpd6e=#KRoHT$4O&b}n)+0V+k<717O z^`l0%vzoiDkJHq%cR$p8&WDAx!(!S28lZF$_y2h>ZUHd>?;i5c`F0vRe~4UqoHeFr zoJRL}XjG4%M)rhh#DaJYUy!L`3rgg)pk6~4bjguLB@PSrX~=>L8ob~s4et3+gXjOC zA@i6$8_c!n81>vk`J0z;eOONZzmjoj75P8pLo$SeAGm`H3|rM-j;q-Nvf3H=b<)+I zFje-eBOqCWR_ANr>T300-L8JCm&tbZPT8!wUskJb%6jFW;a{>@!5)z1eH^5oJC+fH z)m$IevL9geczK2lcOU1i!n znTvfOg>muUk-=+D>g{x*?F4u`g>5?qk8tw;2J!D7@E1Fo{4%l9W-MQFl+D`tv zlkwm_)&T55gV~D)1mpH$e?RsQq5&Kt4?WzUfpsuA!DyI(;O-3}z(wXrF3{nP2Ou3L zxQ8j=@PnLy&(ioGF(7^q_^_Y*Ya56GwioQ64R$jg@K5uwlX!%6I7itBg8So7VE-f< zz-jh@oDmm!IA;w506)&*$9eqVSt+`J9}k8?G86#=&4YBL3)_GKF5KeZz0G&NhM$1l z1AMfYI?uv(?P12FxRuh1%H1N{s5oDH@zB6!ztF`P~SA{MqI`Iqx3&)4#nmG!=_=2X6)5nUg1c$A_<~A zcpct^Kbp})`k_$}llPoh7cv%oVhTi~QRG1bH*%M-UxrG5O27D&ihTA4{7p^7yo|Rp zupNb6Z|sh}gZ@SR`ae(Egzf)Yhw>JGzYFid2kL2IYJi{h2Sa->^8Qia0md4P1jvChm;r6j4U1qUtcR^| z9~^+=a2BoLGTOwi&?a6W<9`p$;HzHk!&v+AZ}<`n4dSox9`vofF!TolLyIu<7&q_( zV^2;x6hSpKQT{B-pGOA0nDSRq{szk5hW@deeEAU8PGaLc+QcJhA5Wrvyg`UQLpJ)6 zaP>Wl<3o<`f}uzB>JPozhq3O#7Jk+r*eApqjJ{`rBw{ZYJEho|jutVK@@G^2d`ezI z`Ku^@1Lbd{S@zI8hpF3X8GBLQBJ=+f8Tx0LwWU4FyyC3p_{GzXf6rnJZ! z?1`Z>-v(G zqGmh`13#X{kEdvtCux@_@Z)j(xP|`kE3~N_w8=FTh^xfn3SM0%QkQ7C2eD?TX2$X7 z*A}|5;lnpZmjaoC)K zy%0)_bI=WC07sW#bHYlD5g*4wvg?ch$W9=u4acz*7R!P~WL$RRBm zf=c9YLyH_<)dI)QG@oa*%!9c+r{!lp8pn|B!Ens5dIK(bk^fKRwgN-kAtx*C9pa!J z4r8>%(Ni0T25OyCl-BU9mQ};Dv|?C+mJKV_l3_JkJiJj0hqtR|_*~6*UZ%Ouo76R8 zuR2GZ*6fjwsAJ>{nl~lQkL$1O5JH|7|WDnWe zku}s3f_;B-K4P-Mt)CXV zqCdEe)!Yf5=r{qIJ(1@xOiWPQ#B{Yx%+*ZyX=-w>RHJ*n>L;~n#-w?wLyM{P*rpnf zBdYeis7kLV;aycs{#NCa*#Y=7UhJO>qz_`-&|uEQG1Y|5H(JYR{do5KTOHg^eF|ZnNq6iDYdHdo~a7&E|sIjl=*B{iSI#8 z^F6O(zuPME`-=+w{|)Sh^!tSuvGptLUrZ#=NG1lbJ%RgM_^~*Qd#$uho6jIM`wmxw z?|9Yud8yVfK-GQ`s`8Ilg@3Bb{Bu<5U#ya;Rhl-nK}7)_Dhybpf`ARm58S8Rzz38Q zbW=IOe^7StSAY_45Y)%BOfw$E{<&20j11=3usMww@LmtT&BBj{!2W1ELscE5Mt$_uGePDs15Lwl4Jx>lKCdz8)t^3uX@n9{<3 zZ%PgS5-bMlCCs8HxwJo=LOW#A4msrhupx`wA3wVBqXj=|!)#R%>Y&oFktz5(l;i=3yFsMSi2x=%^br%j2`kD3xyz>($inoVp-;ZzZ0R&f+-52A)EFKWDUqCAxq<*$tB zP^Cr3K(bO}vXl~2tmN1#CB-%?F|J$jaVr%Uw^On4ClwQa%@m#RD*OX1rs()SV&cgC ziNS-|JAv(e#Z3RFk#llfz~Ak}qmFo#;74BkAZ5onDI?xRY4Pq#jrUPQq$Haz!R@S48r0g{NFKg{8a%pMk{`mTWPF8zk{eDPqv8 z17UkNQ{c_zoR1vmm$2TMcvRzGQ93zaN`Iv$J1UvAIf=;=l#nu6aVY_cO$k>_N}Qro z(-f7Or^vK2MWoG8czTCI)0ZeDeXD{qjw&eQiUKoUP(a3~9RI7pbnX;E5Ilm7v()=A zws%$07pmzC&|N`0;8$fKIUntmnrWl>jKPY{a8^tPzsi~Ep~y@>MP!C3JS#?FS;-2` z%29B3iGs4HD=@oV0Xd5_HD|N@at_Nk_p*F)pM#I(lk<~&bJ(q$-G}jP{{20!=R5Ag`i>@+`V2kD_Pb@9?8M3we@VK_3rN{&DKR7u#E#=nKvC z1&*^C(I4<-S`F=hFLC%1QqoTWXfabuM#!&ZynIVM@6u3BDP<2vDSI$V^W}jS zGpVdu?q%~dv3#A}%J<8){DQ`p{~G?L@nt{AwG92Cl$k3$K+KO||2}MQYU|qzG_Re! zkJr^R$-D3+wVrwZbaLMsD^01kmlu1KJgUcNQq4rU*G$pGnm|pciIiJSl3Z)EHNLh~ z<7(^WGQCq{rmxbd>3cMC`Zz4mrb!yzl<}evJcX_6Ir5aexsTI%m8bJ3Zyl=?~!=+?fcuvhS?apw1Qz>|CS) zomK#-^p&y7wR{gS$szyz5Ai&p@l8vd{{#Mzl{7J%E4HN62Fvw08{wP z4Mu|F5^D`wGDriKII91WQR=tEO?FEr%XUeite3>dYDv0GOXz4zXv8H{V##_s`eC@j zBEXlp5Pk|jfQ3r4TE2%EQ10p#ytTS-FHp@|`oTK(!SK}x@P&ym8is=X29s02|r+I2RAF4(A{m5b5a{!Z`E@ z8o)80MR6SaC*hO{>;OMb;m2wGIPHSiIf)CPKSV7f{dEJ!ml4&Bay%c7m|uaSHqQ)Bb1C0M1D!LdoQwiyS=kGd4_s26FKo!i^Z( zC{WO&zlOg8vAFi%J`H9+*Jo_!V>j^(8WjJ`1AC*f z=YYNb4`c5UxDLO9TW}j5zsnsnlk$FOBlaW*L(wWmp;h3=i-FuMOM+==2(3V)zkHa# zuW@`8K8A04HJG{+JdYOJ$=D60exBGI%|ByGF1wp|?L5ixX?Px9y2~pZDe8aqkTS*!^Agrx}mWGZtby9J^kR zVV{qO++huhVe>gKZ2ksbhd;ny;4PqQ{a;$hNBsQ>d~S;lGT3;40Xhi%B9`Xd$m$;iHqy&s0|U|_5}F!q24Bf%dAXp30tILez z=ndhJ40%wFjXJW$7RsMP2HivXODTUfaL-H!ILmkj?1S>^rMxlBlIk-xvf9siF| zAbuc^@3Z|bM`Invt6)T-Px~-&H1cmle=y=<=s}aHQy_JU#a0GdL=m;&d7$LEpRp$8 z6LnH@59KeV{MFQJquwQ}eVa`8FJ!;QUX(ZK$iJr(y~ew*Qo_rWYS=UssORC=VCWHj zw)^sb{8!3Ay zIr{-DpF)?oh%RxHQ|LGR|5G%BA33#{yTPOI2=uPO=&k>~8iWlthtSnV(UOy}6@aa1 z?4)8Nk1kqD`8*2)Kb{~Sw`rG~`0*Hi+`x}V(I2jo?O#D*xQq&Mk-sjW#+;+XvnXO` zuzNq8z6Yc3Kf;$_bnAEFbz<={v3QR4D8KGqgAqc@#$h9!o|aFkr3_Iu=mHIBDJ|HT zjg5KOSVH-0h`<)~h`qGP33|sxR_feBnfV>9^pD=2yBqs^?%_v<+y)l?j$B5Ixj>toLlZi~Ua3=PQz!7_80~U|{&5ID4&ujt;<1B`KiZGsm-FNTy3`qs z!JY>?P5^cyv6Dm{GKqEpEnmvnP>r2>?6lAdbFkAx`74OVX3pHbygJ2-t}A%K)DSI+kJB1=|d>Yz@_EhTUT}gXmp61Cut{X`ZaDRzccq z9jy&E$y#Tdr8Tw%T4h(Nm3GxyZdb3R{aUrSUzZm3TcQR1*J(ccgXRu6uI>Ss)j9A< z%^CELX4`+G4)z7jx`+3$`_e=%0Up?g2i%$Cj$?kuPAKJFHTh!*;be9??vm)6z8b zjv9x)qXwsMR6oqp%M6YNZ(`HXV6OR5e}C-zl6!kGzns8SgiGKmr+!-MI8+OVx@f+W zr@DttRp+p9%^n`7S;JG+K0I5k&g{W(E?2X2of@56)G(q;Ge#^^-N?BIs}n^>k|_c|51x2j;$eC1DCtvrwWlZEbCf%InsO#rD|}?h=Y&#O zn404Il2ZIWQ!*NiL5go5k5lJ|uzxyF zUim(r%JcD8j&G>4eWR7>o1_fiOr`r3D$TD#ss0U0@t>olsmqi&b*mBrjw(LzisAyF zS6t91@LyiDGV(4riT_1xo=Bq|GMHn->U8FJ$>bUMQI8)L_)$1@kn*NFDSN7mGN-yL zBfwi}0f9;lh){AsypjUblo*(&1fE?JA2dU8!Lt+_yjU?In-v{;SW%&u6&d!dBEmj` zA9>Bn$k0Bn6Z`Y2=s;Oad2`73a>@O(X$Smh#kcAB!L5Dto&L%Qc2ru(D5ZqBDJjHD z39QeF4+&LVXpCY*Qxp@Hqv)_{iVB~u$nZ8rL@ZQz#72ch9#Tl;MTJB?t>CB+;Xk~# z@LnH}VCQTmeF59M3P=SCndj$|`{NI3o2rOMA#If&X{+RjAxemFR$Rn5#YT82I>J{` ztj~#zj8a5YqQavx6&78j(CBJ~#Iz_lrbj`s>lF}tKvUx`$UpAa@K^YOznLY)_Hl(a zIE}pn*xo*k6r_Z-h+`*zHxQ3<+9r=ak`iyFxLA8d$2uu8c8nroCn_vOj~w zp2xDff-wO)O3{Jvqm=mM&`wGC8ksaep-GMkP8zA8Bv%C{dnzE=UsIDq<)0EG-;`AO zq~ysvwOmtD8#FnsOI~TK<&m~WlhPlMd-~&=nEo!uZ#5~6SrT}_`8=)*)O$B}H`g#O z)uIVClbDzfNoYAW!d*Vwpz62JUH6?$LJXsgxkv~e4@?GW5b89B%`)fi$nA{5D|iaw(grF=gHwT^6KKWzia0mLli! zd<`$J)UfgvIaMsu(2A{ctT-Wuit8F&@rE4AzXG%ev={^9_o4PQF)p-meVWC%&_Q3A zjTXi0X|0?O_!Z0NLHIbCIJwrD&{PI$_;d#in?6EL)5mG(bPw>8V_ldW>f$w|E=z;! z%4A>Hq(L+0Yv7EH8c=sc{p%i9zq*&;Q}v(zlLpkXq8biS{x0lo=%gLG`_`ef&ZQlA zo!3QQoI?!o$rs<;+sQxi)v3)|gIfp5zICVuwT{w2o}D|Ob+Y=m2C83cwCvi_WYbn8 z>$WxW7^`AdL)~rd<{NdmN?o_}BLV*j$Gyu%2?PxrEaD)*s4m`jg zqJWcm6&-mcjkuCZtlWx`lUxjc1tf~gzGmSGKET!`#DKDmy+9r77@Ie6E^J~<+KdLX zg?%vK1|z_MV)}2x{&q3Rv7#gQhruwEzemD&@Pa^ygB+;la~gE}TGpZ*hN}erH9Fuw z84UgltTV>;3hZ`avjH0=JLrdmEou+v!Cuw@!H9jte?MzL4q*Eb9QhgiID#KX?783& zkE6un7=9d^%w!}4lAsvqbjIeRqZEAf0{@;qapYqLh3|nUIbeGpb!*jO`EjKG^n?E?AQ{czjzUUP3 zByh!O6>UJjc#q1yN5Sv?20qmE6ZApqoP=w^)N>N`96{aeZ=pXuL77j%bMPYYmEPx) zyvgx@;7{-ucn98t58y-inD+T>APL-1o;fm}jRXPQ&`xDjK^2F-o?oKjkO@-!3QEB1@fUBjI|)G&jwh*7${(zUPsC$kEV0eh06BMRs854rZ_gLyH*$o)83akVy%}=mOQ0-$40o zl-)(y3(!86QT7_Nk4>iq88D+0QE7*)&wF|xA z5Oq9F(_N;XkE46MLAUt=Z~E*$&C$?4jAvn7gJ0~kYzKe7Wj)H5y!6WybSE^1`8YtRa|=nk3pSm8UXV!g8pdP;13ByJL(B{y zpc5P-`#(!m9;Jm|7ZQL(I#ZQpV|joBsJIv3Q8}C>P{P zDO0c$Os%4^k&KNjY!qUn3>(#G1NG<;E%eAa*yy3$74(cvs8f5;J5CUp%cw-`10ljI z=*`QqdoTYOz$wnq_9DZqF~nWtw7!f#=Qv+ZagH2iZ_oj>n7y2<_puga2Yq83eRKErw);#?{eDtYf1dtx7ej-2+7P)x(2TH9Sg{&WS2_PFI<8 zo=QfPXxfMx6^&?C;m9uKk6f<2QQMR|`k1muKcuWN&%wvabomJweed!l_O1kTizSR0 zgfs2oxSqe4`ZN6_ChfFOgNq${j)N*kk5u^>Hs)uaMcprA`$RN-FqUan z3^9l#-(wmydn$Rx6t3;=W|g|ytJrmz3S7r3&ux-&-FWtaTadCQL@HxKywWG6DQ!Zo zQYV%wdE#^>xwk3NeW4O2ZBU%Y0mXV;P>ko3@PT5yegN(Yc=loFK<7*Q=FAFWtT$fO+Bl?skapn@HTv_zyQ`BOy$Z9SBU>YGWv2a7YvGg4T4 zfFG6kQHUSu0oF?Nvsav-lVbeFD9UewBK#*S+}~ee{-Fw;8mo}0sR|CrQ&2#;0s|Wq z5ZI}yK`Z4Se4qS+&&Vg_Cj1%xE#DB<9R#yd6fPxjdk_2jvgr%C^aWU$!#p2fX5dE| ze&o_uQs}EOK?4;LjX4riq(T)@t;Ec!woQ~g3xks@+`j_v$iOFT+w zn{4_>B7G)2yq|)@hbWNW^$rLhEB|nJ`GxcRg@{1;M6mxMGC@<=D>XT)SYA=J@{FFP zNzqH?9FyrwaUzlAS(%?|1Wo@5XA6ZeDI+fjxNR7rni+S$dinZGNGIUk5gI_(of z+XSU??>%XtJdzwVDal#xN#isznP)&G`^YUhSgtA28kdryu_<|SNv+VB)R`KUx7r5cvqD5sox8k(~~ zj;x7s;9-V?b6?hwoPY2d?ExLe;3%=*jeX;{nO8Q_7n;x|p}v8>fIpe|5=UG@@Wq=p znow-g=)wVVE_BfFLT3#t94n_no`YHFBgevEh?N5iiG~yvYjDvF*%x?n?O;Mv7M zC1+Dm$0iCt4v%u;ze%wF1^58lx)~c6a6aH__fq=eGR7syf>;Oy58iiKf(8WkV9VcH zYJ-?M5QcygFbQK#3Y%Ran4l616GbU}NA8uz%+{t+WEQ!@Hu)mKr zAQZvmmXjIw-#zXl9{Y&L{=tAB2k_$nejN0J7+x~~9UvA5y7?Rf`%m%jZ&A+s@GX-j z);UwJt}T6CrUX0b*oZuU21MA#AHx1&)}S0k12~4w6F?CpE&n%X%v^l?0sZ3vMlI8CDERzUc#VHYdz|}^=27Qn>c?_2WnwQHTfQgJA+hCzt$}CJ z0M23a0$hSC@bFzIisYwH7kQN94Qn(JVsg`gBxNL%b$8%AxswK!&;jnZ zn_$>9Y#DZX%jfvpyS&cvP52}H8Qz9>;ji#_TM|h6$QQKBKd11VkT~>^Y3L!dfX??d zmHwLGeQjjp#`+6GcQAB_LEs23;03{u0NF4NjJ+t0&<g06eh=e%2riEyU1bMu4#% z#UG;3SW>Z(Px)n(T}$@dM7ixK3SE@D09|4ky2n~F+AZh>_pw*xFsjEHa_B2)6HlTW zyhWJ4?$thwwI{y;!?v*(4T6+f=fE)UT^E|G6PNZ!v=7Rc9^qZO=Y2-%5^!`L`S?tX(; zuc8Lkd2K(Y?NW68XNUkZN)|> zHWqTGtY!_ycA|2K7COf&m7Ay%Z_so81%1k*p)MNy-46R)cAm0l7~*(|;pG8*I4K*x zJ(xNT$KH5a*b6%W*oeSJJT_9Xkxh*Yu~Ui`QH>T+kDWGbbfZNqMe{H`+Cy|sv$E?E zdhm;U`U#%04+Psk^CyPYXNO_mnY?p2`OZ*sE{2x9__l+wV-s4;TH0i#+^EkK>;zIv zo`Z=W^YEh^Kf2IC=HN#M?J|r0(Z;J5{zWsfXe3(owAc*vpy{-7EdyAs={wb!S$TGs zR~b%kk3|x9HwIf1S$V^6V3>l`W{OmcIbO|H z{0@dywi>Me4|{I`U)8nzeNS9Za^mjp?oNmRF-U?-@Zj$5?(SBsP-rP_u@)*&gVIvB zOO>{l`mNh}zdHgs`-I;A^M0Q9{r{imCVYPEbM~GyGi%nYwb#sEYwa#F(6op2H?5O? zX2Ybf*#zlrK1X_*uaX`XJEfcD1Jc#oVXWk+R9@uB1or#QQZO|}FXYw~bGRQha23W^Poeg_H*kno{n|$eITOvJe%cZ+*jdatn z217GQYBXb{i)MyY*)5k!yX{h8cU;QspOP}|$I?mrD`5VE1K@Zu6dOcQ2XWlufwBk4 z;t0kR!N~Vz*o937J6K3RJ1sdJH|eSMlkVCu>8g#D8f}VHYkB{JLp!N*D3wZwDyeYj zCS{Iw(#dgzba0$1rA|wv*lCLtIUkkw&QD08%S|bC{RNPJXu>(|bP19Qmq;mdNsvyiY0|+pS4v&mONm>V6uGhf z!L5%J@-CwS_lc74u|V=XH%gA@A<6bSFIisiN|yIel1&b#8IQ!%4pQ;M4956b47D=x zfi%XJiNt%@q<bMp6Ra06$1dAoC6aSQ!aUQSSSYyDgV`$YY2H zW@Ix|PG@X`9(~ZG20tkaG?QXKJ1O*YmI6O7$@2@8T>l8k@sF1*|5V8g$dQbIB1sP{ zm$blck{UEXl7mJ|Qt)g^3|=D%A^RmRIV4k(Lfc7VXh%s1 ztC9Gyei9cxQewkrNOZ(1iHh7Sk&&k*BJ#RKM13ofQ98ae_W&HH%zKc(v6x|S32_FP zT!b%ju0MKoLyrpdXpbJ*5mu5Gu9cK<7fA~Dmc;NNi4TvExQKX(WAB>S$UKRODwSyV z5sr%PBazX=B|K)DgvG3o(AeD)68o?O$6W(oOGq4Z4?t)vxqEEC3z_RXF!b((FO<<9 zI^qlH(ic5y(4!N+Qb3)h$C*oFj7H*PoFq2JLtpz ze}ZJc)WPDLI!V0KmWWr{4)IJoDIV$1f!pFq{>3Y;5eF#mR^+elOutx-Ki2RFn&S|3 z>4_dy=vRWBa`2HPY!aDaB_U~c5|rjFf$3fnkRB-h>EYs+9xuKb>Ee@7Al{js#51$2 zcw`L}_pI^anzcw=vYGvt{eU>-TmfJ3`A^RA#E7{$d$Io}Z=U0nU zew{cLj1`B1`Jydg4~T-}V%P2&z)aPGKRCzJvwU`@qr4lCx2z}r*av^?i$8K4(2M*- zH`*k+6`)IM1#u6$1eG%XpvX$x+S`juduMSj;yoNif#O&cAr3_eAWO8xMPgrEC3Yo! zMN=|LY)j^dP00qaDmg5cB~O44`23St7n6Sg+mW#rc}wc(p9kOz1Mx?W%37Ri^eI8N zY;;M4F1!n|7dpFDn36xS75g&s4`pt^S2X1zVp|?7HsxtzUEWTt%FD%~qNkWw3=`9e z8DdFjG)JBSNEe)ua4yTsJr5Lj7U_MU)E5Kgx zD2?qk@EwKx6EL1b{&Hl`9Z5JontQ|;`X-KD`QBkTzR0yi^b3QP4>odv-VVL2>MX^i zPD8@R0k{EQ5DMZzCcu&V;oSWo?mHeVq0`+7PEo+?;2Q!wbm+wz5acXI?kvbAO{5+s zLB_Fi0yf}W>R94$uKS~x+bHHhpqn)?9$`+hz=j{#183j~0+_@R36eoRz=?)oz+wEb zem>aB4d4Wg?gehfUx7bxe%64DqdiQf9;R`Rn1L^XT2MNjIS?QY1aZw{DmfrbY7I<) zOfd$QI5D=EtOYK>3j~2!3X}((U<=S=1A1)m;RX~AQUQLkp&J+hDBSv;@W3zEz6HO30iN9BDr1q`A6ZQ2 zlA;Z?gH7asHj{(ef_$pbY8x_l0Dexu!hlDGeSF_%$_?0x9Elx+0sP}2dK`)b)XAYT zzSjXN^dJSe?>KlK+S~l*H<>{B22r-I$Spxu267^iNgQ2d{l3y>{V)$j+ghame&TrUNo99)VZ0OhuL=<5}&vGCILqS&PyO z-u>Y{6uzU#uqf|FnMTY!hqzUFH_B?vu$ipKUQBWv)0`(a@d~+vZ!uZp`WIyliXvOd zL7W2m@>wRtdIMHAQXWt8ETQCC5|EPx|04N-c>6taLT{tT8|d*Wdb~mud7TLC8d2tp z=k?5ZS|6FEsl)$Y58`i?R7rgt!dkDNo!h1aBno8bdE;XPlsz!E0!4@4!MEU3pt#jb_{Fp2#-73!Pv95lnHTdIYd}s*KD9IpeVXL{9_A#x|w); zBYBYZMDuIWV>KComBif3=~$Pd$zrr!2-o@4{B?nW3NE62$9H0L`Eh#5BB1uUY6k>OUOSgCJ(ZZ{KI_on1?;);HR_rHvy)h#1$I-gw3Z0dw3gm4W(P7Gy9Mn)!?j(p@4 zBc}{GU69iq5ABDXq2xTq(UZ)imX@)yY%3molv=w0#e3if(6|e7H;z|a$v=3KM&}l@ z#~b+`jP1DPEVAdeie07{SyMLNze(P7I60wu=8p}=M+c$D0NQLFdh|mNRy-i98ZYe$ z{{dKKB&}x(XBMH|MyWD7D3wNMq{5gt4w-%{1viGHRim7!n{N}n^#DcMXgj= z^p$c;)?iq&2E%Hel(IIc#QJ~~SwAZ6ZC;l4w%14TUy&?_?*Lh7kPS{F|4bMqaFB-gQA zavZx#wqt+EbQ&cYJOoQ~UL~o{dnCo>VM%tmCP}VeOENi_W}M{qzCW4AJ88uJ+}h@+ z68rOgH0K9nlit{=#+Q4myQvhDi)rWVDEZDFlIQF%IWA$6?ZWy8=Eh{WW=gtiJ4tix zD5-AMlES>0B=_Nx=rK*=J(f$H=Prr$d`M!vUI1T840)JX_J~n%oU-ph_QovgA)9&t zlQS4HqsIX3qs#$eyGiD?@QlOLTC&N-WO}$tx`&UXdIm{~XM`ks#!HfCnk2GsOoCU5 z#F2}M_30%s>=zU5J6R%qmr4W=ro#PBNSOb#66*g?j(aX ze1^Zd)B{7XekqKv;t7kQ$UmS*mcNCh`r1j7uahMDdPuylzr^{5N~~Xu#Q5?42mdUI z@^3GZ0TmJv&|Sg;2TN$+LmNeHr)*gyw~4s?~sKp%++43hAmNC^u{kkH@^ z2?;5X;E+xd6xvk+LkCJg*m&^^TOhvSTf`^)n0Q4z4Q`2d#P8z68Yy4q<{Y5RTame{ zgdunb#@JvipNF7JPxRjXP6->tG2w_fBwhp`iDTlgoMZMb*p2-+Ab(jU{@59R z?7}1ID*Tb5Usv=fFUA+JQx-N!pl-raO~fzJM!XZX;+5zk9*JJ!o){=@NfF|jlprqT zVw{uPi&Ju?IHvR#2OijKQ)h{N>N>Gw13^vN1@OLTQh(w*BS)|UIqQ(Wq?*3DYh!3O zyq4IX@3ov~I)$`@CLLX4u~{%S@y@gq*K|8^Np}?Iba!#e@DoSYDLG`siZ&xn?3ov1 zmsuv7tRA3VYzP{yvsQ^!_I|O*J_BAC%j|E(iX4nJ*h+a<*Wi!c>6?1tkD$IMF&E#f z(S_F#NiHYEto7O1#U=PlH8obQsufZQ;oX@&iVfaYL$Lw6#Gzj>be{dl!NAhCH**kro0Gq=p#j?iC%{c#No@Cs z07(ER?t#&ii9J1Fs7$KpzLBKsF>o1&{{n|Yhg#kU|cePGeh30T1Kw zPtpnB0>9yS?3{?1=1intm_j{FGOFO+ZVi3G zI_BZ5CkM3w`{PFD{EQ%i8w=PDcC-SDC%dr8E*l1AS_TB@u@~Rin+%Epw%9WkAZYhN z@D#M4lUMmw#!`;{$gM_Zd*q~Uqd!K52R!X}u?}Vry!U|vfS)!z{5;CB8Ta$~7&s0d z04IzXpjt6dw;Qck>}n^ZBv`ffIVX;7L9tnw&*G53;)w zNRHu1rCx>kRcvwfBk7Lp4twbbC}T8b^QKJpRF~;P@KIzw1{66@0EPDz@LUsK;P@iA z2Cjn}fTA@#IDenxht$n2^!Ut|1r3Qz>@Q`%kUE0P8GwR+iJ&i)EJVxvgEAjP16)7= zhz9AP5R?(EDr-@C5hV>Eqft-fIGR{}A`#1UauaiTcE5yt!5X5uEyS?<$ay?KZsKub z>9>fk{zYo0aUW78524J#xB!$KguV`nK31S{KFXiOGrtmJ{>Z$8?}%f*Vh@Vj?1k|; z(abIM_yj#ZMvo7PBySS+y^kL65M#bYWUagx4?3X8jl7l!2 zl=%>99exor%4A2b#f>~mAhM#7kp};Kcy}Q0QAIwYEBS%m@E$;VYAC!%QAHCd+cfe8 z^W+i{>J!9P7l_i&;;fJI?KB)7CcE+w5|#XiG6!QnP}YMq>+mae@(s8JZZhxS4W4no z%)EoE5{is?_-Deq9hU7#KB5Yj> zTK3{Ndnnm1Br0o9l(`tnei%wFLeb$T@K2z)k>Xm%JYogjv<#^V zl=&A6zz@j$1iS_mcfSZ8Ay22w!8nR74ifk8<9YvX>SPCT?pE@2o6%z*N!F2{DoQ7vjMXoaULct{PDKcLHO0!d% z{7FE|rEKPOiFR;s!Ct<|2}MQ>TvO0Ln_NUYEM9^amLsDJGP)z9FER!rV-$IU$!Mai zN?A>wU>9djP+QLsyMIQW;7`0+*MMOhm2HNeraMvg06At(+=qO+49ZCt&%QZJiTf9j ziBQxkPrcfsn$d8So&lpK=YB+Oa z>d|8;dJIO7fwbEJ=uw9r{iv5d_-QYwdZ1}HxYT0F8cJ79eRQTis__0Q@tpggb z*rncvdzz^=GPTHaMV1dzf{?==l(gAO^r%3OGW6(#ln$IJG3qA8M*XF|@kl8&W(|hP zGRZgDF1e-;NRH_WLx|K$UlHn$UVrdZCeDlda#hsGlD2TUHmZY)8CP?oyJ6} zE!qFU%t6Y`+@zzquauexONn`;6j{VedkfZJSmsE9WufF-c9LAHYRR$U{SVgll4(6z z(ruPVn$0#zu{kcuw#@jlWd)w*S3nK|Jb=u-+}1Y5F|+`4W3fRbV~P-lgxIGyHmRY$ z%IwXh*j6KjwvJL@%ex99aM0kR|aBg%aynE-{YXB-(MHL^_R= z2&efH=DbNlnG+M@a!G<+K9&&I-z1b=OsEU7Kk~Mx;)@J37G+Wo9LMo}DCh6a0b!l1 z4>6~knWT`5Npy0M1ZOvibM}!~=U|C;j+7|o#zeZLON48_gp-R2V_r)@5$2vaDZ}eMRvnlpj?KUIrw50!}T=Am)!EZ#4x@H z#|HRFx~~y=9czhpx0gtFXNhq4lrVRH3H1n*5RVuM_Dqo=&s+&47Zc#sMf`b}lAq5= z@$s20-ahNZ)Ayiw_+AiqzxTz%?Wvn8R8naMqC09h;z_6aSD2e#7N$g^CL=#sEYQ;8wpjgLG6s!29 zVwtd0%o830FM``*5&wr+#xtjr@~T}?8@T(Z5FqT37a%9fyO6b*{HqnDN!Le5@`3KIIRN@Qhl7OyZ*ujS-7?<1Nw06LWNmTBD8y@R}q*EfmfjXgZr*2>< zjx__Uh3R2%iG0i_;FpFx%!+>a0&=HArtF6@Y&ibNv1$lvb3P4SqM->uA9sqRrLI`A zDkj}bP}GWChK2@&Eo!kv4YsJk7Bw*-1JK}VP`n04)lDd0A+cis@@8^bc`wh1$&hiZoJf^Tpe=xK zuKA#s(-?9<(3%3mnnsK?rbDx6oRc!bjw5=oPl^l=1lVFYjc8a0K!pyYQ1uIFbUVo3 zJVIgL;>P?VApd~Omh(_*X3{r<3=j?cs7B}M_#iL^3@Gnn8lR_OkEz&WD)yL)9#frw zCkO$F7`Om*0fTXR7*5(mM|cwFdx>1mcQ^oZFlKRjF6zz0Ec2-YRLx#UK6DX209=3u zm;eUUbf^H6HbD7&2c~?+KbD}!QuJ8r4I)4~=jddX;82S(>|%Uk(P0KlmvO`|8MLx` z0eQpW-5b8;%gMp4q%T-aJ6uCQ05ofv1G5fU>%j&Y0gW=`675Up(2SfD{9*{o) z`@ntRV2h*j`4FIJ4S~r~j`w4eMFP5BTb0vCMbvI__y zZ;?R|SqZSkl|^7bxB&hkwUo7la;9@Cg7PTuMAjUG&ja8gpvY5XV7i7t@JWu(fTzJ_ za0NUEUH}xUAz;11@eS}U_yBu+=+316D1yoY9_;rdu%_YNqVS(muuqjtM9UnAG9Sbm zI07FK4wUsUxkP8BM61eLly2lB`VglMBu6le`2u5zSSFI2m_cr09+AVchNt_th^{}O zaz3H}H&O0A`I_`h<31cOa8%ZTD0^Tic>sMK6n&Ijj6HKr+{v{BAuAR+>F{p{?~cT$ zo#ESEK0uFupvQYeTyN81yn!CCp~ox4Ro973ui?Be;6Tq2!8X1V!bN#=%mm`y@yz-dhupDE7|l_U|2&|jHZ(=0i`fUZ zVT%p;#cJBfa@HsOwAg2sDUC0mgKu#U}hoOx!Gh`kfvzD{_@Z!^W(96``_n>hX zWaaoIUC1eJGl%TSzi?bn*R~9O=A#2Magl3-Of6+{MUD@0f{+o3jCdral8eYfP62X? z@rp7mQH`8l=i9gdqX_#bEriKY7zWw3D8+*Y3=X>53lA>_=iMaBL$K-*lj&!+Y=sgDf2E4`s* zorC&aS~_bmkgwplKexnSY!FHvfH{1g#JQ1P3~{*K^u{JNwnkE6ZY>>+?UCnZ=ex$<~@nipG{) z4*3ULSBbOrmRL=o#Aw1LN)s!Q?4KK<$&oO-VhJS|6KvO8g6xM&p#2Q-*RB>n=EV4D z9}{owYvSYZJz(wu*oXX0N%&$ad7w0gd>lvdeIVzX=YW(_H+c*Z+4g}vizWFSJBidf zO1Rct!nD2;!rYi(E$@GD;QbE{y#Ik*jK5=r_&W9!AE$cpa+)fhPAkOSd9S!RKO(Nq zuZXM5cj874#@(6NA9)*)y)=_YaajyE!H9H*?a9;wdQ?z1Mfgch0MEJb*BEj!p-#3E zKgqyf6Yvqz4C3!^E}lNN;^xi% z3*Ii`?BfLj#mOf^9LdEv_+^XMuUNGH)ne!0Uo-*Z#5Q1&*aU79>%bFY75FS*|Aj#I zUkD)fN0zc4X+bgmSjyvBFqF@|(WeW#b-+gX)J-~d6NgR0u!(P&2{{~VaSX5%hX5zh z26_O0u@B@uoI!D-3CNdqyT?J&op#lTVB@rF!vmrI7M2BeYi$6VGg1RcNN=k zAF;tm*1TWaDk4oRBHM|1WQCYU^%j$;kzy1zhXe+9BKE40s3*b4;3q1Vu>@sS)+5cS zq)l|DO@M(_goEYu3+PpXe!1w9l+Tzqn|i<|ZrH>j!Axx9Y{e>8D;BXXVjkxuW^qAc z5*H=L@i=h#k!@x|i4jktEMerf`5#uta6#0vhIje^Lu`6u?45%gMs-{hF zz6f11J3v}Q?2FC3v57M_vCA+Mt27&OEcRlQ>O@Y3P9&8^oQl(=;y`IRfFGuH14F?y zu!d^~!Qv}{Kuxi zR7~@&sVHtLtPhf0S3t*_8wzODxj1w##JLnMcMzCN178Ua(Ak{_{~!m04&-5$qvrhH z_+vl(u|I7BC`(6b`ce<*lF4;aTM~jUUg%32SZvY9yrT&YYegrnflv#a36?!UAczKO z0A-6igE|a40W2e!+6ℑ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 literal 0 HcmV?d00001 From 59c0793b803e641c4c7d331a24bd41be6e728a38 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 28 Jun 2017 12:37:25 +1000 Subject: [PATCH 019/135] Can now decode that bad progressive image --- .../Jpeg/Port/Components/ScanDecoder.cs | 162 +++++++++++++++--- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 16 +- 2 files changed, 138 insertions(+), 40 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index da7bb52a94..73e597ccd5 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -35,6 +35,8 @@ internal struct ScanDecoder private int successiveACNextValue; + private bool endOfStreamReached; + /// /// Decodes the spectral scan /// @@ -50,8 +52,7 @@ internal struct ScanDecoder /// The spectral selection end /// The successive approximation bit high end /// The successive approximation bit low end - /// The representing the processed length in bytes - public long DecodeScan( + public void DecodeScan( Frame frame, Stream stream, HuffmanTables dcHuffmanTables, @@ -69,9 +70,10 @@ public long DecodeScan( this.specStart = spectralStart; this.specEnd = spectralEnd; this.successiveState = successive; + this.endOfStreamReached = false; + bool progressive = frame.Progressive; int mcusPerLine = frame.McusPerLine; - long startPosition = stream.Position; int mcu = 0; int mcuExpected; @@ -129,7 +131,6 @@ public long DecodeScan( // Find marker this.bitsCount = 0; - long position = stream.Position; fileMarker = JpegDecoderCore.FindNextFileMarkerNew(stream); // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past @@ -137,20 +138,13 @@ public long DecodeScan( if (fileMarker.Invalid) { #if DEBUG - Debug.WriteLine($"DecodeScan - Unexpected MCU data at {stream.Position}, next marker is: {fileMarker.Marker}"); - + Debug.WriteLine($"DecodeScan - Unexpected MCU data at {stream.Position}, next marker is: {fileMarker.Marker:X}"); #endif - // stream.Position = fileMarker.Position; } ushort marker = fileMarker.Marker; - // if (marker <= 0xFF00) - // { - // throw new ImageFormatException("Marker was not found"); - // } - - // RSTn We've alread read the bytes and altered the position so no need to skip + // RSTn - We've alread read the bytes and altered the position so no need to skip if (marker >= JpegConstants.Markers.RST0 && marker <= JpegConstants.Markers.RST7) { continue; @@ -159,13 +153,10 @@ public long DecodeScan( if (!fileMarker.Invalid) { // We've found a valid marker. - // Rewind the stream to the position of the marker and beak + // Rewind the stream to the position of the marker and break stream.Position = fileMarker.Position; break; } - - // Rewind the stream - stream.Position = position; } fileMarker = JpegDecoderCore.FindNextFileMarkerNew(stream); @@ -175,12 +166,15 @@ public long DecodeScan( if (fileMarker.Invalid) { #if DEBUG - Debug.WriteLine($"DecodeScan - Unexpected MCU data, next marker is: {fileMarker.Marker}"); + Debug.WriteLine($"DecodeScan - Unexpected MCU data at {stream.Position}, next marker is: {fileMarker.Marker:X}"); #endif + } + else + { + // We've found a valid marker. + // Rewind the stream to the position of the marker stream.Position = fileMarker.Position; } - - return stream.Position - startPosition; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -205,6 +199,11 @@ private void DecodeScanBaseline( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeBlockBaseline(dcHuffmanTables, acHuffmanTables, ref component, mcu, stream); mcu++; } @@ -222,6 +221,11 @@ private void DecodeScanBaseline( { for (int k = 0; k < h; k++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeMcuBaseline(dcHuffmanTables, acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); } } @@ -247,6 +251,11 @@ private void DecodeScanDCFirst( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeBlockDCFirst(dcHuffmanTables, ref component, mcu, stream); mcu++; } @@ -264,6 +273,11 @@ private void DecodeScanDCFirst( { for (int k = 0; k < h; k++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeMcuDCFirst(dcHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); } } @@ -288,6 +302,11 @@ private void DecodeScanDCSuccessive( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeBlockDCSuccessive(ref component, mcu, stream); mcu++; } @@ -305,6 +324,11 @@ private void DecodeScanDCSuccessive( { for (int k = 0; k < h; k++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeMcuDCSuccessive(ref component, mcusPerLine, mcu, j, k, stream); } } @@ -330,6 +354,11 @@ private void DecodeScanACFirst( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeBlockACFirst(acHuffmanTables, ref component, mcu, stream); mcu++; } @@ -347,6 +376,11 @@ private void DecodeScanACFirst( { for (int k = 0; k < h; k++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeMcuACFirst(acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); } } @@ -372,6 +406,11 @@ private void DecodeScanACSuccessive( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeBlockACSuccessive(acHuffmanTables, ref component, mcu, stream); mcu++; } @@ -389,6 +428,11 @@ private void DecodeScanACSuccessive( { for (int k = 0; k < h; k++) { + if (this.endOfStreamReached) + { + continue; + } + this.DecodeMcuACSuccessive(acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); } } @@ -509,6 +553,13 @@ private int ReadBit(Stream stream) } this.bitsData = stream.ReadByte(); + + if (this.bitsData == -0x1) + { + // We've encountered the end of the file stream which means there's no EOI marker in the image + this.endOfStreamReached = true; + } + if (this.bitsData == 0xFF) { int nextByte = stream.ReadByte(); @@ -527,10 +578,16 @@ private int ReadBit(Stream stream) [MethodImpl(MethodImplOptions.AggressiveInlining)] private short DecodeHuffman(HuffmanBranch[] tree, Stream stream) { + // TODO: This is our bottleneck. We should use a faster algorithm with a LUT. HuffmanBranch[] node = tree; while (true) { int index = this.ReadBit(stream); + if (this.endOfStreamReached) + { + return -1; + } + HuffmanBranch branch = node[index]; if (branch.Value > -1) @@ -548,7 +605,13 @@ private int Receive(int length, Stream stream) int n = 0; while (length > 0) { - n = (n << 1) | this.ReadBit(stream); + int bit = this.ReadBit(stream); + if (this.endOfStreamReached) + { + return -1; + } + + n = (n << 1) | bit; length--; } @@ -576,6 +639,11 @@ private int ReceiveAndExtend(int length, Stream stream) private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) { int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); + if (this.endOfStreamReached) + { + return; + } + int diff = t == 0 ? 0 : this.ReceiveAndExtend(t, stream); component.BlockData[offset] = (short)(component.Pred += diff); @@ -583,6 +651,11 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab while (k < 64) { int rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + if (this.endOfStreamReached) + { + return; + } + int s = rs & 15; int r = rs >> 4; @@ -609,6 +682,11 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, Stream stream) { int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); + if (this.endOfStreamReached) + { + return; + } + int diff = t == 0 ? 0 : this.ReceiveAndExtend(t, stream) << this.successiveState; component.BlockData[offset] = (short)(component.Pred += diff); } @@ -616,7 +694,13 @@ private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTabl [MethodImpl(MethodImplOptions.AggressiveInlining)] private void DecodeDCSuccessive(ref FrameComponent component, int offset, Stream stream) { - component.BlockData[offset] |= (short)(this.ReadBit(stream) << this.successiveState); + int bit = this.ReadBit(stream); + if (this.endOfStreamReached) + { + return; + } + + component.BlockData[offset] |= (short)(bit << this.successiveState); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -633,6 +717,11 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl while (k <= e) { short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + if (this.endOfStreamReached) + { + return; + } + int s = rs & 15; int r = rs >> 4; @@ -668,6 +757,11 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma { case 0: // Initial state short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + if (this.endOfStreamReached) + { + return; + } + int s = rs & 15; r = rs >> 4; if (s == 0) @@ -699,7 +793,13 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma case 2: if (component.BlockData[offset + z] != 0) { - component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); + int bit = this.ReadBit(stream); + if (this.endOfStreamReached) + { + return; + } + + component.BlockData[offset + z] += (short)(bit << this.successiveState); } else { @@ -714,7 +814,13 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma case 3: // Set value for a zero item if (component.BlockData[offset + z] != 0) { - component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); + int bit = this.ReadBit(stream); + if (this.endOfStreamReached) + { + return; + } + + component.BlockData[offset + z] += (short)(bit << this.successiveState); } else { @@ -726,7 +832,13 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma case 4: // Eob if (component.BlockData[offset + z] != 0) { - component.BlockData[offset + z] += (short)(this.ReadBit(stream) << this.successiveState); + int bit = this.ReadBit(stream); + if (this.endOfStreamReached) + { + return; + } + + component.BlockData[offset + z] += (short)(bit << this.successiveState); } break; diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 2c2cd57a5e..152a2b43a2 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -720,7 +720,7 @@ private void ProcessStartOfScanMarker() int successiveApproximation = this.temp[2]; var scanDecoder = default(ScanDecoder); - long position = scanDecoder.DecodeScan( + scanDecoder.DecodeScan( this.frame, this.InputStream, this.dcHuffmanTables, @@ -733,20 +733,6 @@ private void ProcessStartOfScanMarker() spectralEnd, successiveApproximation >> 4, successiveApproximation & 15); - - this.InputStream.Position += position; - - Debug.WriteLine("spectralStart= " + spectralStart); - Debug.WriteLine("spectralEnd= " + spectralEnd); - Debug.WriteLine("successiveApproximation= " + successiveApproximation); - Debug.WriteLine("Components after"); - //for (int i = 0; i < 3; i++) - //{ - // for (int j = 0; j < 10; j++) - // { - // Debug.WriteLine("component [" + i + "] : value [" + j + "] =" + this.frame.Components[i].BlockData[j] + "]"); - // } - //} } /// From 827ca83bf052c471df35456d97d4c19b4b07792e Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 28 Jun 2017 14:35:46 +1000 Subject: [PATCH 020/135] Now decodes all images --- .../Formats/Jpeg/Port/Components/JFif.cs | 40 ++- .../Jpeg/Port/Components/ScanDecoder.cs | 7 +- .../Formats/Jpeg/Port/JpegConstants.cs | 94 ++++++- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 251 ++++++++++-------- tests/ImageSharp.Tests/TestFile.cs | 20 +- 5 files changed, 291 insertions(+), 121 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs index 7fa6c44d0a..6baecdf682 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/JFif.cs @@ -5,10 +5,13 @@ namespace ImageSharp.Formats.Jpeg.Port.Components { + using System; + /// /// Provides information about the JFIF marker segment + /// TODO: Thumbnail? /// - internal struct JFif + internal struct JFif : IEquatable { /// /// The major version @@ -38,6 +41,39 @@ internal struct JFif /// public short YDensity; - // TODO: Thumbnail? + /// + public bool Equals(JFif other) + { + return this.MajorVersion == other.MajorVersion + && this.MinorVersion == other.MinorVersion + && this.DensityUnits == other.DensityUnits + && this.XDensity == other.XDensity + && this.YDensity == other.YDensity; + } + + /// + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + return obj is JFif && this.Equals((JFif)obj); + } + + /// + public override int GetHashCode() + { + unchecked + { + int hashCode = this.MajorVersion.GetHashCode(); + hashCode = (hashCode * 397) ^ this.MinorVersion.GetHashCode(); + hashCode = (hashCode * 397) ^ this.DensityUnits.GetHashCode(); + hashCode = (hashCode * 397) ^ this.XDensity.GetHashCode(); + hashCode = (hashCode * 397) ^ this.YDensity.GetHashCode(); + return hashCode; + } + } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 73e597ccd5..4ec7571b5a 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -17,6 +17,8 @@ namespace ImageSharp.Formats.Jpeg.Port.Components /// internal struct ScanDecoder { + private byte[] markerBuffer; + private int bitsData; private int bitsCount; @@ -66,6 +68,7 @@ public void DecodeScan( int successivePrev, int successive) { + this.markerBuffer = new byte[2]; this.compIndex = componentIndex; this.specStart = spectralStart; this.specEnd = spectralEnd; @@ -131,7 +134,7 @@ public void DecodeScan( // Find marker this.bitsCount = 0; - fileMarker = JpegDecoderCore.FindNextFileMarkerNew(stream); + fileMarker = JpegDecoderCore.FindNextFileMarker(this.markerBuffer, stream); // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past // those to attempt to find a valid marker (fixes issue4090.pdf) in original code. @@ -159,7 +162,7 @@ public void DecodeScan( } } - fileMarker = JpegDecoderCore.FindNextFileMarkerNew(stream); + fileMarker = JpegDecoderCore.FindNextFileMarker(this.markerBuffer, stream); // Some images include more Scan blocks than expected, skip past those and // attempt to find the next valid marker (fixes issue8182.pdf) in original code. diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs index 08ae5543de..a02e055917 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegConstants.cs @@ -196,11 +196,6 @@ public static class Markers /// public const ushort RST7 = 0xFFD7; - /// - /// Marker prefix. Next byte is a marker. - /// - public const ushort XFF = 0xFFFF; - /// /// Contains JFIF specific markers /// @@ -224,7 +219,7 @@ public static class JFif /// /// Represents the null "0" marker /// - public const byte Null = 0; + public const byte Null = 0x0; } /// @@ -272,6 +267,93 @@ public static class Adobe /// public const byte ColorTransformYcck = 2; } + + /// + /// Contains EXIF specific markers + /// + public static class Exif + { + /// + /// Represents E in ASCII + /// + public const byte E = 0x45; + + /// + /// Represents x in ASCII + /// + public const byte X = 0x78; + + /// + /// Represents i in ASCII + /// + public const byte I = 0x69; + + /// + /// Represents f in ASCII + /// + public const byte F = 0x66; + + /// + /// Represents the null "0" marker + /// + public const byte Null = 0x0; + } + + /// + /// Contains ICC specific markers + /// + public static class ICC + { + /// + /// Represents I in ASCII + /// + public const byte I = 0x49; + + /// + /// Represents C in ASCII + /// + public const byte C = 0x43; + + /// + /// Represents _ in ASCII + /// + public const byte UnderScore = 0x5F; + + /// + /// Represents P in ASCII + /// + public const byte P = 0x50; + + /// + /// Represents R in ASCII + /// + public const byte R = 0x52; + + /// + /// Represents O in ASCII + /// + public const byte O = 0x4F; + + /// + /// Represents F in ASCII + /// + public const byte F = 0x46; + + /// + /// Represents L in ASCII + /// + public const byte L = 0x4C; + + /// + /// Represents E in ASCII + /// + public const byte E = 0x45; + + /// + /// Represents the null "0" marker + /// + public const byte Null = 0x0; + } } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 152a2b43a2..6a1d6311c5 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -7,7 +7,6 @@ namespace ImageSharp.Formats.Jpeg.Port { using System; using System.Collections.Generic; - using System.Diagnostics; using System.IO; using System.Runtime.CompilerServices; @@ -18,7 +17,7 @@ namespace ImageSharp.Formats.Jpeg.Port /// /// Performs the jpeg decoding operation. - /// Ported from + /// Ported from with additional fixes to handle common encoding errors /// internal sealed class JpegDecoderCore : IDisposable { @@ -37,7 +36,7 @@ internal sealed class JpegDecoderCore : IDisposable /// private readonly byte[] temp = new byte[2 * 16 * 4]; - private readonly byte[] uint16Buffer = new byte[2]; + private readonly byte[] markerBuffer = new byte[2]; private QuantizationTables quantizationTables; @@ -57,7 +56,12 @@ internal sealed class JpegDecoderCore : IDisposable private int imageHeight; - private int numComponents; + private int numberOfComponents; + + /// + /// Whether the image has a EXIF header + /// + private bool isExif; /// /// Contains information about the JFIF marker @@ -94,14 +98,13 @@ public JpegDecoderCore(IDecoderOptions options, Configuration configuration) public Stream InputStream { get; private set; } /// - /// Finds the next file marker within the byte stream. Not used but I'm keeping it for now for testing + /// Finds the next file marker within the byte stream. /// + /// The buffer to read file markers to /// The input stream /// The - public static FileMarker FindNextFileMarkerNew(Stream stream) + public static FileMarker FindNextFileMarker(byte[] marker, Stream stream) { - byte[] marker = new byte[2]; - int value = stream.Read(marker, 0, 2); if (value == 0) @@ -131,60 +134,7 @@ public static FileMarker FindNextFileMarkerNew(Stream stream) } /// - /// Finds the next file marker within the byte stream - /// - /// The input stream - /// The - public static FileMarker FindNextFileMarker(Stream stream) - { - byte[] buffer = new byte[2]; - long maxPos = stream.Length - 1; - long currentPos = stream.Position; - long newPos = currentPos; - - if (currentPos >= maxPos) - { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } - - int value = stream.Read(buffer, 0, 2); - - if (value == 0) - { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } - - ushort currentMarker = (ushort)((buffer[0] << 8) | buffer[1]); - if (currentMarker >= JpegConstants.Markers.SOF0 && currentMarker <= JpegConstants.Markers.COM) - { - return new FileMarker(currentMarker, stream.Position - 2); - } - - value = stream.Read(buffer, 0, 2); - - if (value == 0) - { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } - - ushort newMarker = (ushort)((buffer[0] << 8) | buffer[1]); - while (!(newMarker >= JpegConstants.Markers.SOF0 && newMarker <= JpegConstants.Markers.COM)) - { - if (++newPos >= maxPos) - { - return new FileMarker(JpegConstants.Markers.EOI, (int)stream.Length, true); - } - - stream.Read(buffer, 0, 2); - newMarker = (ushort)((buffer[0] << 8) | buffer[1]); - } - - return new FileMarker(newMarker, newPos, true); - } - - /// - /// Decodes the image from the specified and sets - /// the data to image. + /// Decodes the image from the specified and sets the data to image. /// /// The pixel format. /// The stream, where the image should be. @@ -193,10 +143,13 @@ public Image Decode(Stream stream) where TPixel : struct, IPixel { this.InputStream = stream; - this.ParseStream(); - var image = new Image(this.imageWidth, this.imageHeight); - this.GetData(image); + var metadata = new ImageMetaData(); + this.ParseStream(metadata, false); + + var image = new Image(this.configuration, this.imageWidth, this.imageHeight, metadata); + this.FillPixelData(image); + this.AssignResolution(image); return image; } @@ -223,8 +176,11 @@ private static int GetBlockBufferOffset(ref Component component, int row, int co /// /// Parses the input stream for file markers /// - private void ParseStream() + /// Contains the metadata for an image + /// Whether to decode metadata only. + private void ParseStream(ImageMetaData metaData, bool metadataOnly) { + // TODO: metadata only logic // Check for the Start Of Image marker. var fileMarker = new FileMarker(this.ReadUint16(), 0); if (fileMarker.Marker != JpegConstants.Markers.SOI) @@ -251,7 +207,12 @@ private void ParseStream() break; case JpegConstants.Markers.APP1: + this.ProcessApp1Marker(remaining, metaData); + break; + case JpegConstants.Markers.APP2: + this.ProcessApp2Marker(remaining, metaData); + break; case JpegConstants.Markers.APP3: case JpegConstants.Markers.APP4: case JpegConstants.Markers.APP5: @@ -298,36 +259,10 @@ private void ParseStream() case JpegConstants.Markers.SOS: this.ProcessStartOfScanMarker(); break; - - case JpegConstants.Markers.XFF: - if ((byte)this.InputStream.ReadByte() != 0xFF) - { - // Avoid skipping a valid marker - this.InputStream.Position -= 1; - } - - break; - - //default: - - // // TODO: Not convinced this is required - // // Skip back as it could be incorrect encoding -- last 0xFF byte of the previous - // // block was eaten by the encoder - // this.InputStream.Position -= 3; - // this.InputStream.Read(this.temp, 0, 2); - // if (this.temp[0] == 0xFF && this.temp[1] >= 0xC0 && this.temp[1] <= 0xFE) - // { - // // Rewind that last bytes we read - // this.InputStream.Position -= 2; - // break; - // } - - // // throw new ImageFormatException($"Unknown Marker {fileMarker.Marker} at {fileMarker.Position}"); - // break; } - // Read on. TODO: Test this on damaged images. - fileMarker = FindNextFileMarkerNew(this.InputStream); + // Read on. + fileMarker = FindNextFileMarker(this.markerBuffer, this.InputStream); } this.imageWidth = this.frame.SamplesPerLine; @@ -349,7 +284,7 @@ private void ParseStream() this.components.Components[i] = component; } - this.numComponents = this.components.Components.Length; + this.numberOfComponents = this.components.Components.Length; } /// @@ -357,24 +292,24 @@ private void ParseStream() /// /// The pixel format. /// The image - private void GetData(Image image) + private void FillPixelData(Image image) where TPixel : struct, IPixel { - if (this.numComponents > 4) + if (this.numberOfComponents > 4) { - throw new ImageFormatException($"Unsupported color mode. Max components 4; found {this.numComponents}"); + throw new ImageFormatException($"Unsupported color mode. Max components 4; found {this.numberOfComponents}"); } - this.pixelArea = new JpegPixelArea(image.Width, image.Height, this.numComponents); + this.pixelArea = new JpegPixelArea(image.Width, image.Height, this.numberOfComponents); this.pixelArea.LinearizeBlockData(this.components, image.Width, image.Height); - if (this.numComponents == 1) + if (this.numberOfComponents == 1) { this.FillGrayScaleImage(image); return; } - if (this.numComponents == 3) + if (this.numberOfComponents == 3) { if (this.adobe.Equals(default(Adobe)) || this.adobe.ColorTransform == JpegConstants.Markers.Adobe.ColorTransformYCbCr) { @@ -386,7 +321,7 @@ private void GetData(Image image) } } - if (this.numComponents == 4) + if (this.numberOfComponents == 4) { if (this.adobe.ColorTransform == JpegConstants.Markers.Adobe.ColorTransformYcck) { @@ -399,6 +334,34 @@ private void GetData(Image image) } } + /// + /// Assigns the horizontal and vertical resolution to the image if it has a JFIF header or EXIF metadata. + /// + /// The pixel format. + /// The image to assign the resolution to. + private void AssignResolution(Image image) + where TPixel : struct, IPixel + { + if (this.isExif) + { + ExifValue horizontal = image.MetaData.ExifProfile.GetValue(ExifTag.XResolution); + ExifValue vertical = image.MetaData.ExifProfile.GetValue(ExifTag.YResolution); + double horizontalValue = horizontal != null ? ((Rational)horizontal.Value).ToDouble() : 0; + double verticalValue = vertical != null ? ((Rational)vertical.Value).ToDouble() : 0; + + if (horizontalValue > 0 && verticalValue > 0) + { + image.MetaData.HorizontalResolution = horizontalValue; + image.MetaData.VerticalResolution = verticalValue; + } + } + else if (this.jFif.XDensity > 0 && this.jFif.YDensity > 0) + { + image.MetaData.HorizontalResolution = this.jFif.XDensity; + image.MetaData.VerticalResolution = this.jFif.YDensity; + } + } + /// /// Processes the application header containing the JFIF identifier plus extra data. /// @@ -440,6 +403,86 @@ private void ProcessApplicationHeaderMarker(int remaining) } } + /// + /// Processes the App1 marker retrieving any stored metadata + /// + /// The remaining bytes in the segment block. + /// The image. + private void ProcessApp1Marker(int remaining, ImageMetaData metadata) + { + if (remaining < 6 || this.options.IgnoreMetadata) + { + // Skip the application header length + this.InputStream.Skip(remaining); + return; + } + + byte[] profile = new byte[remaining]; + this.InputStream.Read(profile, 0, remaining); + + if (profile[0] == JpegConstants.Markers.Exif.E && + profile[1] == JpegConstants.Markers.Exif.X && + profile[2] == JpegConstants.Markers.Exif.I && + profile[3] == JpegConstants.Markers.Exif.F && + profile[4] == JpegConstants.Markers.Exif.Null && + profile[5] == JpegConstants.Markers.Exif.Null) + { + this.isExif = true; + metadata.ExifProfile = new ExifProfile(profile); + } + } + + /// + /// Processes the App2 marker retrieving any stored ICC profile information + /// + /// The remaining bytes in the segment block. + /// The image. + private void ProcessApp2Marker(int remaining, ImageMetaData metadata) + { + // Length is 14 though we only need to check 12. + const int Icclength = 14; + if (remaining < Icclength || this.options.IgnoreMetadata) + { + this.InputStream.Skip(remaining); + return; + } + + byte[] identifier = new byte[Icclength]; + this.InputStream.Read(identifier, 0, Icclength); + remaining -= Icclength; // We have read it by this point + + if (identifier[0] == JpegConstants.Markers.ICC.I && + identifier[1] == JpegConstants.Markers.ICC.C && + identifier[2] == JpegConstants.Markers.ICC.C && + identifier[3] == JpegConstants.Markers.ICC.UnderScore && + identifier[4] == JpegConstants.Markers.ICC.P && + identifier[5] == JpegConstants.Markers.ICC.R && + identifier[6] == JpegConstants.Markers.ICC.O && + identifier[7] == JpegConstants.Markers.ICC.F && + identifier[8] == JpegConstants.Markers.ICC.I && + identifier[9] == JpegConstants.Markers.ICC.L && + identifier[10] == JpegConstants.Markers.ICC.E && + identifier[11] == JpegConstants.Markers.ICC.Null) + { + byte[] profile = new byte[remaining]; + this.InputStream.Read(profile, 0, remaining); + + if (metadata.IccProfile == null) + { + metadata.IccProfile = new IccProfile(profile); + } + else + { + metadata.IccProfile.Extend(profile); + } + } + else + { + // Not an ICC profile we can handle. Skip the remaining bytes so we can carry on and ignore this. + this.InputStream.Skip(remaining); + } + } + /// /// Processes the application header containing the Adobe identifier /// which stores image encoding information for DCT filters. @@ -951,8 +994,8 @@ private void FillRgbImage(Image image) [MethodImpl(MethodImplOptions.AggressiveInlining)] private ushort ReadUint16() { - this.InputStream.Read(this.uint16Buffer, 0, 2); - return (ushort)((this.uint16Buffer[0] << 8) | this.uint16Buffer[1]); + this.InputStream.Read(this.markerBuffer, 0, 2); + return (ushort)((this.markerBuffer[0] << 8) | this.markerBuffer[1]); } } } \ No newline at end of file diff --git a/tests/ImageSharp.Tests/TestFile.cs b/tests/ImageSharp.Tests/TestFile.cs index d274d61a28..bcfb6cb13a 100644 --- a/tests/ImageSharp.Tests/TestFile.cs +++ b/tests/ImageSharp.Tests/TestFile.cs @@ -27,6 +27,8 @@ public class TestFile /// private static readonly string FormatsDirectory = GetFormatsDirectory(); + private static readonly object Locker = new object(); + /// /// The image. /// @@ -142,7 +144,10 @@ public Image CreateImage(IDecoderOptions options) private Image GetImage() { - return this.image ?? (this.image = Image.Load(this.Bytes)); + lock (Locker) + { + return this.image ?? (this.image = Image.Load(this.Bytes)); + } } /// @@ -155,16 +160,17 @@ private static string GetFormatsDirectory() { var directories = new List { "TestImages/Formats/", // Here for code coverage tests. - "tests/ImageSharp.Tests/TestImages/Formats/", // from travis/build script - "../../../../../ImageSharp.Tests/TestImages/Formats/", // from Sandbox46 + "tests/ImageSharp.Tests/TestImages/Formats/", // From travis/build script + "../../../../../ImageSharp.Tests/TestImages/Formats/", // From Sandbox46 "../../../../TestImages/Formats/", "../../../TestImages/Formats/" }; - directories = directories.SelectMany(x => new[] - { - Path.GetFullPath(x) - }).ToList(); + directories = directories + .SelectMany(x => new[] + { + Path.GetFullPath(x) + }).ToList(); AddFormatsDirectoryFromTestAssebmlyPath(directories); From e2d26eb8104ff7688c2c4d3bff544587941f731b Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 28 Jun 2017 15:26:13 +1000 Subject: [PATCH 021/135] Fix #159 --- .../Jpeg/Port/Components/ScanDecoder.cs | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 4ec7571b5a..13a63c5c38 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -39,6 +39,8 @@ internal struct ScanDecoder private bool endOfStreamReached; + private bool unexpectedMarkerReached; + /// /// Decodes the spectral scan /// @@ -74,6 +76,7 @@ public void DecodeScan( this.specEnd = spectralEnd; this.successiveState = successive; this.endOfStreamReached = false; + this.unexpectedMarkerReached = false; bool progressive = frame.Progressive; int mcusPerLine = frame.McusPerLine; @@ -202,7 +205,7 @@ private void DecodeScanBaseline( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -224,7 +227,7 @@ private void DecodeScanBaseline( { for (int k = 0; k < h; k++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -254,7 +257,7 @@ private void DecodeScanDCFirst( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -276,7 +279,7 @@ private void DecodeScanDCFirst( { for (int k = 0; k < h; k++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -305,7 +308,7 @@ private void DecodeScanDCSuccessive( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -327,7 +330,7 @@ private void DecodeScanDCSuccessive( { for (int k = 0; k < h; k++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -357,7 +360,7 @@ private void DecodeScanACFirst( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -379,7 +382,7 @@ private void DecodeScanACFirst( { for (int k = 0; k < h; k++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -409,7 +412,7 @@ private void DecodeScanACSuccessive( ref FrameComponent component = ref components[this.compIndex]; for (int n = 0; n < mcuToRead; n++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -431,7 +434,7 @@ private void DecodeScanACSuccessive( { for (int k = 0; k < h; k++) { - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { continue; } @@ -568,7 +571,12 @@ private int ReadBit(Stream stream) int nextByte = stream.ReadByte(); if (nextByte != 0) { - throw new ImageFormatException($"Unexpected marker {(this.bitsData << 8) | nextByte}"); +#if DEBUG + Debug.WriteLine($"DecodeScan - Unexpected marker {(this.bitsData << 8) | nextByte:X} at {stream.Position}"); +#endif + // We've encountered an unexpected marker. Reverse the stream and exit. + this.unexpectedMarkerReached = true; + stream.Position -= 2; } // Unstuff 0 @@ -586,7 +594,7 @@ private short DecodeHuffman(HuffmanBranch[] tree, Stream stream) while (true) { int index = this.ReadBit(stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return -1; } @@ -609,7 +617,7 @@ private int Receive(int length, Stream stream) while (length > 0) { int bit = this.ReadBit(stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return -1; } @@ -642,7 +650,7 @@ private int ReceiveAndExtend(int length, Stream stream) private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) { int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -654,7 +662,7 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab while (k < 64) { int rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -685,7 +693,7 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, Stream stream) { int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -698,7 +706,7 @@ private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTabl private void DecodeDCSuccessive(ref FrameComponent component, int offset, Stream stream) { int bit = this.ReadBit(stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -720,7 +728,7 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl while (k <= e) { short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -760,7 +768,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma { case 0: // Initial state short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -797,7 +805,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma if (component.BlockData[offset + z] != 0) { int bit = this.ReadBit(stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -818,7 +826,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma if (component.BlockData[offset + z] != 0) { int bit = this.ReadBit(stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } @@ -836,7 +844,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma if (component.BlockData[offset + z] != 0) { int bit = this.ReadBit(stream); - if (this.endOfStreamReached) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; } From 76e91db9b2f2f3df3735db79c59122661c2f49a8 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Wed, 28 Jun 2017 11:30:59 +0100 Subject: [PATCH 022/135] use an offset span instead of buffer --- .../Formats/Jpeg/Port/Components/IDCT.cs | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs index 0e5a970122..760844ae28 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs @@ -30,7 +30,7 @@ internal static class IDCT public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref FrameComponent component, int blockBufferOffset, Buffer computationBuffer) { Span qt = quantizationTables.Tables.GetRowSpan(component.QuantizationIdentifier); - Buffer blockData = component.BlockData; + Span blockData = component.BlockData.Slice(blockBufferOffset); int v0, v1, v2, v3, v4, v5, v6, v7; int p0, p1, p2, p3, p4, p5, p6, p7; int t; @@ -39,14 +39,14 @@ public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref for (int row = 0; row < 64; row += 8) { // gather block data - p0 = blockData[blockBufferOffset + row]; - p1 = blockData[blockBufferOffset + row + 1]; - p2 = blockData[blockBufferOffset + row + 2]; - p3 = blockData[blockBufferOffset + row + 3]; - p4 = blockData[blockBufferOffset + row + 4]; - p5 = blockData[blockBufferOffset + row + 5]; - p6 = blockData[blockBufferOffset + row + 6]; - p7 = blockData[blockBufferOffset + row + 7]; + p0 = blockData[row]; + p1 = blockData[row + 1]; + p2 = blockData[row + 2]; + p3 = blockData[row + 3]; + p4 = blockData[row + 4]; + p5 = blockData[row + 5]; + p6 = blockData[row + 6]; + p7 = blockData[row + 7]; // dequant p0 p0 *= qt[row]; @@ -141,14 +141,14 @@ public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref t = (t < -2040) ? 0 : (t >= 2024) ? 255 : (t + 2056) >> 4; short st = (short)t; - blockData[blockBufferOffset + col] = st; - blockData[blockBufferOffset + col + 8] = st; - blockData[blockBufferOffset + col + 16] = st; - blockData[blockBufferOffset + col + 24] = st; - blockData[blockBufferOffset + col + 32] = st; - blockData[blockBufferOffset + col + 40] = st; - blockData[blockBufferOffset + col + 48] = st; - blockData[blockBufferOffset + col + 56] = st; + blockData[col] = st; + blockData[col + 8] = st; + blockData[col + 16] = st; + blockData[col + 24] = st; + blockData[col + 32] = st; + blockData[col + 40] = st; + blockData[col + 48] = st; + blockData[col + 56] = st; continue; } @@ -208,14 +208,14 @@ public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref p7 = (p7 < 16) ? 0 : (p7 >= 4080) ? 255 : p7 >> 4; // store block data - blockData[blockBufferOffset + col] = (short)p0; - blockData[blockBufferOffset + col + 8] = (short)p1; - blockData[blockBufferOffset + col + 16] = (short)p2; - blockData[blockBufferOffset + col + 24] = (short)p3; - blockData[blockBufferOffset + col + 32] = (short)p4; - blockData[blockBufferOffset + col + 40] = (short)p5; - blockData[blockBufferOffset + col + 48] = (short)p6; - blockData[blockBufferOffset + col + 56] = (short)p7; + blockData[col] = (short)p0; + blockData[col + 8] = (short)p1; + blockData[col + 16] = (short)p2; + blockData[col + 24] = (short)p3; + blockData[col + 32] = (short)p4; + blockData[col + 40] = (short)p5; + blockData[col + 48] = (short)p6; + blockData[col + 56] = (short)p7; } } } From db2b712e02cbf4b79e0f3dc98ed8044505ed12d1 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Wed, 28 Jun 2017 12:33:47 +0100 Subject: [PATCH 023/135] additional usages of Span --- .../Formats/Jpeg/Port/Components/IDCT.cs | 49 ++++++++++--------- .../Jpeg/Port/Components/JpegPixelArea.cs | 8 +-- .../Jpeg/Port/Components/ScanDecoder.cs | 18 ++++--- 3 files changed, 40 insertions(+), 35 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs index 760844ae28..f931c3d6b4 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/IDCT.cs @@ -31,6 +31,7 @@ public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref { Span qt = quantizationTables.Tables.GetRowSpan(component.QuantizationIdentifier); Span blockData = component.BlockData.Slice(blockBufferOffset); + Span computationBufferSpan = computationBuffer; int v0, v1, v2, v3, v4, v5, v6, v7; int p0, p1, p2, p3, p4, p5, p6, p7; int t; @@ -56,14 +57,14 @@ public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref { t = ((DctSqrt2 * p0) + 512) >> 10; short st = (short)t; - computationBuffer[row] = st; - computationBuffer[row + 1] = st; - computationBuffer[row + 2] = st; - computationBuffer[row + 3] = st; - computationBuffer[row + 4] = st; - computationBuffer[row + 5] = st; - computationBuffer[row + 6] = st; - computationBuffer[row + 7] = st; + computationBufferSpan[row] = st; + computationBufferSpan[row + 1] = st; + computationBufferSpan[row + 2] = st; + computationBufferSpan[row + 3] = st; + computationBufferSpan[row + 4] = st; + computationBufferSpan[row + 5] = st; + computationBufferSpan[row + 6] = st; + computationBufferSpan[row + 7] = st; continue; } @@ -110,27 +111,27 @@ public static void QuantizeAndInverse(QuantizationTables quantizationTables, ref v6 = t; // stage 1 - computationBuffer[row] = (short)(v0 + v7); - computationBuffer[row + 7] = (short)(v0 - v7); - computationBuffer[row + 1] = (short)(v1 + v6); - computationBuffer[row + 6] = (short)(v1 - v6); - computationBuffer[row + 2] = (short)(v2 + v5); - computationBuffer[row + 5] = (short)(v2 - v5); - computationBuffer[row + 3] = (short)(v3 + v4); - computationBuffer[row + 4] = (short)(v3 - v4); + computationBufferSpan[row] = (short)(v0 + v7); + computationBufferSpan[row + 7] = (short)(v0 - v7); + computationBufferSpan[row + 1] = (short)(v1 + v6); + computationBufferSpan[row + 6] = (short)(v1 - v6); + computationBufferSpan[row + 2] = (short)(v2 + v5); + computationBufferSpan[row + 5] = (short)(v2 - v5); + computationBufferSpan[row + 3] = (short)(v3 + v4); + computationBufferSpan[row + 4] = (short)(v3 - v4); } // inverse DCT on columns for (int col = 0; col < 8; ++col) { - p0 = computationBuffer[col]; - p1 = computationBuffer[col + 8]; - p2 = computationBuffer[col + 16]; - p3 = computationBuffer[col + 24]; - p4 = computationBuffer[col + 32]; - p5 = computationBuffer[col + 40]; - p6 = computationBuffer[col + 48]; - p7 = computationBuffer[col + 56]; + p0 = computationBufferSpan[col]; + p1 = computationBufferSpan[col + 8]; + p2 = computationBufferSpan[col + 16]; + p3 = computationBufferSpan[col + 24]; + p4 = computationBufferSpan[col + 32]; + p5 = computationBufferSpan[col + 40]; + p6 = computationBufferSpan[col + 48]; + p7 = computationBufferSpan[col + 56]; // check for all-zero AC coefficients if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) == 0) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs index eafc6c33c8..33cc44df4c 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/JpegPixelArea.cs @@ -72,17 +72,19 @@ public void LinearizeBlockData(ComponentBlocks components, int width, int height float scaleX = this.imageWidth / (float)width; float scaleY = this.imageHeight / (float)height; this.componentData = new Buffer(width * height * numberOfComponents); + Span componentDataSpan = this.componentData; const uint Mask3Lsb = 0xFFFFFFF8; // Used to clear the 3 LSBs using (var xScaleBlockOffset = new Buffer(width)) { + Span xScaleBlockOffsetSpan = xScaleBlockOffset; for (int i = 0; i < numberOfComponents; i++) { ref Component component = ref components.Components[i]; float componentScaleX = component.ScaleX * scaleX; float componentScaleY = component.ScaleY * scaleY; int offset = i; - Buffer output = component.Output; + Span output = component.Output; int blocksPerScanline = (component.BlocksPerLine + 1) << 3; // Precalculate the xScaleBlockOffset @@ -90,7 +92,7 @@ public void LinearizeBlockData(ComponentBlocks components, int width, int height for (int x = 0; x < width; x++) { j = 0 | (int)(x * componentScaleX); - xScaleBlockOffset[x] = (int)((j & Mask3Lsb) << 3) | (j & 7); + xScaleBlockOffsetSpan[x] = (int)((j & Mask3Lsb) << 3) | (j & 7); } // Linearize the blocks of the component @@ -100,7 +102,7 @@ public void LinearizeBlockData(ComponentBlocks components, int width, int height int index = blocksPerScanline * (int)(j & Mask3Lsb) | ((j & 7) << 3); for (int x = 0; x < width; x++) { - this.componentData[offset] = (byte)output[index + xScaleBlockOffset[x]]; + componentDataSpan[offset] = (byte)output[index + xScaleBlockOffsetSpan[x]]; offset += numberOfComponents; } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 13a63c5c38..5a31fd89f4 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -723,6 +723,7 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl return; } + var componentBlockDataSpan = component.BlockData.Span; int k = this.specStart; int e = this.specEnd; while (k <= e) @@ -750,7 +751,7 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl k += r; byte z = QuantizationTables.DctZigZag[k]; - component.BlockData[offset + z] = (short)(this.ReceiveAndExtend(s, stream) * (1 << this.successiveState)); + componentBlockDataSpan[offset + z] = (short)(this.ReceiveAndExtend(s, stream) * (1 << this.successiveState)); k++; } } @@ -761,6 +762,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma int k = this.specStart; int e = this.specEnd; int r = 0; + var componentBlockDataSpan = component.BlockData.Span; while (k <= e) { byte z = QuantizationTables.DctZigZag[k]; @@ -802,7 +804,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma continue; case 1: // Skipping r zero items case 2: - if (component.BlockData[offset + z] != 0) + if (componentBlockDataSpan[offset + z] != 0) { int bit = this.ReadBit(stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -810,7 +812,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma return; } - component.BlockData[offset + z] += (short)(bit << this.successiveState); + componentBlockDataSpan[offset + z] += (short)(bit << this.successiveState); } else { @@ -823,7 +825,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma break; case 3: // Set value for a zero item - if (component.BlockData[offset + z] != 0) + if (componentBlockDataSpan[offset + z] != 0) { int bit = this.ReadBit(stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -831,17 +833,17 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma return; } - component.BlockData[offset + z] += (short)(bit << this.successiveState); + componentBlockDataSpan[offset + z] += (short)(bit << this.successiveState); } else { - component.BlockData[offset + z] = (short)(this.successiveACNextValue << this.successiveState); + componentBlockDataSpan[offset + z] = (short)(this.successiveACNextValue << this.successiveState); this.successiveACState = 0; } break; case 4: // Eob - if (component.BlockData[offset + z] != 0) + if (componentBlockDataSpan[offset + z] != 0) { int bit = this.ReadBit(stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -849,7 +851,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma return; } - component.BlockData[offset + z] += (short)(bit << this.successiveState); + componentBlockDataSpan[offset + z] += (short)(bit << this.successiveState); } break; From 543924085ec7368be1270b66fb63128b76bfee12 Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Wed, 28 Jun 2017 22:27:43 +0200 Subject: [PATCH 024/135] fixed Sandbox46 execution --- tests/ImageSharp.Sandbox46/Program.cs | 4 ++-- tests/ImageSharp.Tests/TestFile.cs | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/ImageSharp.Sandbox46/Program.cs b/tests/ImageSharp.Sandbox46/Program.cs index 6f93df16e5..23b48caec0 100644 --- a/tests/ImageSharp.Sandbox46/Program.cs +++ b/tests/ImageSharp.Sandbox46/Program.cs @@ -39,10 +39,10 @@ public void WriteLine(string format, params object[] args) /// public static void Main(string[] args) { - // RunDecodeJpegProfilingTests(); + RunDecodeJpegProfilingTests(); // RunToVector4ProfilingTest(); - RunResizeProfilingTest(); + //RunResizeProfilingTest(); Console.ReadLine(); } diff --git a/tests/ImageSharp.Tests/TestFile.cs b/tests/ImageSharp.Tests/TestFile.cs index bcfb6cb13a..698ad83136 100644 --- a/tests/ImageSharp.Tests/TestFile.cs +++ b/tests/ImageSharp.Tests/TestFile.cs @@ -162,6 +162,7 @@ private static string GetFormatsDirectory() "TestImages/Formats/", // Here for code coverage tests. "tests/ImageSharp.Tests/TestImages/Formats/", // From travis/build script "../../../../../ImageSharp.Tests/TestImages/Formats/", // From Sandbox46 + "../ImageSharp.Tests/TestImages/Formats/", // From Sandbox46 Program.cs "../../../../TestImages/Formats/", "../../../TestImages/Formats/" }; From ea0abc934afa112cdb8417aff951ca0089ba971b Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 30 Jun 2017 09:12:29 +1000 Subject: [PATCH 025/135] Rough working better Huffman --- .../Jpeg/Port/Components/HuffmanTable.cs | 136 ++++++++++++++++++ .../Jpeg/Port/Components/HuffmanTables.cs | 4 +- .../Jpeg/Port/Components/ScanDecoder.cs | 37 +++-- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 63 ++------ 4 files changed, 170 insertions(+), 70 deletions(-) create mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs new file mode 100644 index 0000000000..995fd550c9 --- /dev/null +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs @@ -0,0 +1,136 @@ +namespace ImageSharp.Formats.Jpeg.Port.Components +{ + using System; + using System.Runtime.CompilerServices; + + /// + /// Represents a HUffman Table + /// + internal sealed class HuffmanTable + { + private short[] huffcode = new short[257]; + private short[] huffsize = new short[257]; + private short[] valOffset = new short[18]; + private long[] maxcode = new long[18]; + + private byte[] huffval; + private byte[] bits; + + /// + /// Initializes a new instance of the class. + /// + /// The code lengths + /// The huffman values + public HuffmanTable(byte[] lengths, byte[] values) + { + this.huffval = new byte[values.Length]; + Buffer.BlockCopy(values, 0, this.huffval, 0, values.Length); + this.bits = new byte[lengths.Length]; + Buffer.BlockCopy(lengths, 0, this.bits, 0, lengths.Length); + + this.GenerateSizeTable(); + this.GenerateCodeTable(); + this.GenerateDecoderTables(); + } + + /// + /// Gets the Huffman value code at the given index + /// + /// The index + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public short GetHuffVal(int i) + { + return this.huffval[i]; + } + + /// + /// Gets the max code at the given index + /// + /// The index + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public long GetMaxCode(int i) + { + return this.maxcode[i]; + } + + /// + /// Gets the index to the locatation of the huffman value + /// + /// The index + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetValPtr(int i) + { + return this.valOffset[i]; + } + + /// + /// Figure C.1: make table of Huffman code length for each symbol + /// + private void GenerateSizeTable() + { + short index = 0; + for (short l = 1; l <= 16; l++) + { + byte i = this.bits[l]; + for (short j = 0; j < i; j++) + { + this.huffsize[index] = l; + index++; + } + } + + this.huffsize[index] = 0; + } + + /// + /// Figure C.2: generate the codes themselves + /// + private void GenerateCodeTable() + { + short k = 0; + short si = this.huffsize[0]; + short code = 0; + for (short i = 0; i < this.huffsize.Length; i++) + { + while (this.huffsize[k] == si) + { + this.huffcode[k] = code; + code++; + k++; + } + + code <<= 1; + si++; + } + } + + /// + /// Figure F.15: generate decoding tables for bit-sequential decoding + /// + private void GenerateDecoderTables() + { + short bitcount = 0; + for (int i = 1; i <= 16; i++) + { + if (this.bits[i] != 0) + { + // valoffset[l] = huffval[] index of 1st symbol of code length i, + // minus the minimum code of length i + this.valOffset[i] = (short)(bitcount - this.huffcode[bitcount]); + bitcount += this.bits[i]; + this.maxcode[i] = this.huffcode[bitcount - 1]; // maximum code of length i + } + else + { + this.maxcode[i] = -1; // -1 if no codes of this length + } + } + + this.valOffset[17] = 0; + this.maxcode[17] = 0xFFFFFL; + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs index a8644d6451..8aeafd7db8 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -13,14 +13,14 @@ namespace ImageSharp.Formats.Jpeg.Port.Components /// internal class HuffmanTables { - private readonly HuffmanBranch[][] tables = new HuffmanBranch[4][]; + private readonly HuffmanTable[] tables = new HuffmanTable[4]; /// /// Gets or sets the table at the given index. /// /// The index /// The - public HuffmanBranch[] this[int index] + public HuffmanTable this[int index] { [MethodImpl(MethodImplOptions.AggressiveInlining)] get diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 5a31fd89f4..1d588301fe 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -574,6 +574,7 @@ private int ReadBit(Stream stream) #if DEBUG Debug.WriteLine($"DecodeScan - Unexpected marker {(this.bitsData << 8) | nextByte:X} at {stream.Position}"); #endif + // We've encountered an unexpected marker. Reverse the stream and exit. this.unexpectedMarkerReached = true; stream.Position -= 2; @@ -587,27 +588,31 @@ private int ReadBit(Stream stream) } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private short DecodeHuffman(HuffmanBranch[] tree, Stream stream) + private short DecodeHuffman(HuffmanTable tree, Stream stream) { - // TODO: This is our bottleneck. We should use a faster algorithm with a LUT. - HuffmanBranch[] node = tree; - while (true) + // "DECODE", section F.2.2.3, figure F.16, page 109 of T.81 + int i = 1; + short code = (short)this.ReadBit(stream); + if (this.endOfStreamReached || this.unexpectedMarkerReached) { - int index = this.ReadBit(stream); - if (this.endOfStreamReached || this.unexpectedMarkerReached) - { - return -1; - } + return -1; + } - HuffmanBranch branch = node[index]; + while (code > tree.GetMaxCode(i)) + { + code <<= 1; + code |= (short)this.ReadBit(stream); - if (branch.Value > -1) + if (this.endOfStreamReached || this.unexpectedMarkerReached) { - return branch.Value; + return -1; } - node = branch.Children; + i++; } + + int j = tree.GetValPtr(i); + return tree.GetHuffVal((j + code) & 0xFF); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -682,6 +687,12 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab } k += r; + + if (k > 63) + { + break; + } + byte z = QuantizationTables.DctZigZag[k]; short re = (short)this.ReceiveAndExtend(s, stream); component.BlockData[offset + z] = re; diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 6a1d6311c5..7bd71048c0 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -7,6 +7,7 @@ namespace ImageSharp.Formats.Jpeg.Port { using System; using System.Collections.Generic; + using System.Diagnostics; using System.IO; using System.Runtime.CompilerServices; @@ -233,8 +234,6 @@ private void ParseStream(ImageMetaData metaData, bool metadataOnly) case JpegConstants.Markers.APP15: case JpegConstants.Markers.COM: - - // TODO: Read data block this.InputStream.Skip(remaining); break; @@ -676,28 +675,28 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) throw new ImageFormatException($"DHT has wrong length: {remaining}"); } - using (var huffmanData = Buffer.CreateClean(16)) + using (var huffmanData = Buffer.CreateClean(256)) { for (int i = 2; i < remaining;) { byte huffmanTableSpec = (byte)this.InputStream.ReadByte(); this.InputStream.Read(huffmanData.Array, 0, 16); - using (var codeLengths = Buffer.CreateClean(16)) + using (var codeLengths = Buffer.CreateClean(17)) { int codeLengthSum = 0; - for (int j = 0; j < 16; j++) + for (int j = 1; j < 17; j++) { - codeLengthSum += codeLengths[j] = huffmanData[j]; + codeLengthSum += codeLengths[j] = huffmanData[j - 1]; } - using (var huffmanValues = Buffer.CreateClean(codeLengthSum)) + using (var huffmanValues = Buffer.CreateClean(256)) { this.InputStream.Read(huffmanValues.Array, 0, codeLengthSum); i += 17 + codeLengthSum; - + Debug.WriteLine(huffmanTableSpec >> 4 == 0 ? "this.dcHuffmanTables" : "this.acHuffmanTables"); this.BuildHuffmanTable( huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, huffmanTableSpec & 15, @@ -812,53 +811,7 @@ private void BuildComponentData(ref Component component, ref FrameComponent fram /// The values private void BuildHuffmanTable(HuffmanTables tables, int index, byte[] codeLengths, byte[] values) { - int length = 16; - while (length > 0 && codeLengths[length - 1] == 0) - { - length--; - } - - // TODO: Check the branch children capacity here. Seems to max at 2 - var code = new List { new HuffmanBranch(-1) }; - HuffmanBranch p = code[0]; - int k = 0; - - for (int i = 0; i < length; i++) - { - HuffmanBranch q; - for (int j = 0; j < codeLengths[i]; j++) - { - p = code.Pop(); - p.Children[p.Index] = new HuffmanBranch(values[k]); - while (p.Index > 0) - { - p = code.Pop(); - } - - p.Index++; - code.Add(p); - while (code.Count <= i) - { - q = new HuffmanBranch(-1); - code.Add(q); - p.Children[p.Index] = new HuffmanBranch(q.Children); - p = q; - } - - k++; - } - - if (i + 1 < length) - { - // p here points to last code - q = new HuffmanBranch(-1); - code.Add(q); - p.Children[p.Index] = new HuffmanBranch(q.Children); - p = q; - } - } - - tables[index] = code[0].Children; + tables[index] = new HuffmanTable(codeLengths, values); } /// From 0f6024247b6e278f6acb183c7abdd6c42a1843b8 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 30 Jun 2017 09:54:21 +1000 Subject: [PATCH 026/135] Better Huffman decoding --- .../Formats/Jpeg/Port/Components/Component.cs | 1 + .../Jpeg/Port/Components/FrameComponent.cs | 1 + .../Jpeg/Port/Components/HuffmanBranch.cs | 54 ----------------- .../Jpeg/Port/Components/HuffmanTable.cs | 59 ++++++++++++++----- .../Jpeg/Port/Components/HuffmanTables.cs | 12 +++- .../Jpeg/Port/Components/ScanDecoder.cs | 4 +- .../Formats/Jpeg/Port/JpegDecoderCore.cs | 6 +- 7 files changed, 65 insertions(+), 72 deletions(-) delete mode 100644 src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs index db31706135..120bfb58d3 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/Component.cs @@ -43,6 +43,7 @@ internal struct Component : IDisposable public void Dispose() { this.Output?.Dispose(); + this.Output = null; } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs index 0cb9bbb1cb..b386a86f3c 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/FrameComponent.cs @@ -68,6 +68,7 @@ internal struct FrameComponent : IDisposable public void Dispose() { this.BlockData?.Dispose(); + this.BlockData = null; } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs deleted file mode 100644 index d716355ad3..0000000000 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanBranch.cs +++ /dev/null @@ -1,54 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp.Formats.Jpeg.Port.Components -{ - using System.Runtime.CompilerServices; - - /// - /// Represents a branch in the huffman tree - /// - internal struct HuffmanBranch - { - /// - /// The index - /// - public int Index; - - /// - /// The value - /// - public short Value; - - /// - /// The children. - /// - public HuffmanBranch[] Children; - - /// - /// Initializes a new instance of the struct. - /// - /// The value - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public HuffmanBranch(short value) - { - this.Index = 0; - this.Value = value; - this.Children = new HuffmanBranch[2]; - } - - /// - /// Initializes a new instance of the struct. - /// - /// The branch children - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public HuffmanBranch(HuffmanBranch[] children) - { - this.Index = 0; - this.Value = -1; - this.Children = children; - } - } -} \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs index 995fd550c9..bc31629785 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs @@ -1,32 +1,45 @@ -namespace ImageSharp.Formats.Jpeg.Port.Components +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Formats.Jpeg.Port.Components { using System; using System.Runtime.CompilerServices; + using ImageSharp.Memory; + /// - /// Represents a HUffman Table + /// Represents a Huffman Table /// - internal sealed class HuffmanTable + internal struct HuffmanTable : IDisposable { - private short[] huffcode = new short[257]; - private short[] huffsize = new short[257]; - private short[] valOffset = new short[18]; - private long[] maxcode = new long[18]; + private Buffer huffcode; + private Buffer huffsize; + private Buffer valOffset; + private Buffer maxcode; - private byte[] huffval; - private byte[] bits; + private Buffer huffval; + private Buffer bits; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the struct. /// /// The code lengths /// The huffman values public HuffmanTable(byte[] lengths, byte[] values) { - this.huffval = new byte[values.Length]; - Buffer.BlockCopy(values, 0, this.huffval, 0, values.Length); - this.bits = new byte[lengths.Length]; - Buffer.BlockCopy(lengths, 0, this.bits, 0, lengths.Length); + this.huffcode = Buffer.CreateClean(257); + this.huffsize = Buffer.CreateClean(257); + this.valOffset = Buffer.CreateClean(18); + this.maxcode = Buffer.CreateClean(18); + + this.huffval = Buffer.CreateClean(values.Length); + Buffer.BlockCopy(values, 0, this.huffval.Array, 0, values.Length); + + this.bits = Buffer.CreateClean(lengths.Length); + Buffer.BlockCopy(lengths, 0, this.bits.Array, 0, lengths.Length); this.GenerateSizeTable(); this.GenerateCodeTable(); @@ -66,6 +79,24 @@ public int GetValPtr(int i) return this.valOffset[i]; } + /// + public void Dispose() + { + this.huffcode?.Dispose(); + this.huffsize?.Dispose(); + this.valOffset?.Dispose(); + this.maxcode?.Dispose(); + this.huffval?.Dispose(); + this.bits?.Dispose(); + + this.huffcode = null; + this.huffsize = null; + this.valOffset = null; + this.maxcode = null; + this.huffval = null; + this.bits = null; + } + /// /// Figure C.1: make table of Huffman code length for each symbol /// diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs index 8aeafd7db8..6de8c441db 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -5,13 +5,14 @@ namespace ImageSharp.Formats.Jpeg.Port.Components { + using System; using System.Collections.Generic; using System.Runtime.CompilerServices; /// /// Defines a pair of huffman tables /// - internal class HuffmanTables + internal sealed class HuffmanTables : IDisposable { private readonly HuffmanTable[] tables = new HuffmanTable[4]; @@ -34,5 +35,14 @@ public HuffmanTable this[int index] this.tables[index] = value; } } + + /// + public void Dispose() + { + for (int i = 0; i < this.tables.Length; i++) + { + this.tables[i].Dispose(); + } + } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 1d588301fe..62b0a82e4c 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -734,7 +734,7 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl return; } - var componentBlockDataSpan = component.BlockData.Span; + Span componentBlockDataSpan = component.BlockData.Span; int k = this.specStart; int e = this.specEnd; while (k <= e) @@ -773,7 +773,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma int k = this.specStart; int e = this.specEnd; int r = 0; - var componentBlockDataSpan = component.BlockData.Span; + Span componentBlockDataSpan = component.BlockData.Span; while (k <= e) { byte z = QuantizationTables.DctZigZag[k]; diff --git a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs index 7bd71048c0..ca93e96dd5 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/JpegDecoderCore.cs @@ -160,12 +160,16 @@ public void Dispose() this.frame?.Dispose(); this.components?.Dispose(); this.quantizationTables?.Dispose(); + this.dcHuffmanTables?.Dispose(); + this.acHuffmanTables?.Dispose(); this.pixelArea.Dispose(); // Set large fields to null. this.frame = null; this.components = null; this.quantizationTables = null; + this.dcHuffmanTables = null; + this.acHuffmanTables = null; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -696,7 +700,7 @@ private void ProcessDefineHuffmanTablesMarker(int remaining) this.InputStream.Read(huffmanValues.Array, 0, codeLengthSum); i += 17 + codeLengthSum; - Debug.WriteLine(huffmanTableSpec >> 4 == 0 ? "this.dcHuffmanTables" : "this.acHuffmanTables"); + this.BuildHuffmanTable( huffmanTableSpec >> 4 == 0 ? this.dcHuffmanTables : this.acHuffmanTables, huffmanTableSpec & 15, From 0323d000f1f8a297cafc2571f4efa110eab727d3 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 30 Jun 2017 16:30:05 +1000 Subject: [PATCH 027/135] Almost got Huffman LUT working --- .../Jpeg/Port/Components/HuffmanTable.cs | 50 ++++++++++++++++++- .../Jpeg/Port/Components/ScanDecoder.cs | 22 ++++++-- 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs index bc31629785..0119f272cf 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs @@ -15,6 +15,7 @@ namespace ImageSharp.Formats.Jpeg.Port.Components /// internal struct HuffmanTable : IDisposable { + private Buffer lookahead; private Buffer huffcode; private Buffer huffsize; private Buffer valOffset; @@ -30,6 +31,7 @@ internal struct HuffmanTable : IDisposable /// The huffman values public HuffmanTable(byte[] lengths, byte[] values) { + this.lookahead = Buffer.CreateClean(256); this.huffcode = Buffer.CreateClean(257); this.huffsize = Buffer.CreateClean(257); this.valOffset = Buffer.CreateClean(18); @@ -44,6 +46,7 @@ public HuffmanTable(byte[] lengths, byte[] values) this.GenerateSizeTable(); this.GenerateCodeTable(); this.GenerateDecoderTables(); + this.GenerateLookaheadTables(); } /// @@ -74,14 +77,26 @@ public long GetMaxCode(int i) /// The index /// The [MethodImpl(MethodImplOptions.AggressiveInlining)] - public int GetValPtr(int i) + public int GetValOffset(int i) { return this.valOffset[i]; } + /// + /// Gets the look ahead table balue + /// + /// The index + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public int GetLookAhead(int i) + { + return this.lookahead[i]; + } + /// public void Dispose() { + this.lookahead?.Dispose(); this.huffcode?.Dispose(); this.huffsize?.Dispose(); this.valOffset?.Dispose(); @@ -89,6 +104,7 @@ public void Dispose() this.huffval?.Dispose(); this.bits?.Dispose(); + this.lookahead = null; this.huffcode = null; this.huffsize = null; this.valOffset = null; @@ -163,5 +179,37 @@ private void GenerateDecoderTables() this.valOffset[17] = 0; this.maxcode[17] = 0xFFFFFL; } + + /// + /// Generates lookup tables to speed up decoding + /// + private void GenerateLookaheadTables() + { + int x = 0, code = 0; + + for (int i = 0; i < 8; i++) + { + code <<= 1; + + for (int j = 0; j < this.bits[i + 1]; j++) + { + // The codeLength is 1+i, so shift code by 8-(1+i) to + // calculate the high bits for every 8-bit sequence + // whose codeLength's high bits matches code. + // The high 8 bits of lutValue are the encoded value. + // The low 8 bits are 1 plus the codeLength. + int base2 = code << (7 - i); + int lutValue = (this.huffval[x] << 8) | (2 + i); + + for (int k = 0; k < 1 << (7 - i); k++) + { + this.lookahead[base2 | k] = (short)lutValue; + } + + code++; + x++; + } + } + } } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 62b0a82e4c..140f474495 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -23,6 +23,8 @@ internal struct ScanDecoder private int bitsCount; + private int accumulator; + private int specStart; private int specEnd; @@ -584,20 +586,34 @@ private int ReadBit(Stream stream) } this.bitsCount = 7; + + // TODO: This line is incorrect. + this.accumulator = (this.accumulator << 8) | this.bitsData; + return this.bitsData >> 7; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private short DecodeHuffman(HuffmanTable tree, Stream stream) { - // "DECODE", section F.2.2.3, figure F.16, page 109 of T.81 - int i = 1; short code = (short)this.ReadBit(stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) { return -1; } + // TODO: If the following is enabled the decoder breaks. + // if (this.bitsCount > 0) + // { + // int lutIndex = (this.accumulator >> (this.bitsCount - 7)) & 0xFF; + // int v = tree.GetLookAhead(lutIndex); + // if (v != 0) + // { + // return (short)(v >> 8); + // } + // } + // "DECODE", section F.2.2.3, figure F.16, page 109 of T.81 + int i = 1; while (code > tree.GetMaxCode(i)) { code <<= 1; @@ -611,7 +627,7 @@ private short DecodeHuffman(HuffmanTable tree, Stream stream) i++; } - int j = tree.GetValPtr(i); + int j = tree.GetValOffset(i); return tree.GetHuffVal((j + code) & 0xFF); } From a36061471b9dbd6d06937bbfdd5e91b26545c362 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 30 Jun 2017 20:02:43 +1000 Subject: [PATCH 028/135] Better Huffman indexing. --- .../Jpeg/Port/Components/HuffmanTables.cs | 10 +-- .../Jpeg/Port/Components/ScanDecoder.cs | 86 +++++++++++-------- 2 files changed, 54 insertions(+), 42 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs index 6de8c441db..d076c0b038 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTables.cs @@ -21,18 +21,12 @@ internal sealed class HuffmanTables : IDisposable /// /// The index /// The - public HuffmanTable this[int index] + public ref HuffmanTable this[int index] { [MethodImpl(MethodImplOptions.AggressiveInlining)] get { - return this.tables[index]; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - set - { - this.tables[index] = value; + return ref this.tables[index]; } } diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 140f474495..9648dde82b 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -205,6 +205,9 @@ private void DecodeScanBaseline( if (componentsLength == 1) { ref FrameComponent component = ref components[this.compIndex]; + ref HuffmanTable dcHuffmanTable = ref dcHuffmanTables[component.DCHuffmanTableId]; + ref HuffmanTable acHuffmanTable = ref acHuffmanTables[component.ACHuffmanTableId]; + for (int n = 0; n < mcuToRead; n++) { if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -212,7 +215,7 @@ private void DecodeScanBaseline( continue; } - this.DecodeBlockBaseline(dcHuffmanTables, acHuffmanTables, ref component, mcu, stream); + this.DecodeBlockBaseline(ref dcHuffmanTable, ref acHuffmanTable, ref component, mcu, stream); mcu++; } } @@ -223,8 +226,11 @@ private void DecodeScanBaseline( for (int i = 0; i < componentsLength; i++) { ref FrameComponent component = ref components[i]; + ref HuffmanTable dcHuffmanTable = ref dcHuffmanTables[component.DCHuffmanTableId]; + ref HuffmanTable acHuffmanTable = ref acHuffmanTables[component.ACHuffmanTableId]; int h = component.HorizontalFactor; int v = component.VerticalFactor; + for (int j = 0; j < v; j++) { for (int k = 0; k < h; k++) @@ -234,7 +240,7 @@ private void DecodeScanBaseline( continue; } - this.DecodeMcuBaseline(dcHuffmanTables, acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); + this.DecodeMcuBaseline(ref dcHuffmanTable, ref acHuffmanTable, ref component, mcusPerLine, mcu, j, k, stream); } } } @@ -257,6 +263,8 @@ private void DecodeScanDCFirst( if (componentsLength == 1) { ref FrameComponent component = ref components[this.compIndex]; + ref HuffmanTable dcHuffmanTable = ref dcHuffmanTables[component.DCHuffmanTableId]; + for (int n = 0; n < mcuToRead; n++) { if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -264,7 +272,7 @@ private void DecodeScanDCFirst( continue; } - this.DecodeBlockDCFirst(dcHuffmanTables, ref component, mcu, stream); + this.DecodeBlockDCFirst(ref dcHuffmanTable, ref component, mcu, stream); mcu++; } } @@ -275,8 +283,10 @@ private void DecodeScanDCFirst( for (int i = 0; i < componentsLength; i++) { ref FrameComponent component = ref components[i]; + ref HuffmanTable dcHuffmanTable = ref dcHuffmanTables[component.DCHuffmanTableId]; int h = component.HorizontalFactor; int v = component.VerticalFactor; + for (int j = 0; j < v; j++) { for (int k = 0; k < h; k++) @@ -286,7 +296,7 @@ private void DecodeScanDCFirst( continue; } - this.DecodeMcuDCFirst(dcHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); + this.DecodeMcuDCFirst(ref dcHuffmanTable, ref component, mcusPerLine, mcu, j, k, stream); } } } @@ -360,6 +370,8 @@ private void DecodeScanACFirst( if (componentsLength == 1) { ref FrameComponent component = ref components[this.compIndex]; + ref HuffmanTable acHuffmanTable = ref acHuffmanTables[component.ACHuffmanTableId]; + for (int n = 0; n < mcuToRead; n++) { if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -367,7 +379,7 @@ private void DecodeScanACFirst( continue; } - this.DecodeBlockACFirst(acHuffmanTables, ref component, mcu, stream); + this.DecodeBlockACFirst(ref acHuffmanTable, ref component, mcu, stream); mcu++; } } @@ -378,8 +390,10 @@ private void DecodeScanACFirst( for (int i = 0; i < componentsLength; i++) { ref FrameComponent component = ref components[i]; + ref HuffmanTable acHuffmanTable = ref acHuffmanTables[component.ACHuffmanTableId]; int h = component.HorizontalFactor; int v = component.VerticalFactor; + for (int j = 0; j < v; j++) { for (int k = 0; k < h; k++) @@ -389,7 +403,7 @@ private void DecodeScanACFirst( continue; } - this.DecodeMcuACFirst(acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); + this.DecodeMcuACFirst(ref acHuffmanTable, ref component, mcusPerLine, mcu, j, k, stream); } } } @@ -412,6 +426,8 @@ private void DecodeScanACSuccessive( if (componentsLength == 1) { ref FrameComponent component = ref components[this.compIndex]; + ref HuffmanTable acHuffmanTable = ref acHuffmanTables[component.ACHuffmanTableId]; + for (int n = 0; n < mcuToRead; n++) { if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -419,7 +435,7 @@ private void DecodeScanACSuccessive( continue; } - this.DecodeBlockACSuccessive(acHuffmanTables, ref component, mcu, stream); + this.DecodeBlockACSuccessive(ref acHuffmanTable, ref component, mcu, stream); mcu++; } } @@ -430,8 +446,10 @@ private void DecodeScanACSuccessive( for (int i = 0; i < componentsLength; i++) { ref FrameComponent component = ref components[i]; + ref HuffmanTable acHuffmanTable = ref acHuffmanTables[component.ACHuffmanTableId]; int h = component.HorizontalFactor; int v = component.VerticalFactor; + for (int j = 0; j < v; j++) { for (int k = 0; k < h; k++) @@ -441,7 +459,7 @@ private void DecodeScanACSuccessive( continue; } - this.DecodeMcuACSuccessive(acHuffmanTables, ref component, mcusPerLine, mcu, j, k, stream); + this.DecodeMcuACSuccessive(ref acHuffmanTable, ref component, mcusPerLine, mcu, j, k, stream); } } } @@ -452,43 +470,43 @@ private void DecodeScanACSuccessive( } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeBlockBaseline(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + private void DecodeBlockBaseline(ref HuffmanTable dcHuffmanTable, ref HuffmanTable acHuffmanTable, ref FrameComponent component, int mcu, Stream stream) { int blockRow = (mcu / component.BlocksPerLine) | 0; int blockCol = mcu % component.BlocksPerLine; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeBaseline(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); + this.DecodeBaseline(ref component, offset, ref dcHuffmanTable, ref acHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeMcuBaseline(HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) + private void DecodeMcuBaseline(ref HuffmanTable dcHuffmanTable, ref HuffmanTable acHuffmanTable, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) { int mcuRow = (mcu / mcusPerLine) | 0; int mcuCol = mcu % mcusPerLine; int blockRow = (mcuRow * component.VerticalFactor) + row; int blockCol = (mcuCol * component.HorizontalFactor) + col; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeBaseline(ref component, offset, dcHuffmanTables, acHuffmanTables, stream); + this.DecodeBaseline(ref component, offset, ref dcHuffmanTable, ref acHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeBlockDCFirst(HuffmanTables dcHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + private void DecodeBlockDCFirst(ref HuffmanTable dcHuffmanTable, ref FrameComponent component, int mcu, Stream stream) { int blockRow = (mcu / component.BlocksPerLine) | 0; int blockCol = mcu % component.BlocksPerLine; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeDCFirst(ref component, offset, dcHuffmanTables, stream); + this.DecodeDCFirst(ref component, offset, ref dcHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeMcuDCFirst(HuffmanTables dcHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) + private void DecodeMcuDCFirst(ref HuffmanTable dcHuffmanTable, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) { int mcuRow = (mcu / mcusPerLine) | 0; int mcuCol = mcu % mcusPerLine; int blockRow = (mcuRow * component.VerticalFactor) + row; int blockCol = (mcuCol * component.HorizontalFactor) + col; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeDCFirst(ref component, offset, dcHuffmanTables, stream); + this.DecodeDCFirst(ref component, offset, ref dcHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -512,43 +530,43 @@ private void DecodeMcuDCSuccessive(ref FrameComponent component, int mcusPerLine } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeBlockACFirst(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + private void DecodeBlockACFirst(ref HuffmanTable acHuffmanTable, ref FrameComponent component, int mcu, Stream stream) { int blockRow = (mcu / component.BlocksPerLine) | 0; int blockCol = mcu % component.BlocksPerLine; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeACFirst(ref component, offset, acHuffmanTables, stream); + this.DecodeACFirst(ref component, offset, ref acHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeMcuACFirst(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) + private void DecodeMcuACFirst(ref HuffmanTable acHuffmanTable, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) { int mcuRow = (mcu / mcusPerLine) | 0; int mcuCol = mcu % mcusPerLine; int blockRow = (mcuRow * component.VerticalFactor) + row; int blockCol = (mcuCol * component.HorizontalFactor) + col; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeACFirst(ref component, offset, acHuffmanTables, stream); + this.DecodeACFirst(ref component, offset, ref acHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeBlockACSuccessive(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcu, Stream stream) + private void DecodeBlockACSuccessive(ref HuffmanTable acHuffmanTable, ref FrameComponent component, int mcu, Stream stream) { int blockRow = (mcu / component.BlocksPerLine) | 0; int blockCol = mcu % component.BlocksPerLine; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeACSuccessive(ref component, offset, acHuffmanTables, stream); + this.DecodeACSuccessive(ref component, offset, ref acHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeMcuACSuccessive(HuffmanTables acHuffmanTables, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) + private void DecodeMcuACSuccessive(ref HuffmanTable acHuffmanTable, ref FrameComponent component, int mcusPerLine, int mcu, int row, int col, Stream stream) { int mcuRow = (mcu / mcusPerLine) | 0; int mcuCol = mcu % mcusPerLine; int blockRow = (mcuRow * component.VerticalFactor) + row; int blockCol = (mcuCol * component.HorizontalFactor) + col; int offset = GetBlockBufferOffset(component, blockRow, blockCol); - this.DecodeACSuccessive(ref component, offset, acHuffmanTables, stream); + this.DecodeACSuccessive(ref component, offset, ref acHuffmanTable, stream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -594,7 +612,7 @@ private int ReadBit(Stream stream) } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private short DecodeHuffman(HuffmanTable tree, Stream stream) + private short DecodeHuffman(ref HuffmanTable tree, Stream stream) { short code = (short)this.ReadBit(stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) @@ -668,9 +686,9 @@ private int ReceiveAndExtend(int length, Stream stream) } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, HuffmanTables acHuffmanTables, Stream stream) + private void DecodeBaseline(ref FrameComponent component, int offset, ref HuffmanTable dcHuffmanTable, ref HuffmanTable acHuffmanTable, Stream stream) { - int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); + int t = this.DecodeHuffman(ref dcHuffmanTable, stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; @@ -682,7 +700,7 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab int k = 1; while (k < 64) { - int rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + int rs = this.DecodeHuffman(ref acHuffmanTable, stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; @@ -717,9 +735,9 @@ private void DecodeBaseline(ref FrameComponent component, int offset, HuffmanTab } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeDCFirst(ref FrameComponent component, int offset, HuffmanTables dcHuffmanTables, Stream stream) + private void DecodeDCFirst(ref FrameComponent component, int offset, ref HuffmanTable dcHuffmanTable, Stream stream) { - int t = this.DecodeHuffman(dcHuffmanTables[component.DCHuffmanTableId], stream); + int t = this.DecodeHuffman(ref dcHuffmanTable, stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; @@ -742,7 +760,7 @@ private void DecodeDCSuccessive(ref FrameComponent component, int offset, Stream } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTables acHuffmanTables, Stream stream) + private void DecodeACFirst(ref FrameComponent component, int offset, ref HuffmanTable acHuffmanTable, Stream stream) { if (this.eobrun > 0) { @@ -755,7 +773,7 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl int e = this.specEnd; while (k <= e) { - short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + short rs = this.DecodeHuffman(ref acHuffmanTable, stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; @@ -784,7 +802,7 @@ private void DecodeACFirst(ref FrameComponent component, int offset, HuffmanTabl } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void DecodeACSuccessive(ref FrameComponent component, int offset, HuffmanTables acHuffmanTables, Stream stream) + private void DecodeACSuccessive(ref FrameComponent component, int offset, ref HuffmanTable acHuffmanTable, Stream stream) { int k = this.specStart; int e = this.specEnd; @@ -796,7 +814,7 @@ private void DecodeACSuccessive(ref FrameComponent component, int offset, Huffma switch (this.successiveACState) { case 0: // Initial state - short rs = this.DecodeHuffman(acHuffmanTables[component.ACHuffmanTableId], stream); + short rs = this.DecodeHuffman(ref acHuffmanTable, stream); if (this.endOfStreamReached || this.unexpectedMarkerReached) { return; From 824131429492c768d157590c4871752c1ff86f64 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Sat, 1 Jul 2017 13:34:50 +1000 Subject: [PATCH 029/135] Getting close with that lookup now. --- .../Jpeg/Port/Components/HuffmanTable.cs | 6 +- .../Jpeg/Port/Components/ScanDecoder.cs | 57 +++++++++++++------ 2 files changed, 43 insertions(+), 20 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs index 0119f272cf..85bcb5dfe0 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/HuffmanTable.cs @@ -198,12 +198,12 @@ private void GenerateLookaheadTables() // whose codeLength's high bits matches code. // The high 8 bits of lutValue are the encoded value. // The low 8 bits are 1 plus the codeLength. - int base2 = code << (7 - i); - int lutValue = (this.huffval[x] << 8) | (2 + i); + byte base2 = (byte)(code << (7 - i)); + short lutValue = (short)((short)(this.huffval[x] << 8) | (short)(2 + i)); for (int k = 0; k < 1 << (7 - i); k++) { - this.lookahead[base2 | k] = (short)lutValue; + this.lookahead[base2 | k] = lutValue; } code++; diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 9648dde82b..19ffcd778f 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -23,6 +23,8 @@ internal struct ScanDecoder private int bitsCount; + private int bitsUnRead; + private int accumulator; private int specStart; @@ -139,6 +141,8 @@ public void DecodeScan( // Find marker this.bitsCount = 0; + this.accumulator = 0; + this.bitsUnRead = 0; fileMarker = JpegDecoderCore.FindNextFileMarker(this.markerBuffer, stream); // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past @@ -572,6 +576,7 @@ private void DecodeMcuACSuccessive(ref HuffmanTable acHuffmanTable, ref FrameCom [MethodImpl(MethodImplOptions.AggressiveInlining)] private int ReadBit(Stream stream) { + // TODO: I wonder if we can do this two bytes at a time; libjpeg turbo seems to do that? if (this.bitsCount > 0) { this.bitsCount--; @@ -586,7 +591,7 @@ private int ReadBit(Stream stream) this.endOfStreamReached = true; } - if (this.bitsData == 0xFF) + if (this.bitsData == JpegConstants.Markers.Prefix) { int nextByte = stream.ReadByte(); if (nextByte != 0) @@ -605,33 +610,51 @@ private int ReadBit(Stream stream) this.bitsCount = 7; - // TODO: This line is incorrect. - this.accumulator = (this.accumulator << 8) | this.bitsData; - return this.bitsData >> 7; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private short DecodeHuffman(ref HuffmanTable tree, Stream stream) { - short code = (short)this.ReadBit(stream); - if (this.endOfStreamReached || this.unexpectedMarkerReached) - { - return -1; - } + short code = -1; - // TODO: If the following is enabled the decoder breaks. - // if (this.bitsCount > 0) + // TODO: Adding this code introduces error into the decoder. + // It doesn't appear to speed anything up either. + // if (this.bitsUnRead < 8) // { - // int lutIndex = (this.accumulator >> (this.bitsCount - 7)) & 0xFF; - // int v = tree.GetLookAhead(lutIndex); - // if (v != 0) - // { - // return (short)(v >> 8); - // } + // if (this.bitsCount <= 0) + // { + // code = (short)this.ReadBit(stream); + // this.bitsUnRead += 8; + // } + // if (this.endOfStreamReached || this.unexpectedMarkerReached) + // { + // return -1; + // } + // this.accumulator = (this.accumulator << 8) | this.bitsData; + // int lutIndex = (this.accumulator >> (this.bitsUnRead - 8)) & 0xFF; + // int v = tree.GetLookAhead(lutIndex); + // if (v != 0) + // { + // int nb = (v & 0xFF) - 1; + // this.bitsCount -= nb - 1; + // this.bitsUnRead -= nb; + // v = v >> 8; + // return (short)v; + // } // } + if (code == -1) + { + code = (short)this.ReadBit(stream); + if (this.endOfStreamReached || this.unexpectedMarkerReached) + { + return -1; + } + } + // "DECODE", section F.2.2.3, figure F.16, page 109 of T.81 int i = 1; + while (code > tree.GetMaxCode(i)) { code <<= 1; From 2c64ed6b2dcc76bf72828cf898ad61476dffc0ef Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Sat, 1 Jul 2017 13:38:32 +1000 Subject: [PATCH 030/135] Fix build --- src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs index 19ffcd778f..98d46dae5f 100644 --- a/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Port/Components/ScanDecoder.cs @@ -23,9 +23,11 @@ internal struct ScanDecoder private int bitsCount; +#pragma warning disable 414 private int bitsUnRead; private int accumulator; +#pragma warning restore 414 private int specStart; From 2b4abd2d564f5a028e2b3933e6a0fe0c423ca3ef Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Sat, 1 Jul 2017 17:35:03 +0200 Subject: [PATCH 031/135] introduced CoreCompat.SystemDrawing as reference utility for tests, implemented ToSystemDrawingBitmap() --- tests/ImageSharp.Tests/ImageComparer.cs | 10 ++- .../ImageSharp.Tests/ImageSharp.Tests.csproj | 1 + .../Integration/IntegrationTestUtils.cs | 65 +++++++++++++++++++ .../Integration/ReferenceEncoder.cs | 21 ++++++ .../Tests/IntegrationTestUtilsTests.cs | 33 ++++++++++ 5 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs create mode 100644 tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs create mode 100644 tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs diff --git a/tests/ImageSharp.Tests/ImageComparer.cs b/tests/ImageSharp.Tests/ImageComparer.cs index 6cd80e9e83..4a37c6c459 100644 --- a/tests/ImageSharp.Tests/ImageComparer.cs +++ b/tests/ImageSharp.Tests/ImageComparer.cs @@ -72,9 +72,13 @@ public static void EnsureProcessorChangesAreConstrained(Image< /// This is a sampling factor we sample a grid of average pixels width by high /// The default undefined value is /// - public static void CheckSimilarity(Image expected, Image actual, float imageTheshold = DefaultImageThreshold, byte segmentThreshold = DefaultSegmentThreshold, int scalingFactor = DefaultScalingFactor) - where TPixelA : struct, IPixel - where TPixelB : struct, IPixel + public static void CheckSimilarity( + Image expected, + Image actual, + float imageTheshold = DefaultImageThreshold, + byte segmentThreshold = DefaultSegmentThreshold, + int scalingFactor = DefaultScalingFactor) + where TPixelA : struct, IPixel where TPixelB : struct, IPixel { float percentage = expected.PercentageDifference(actual, segmentThreshold, scalingFactor); diff --git a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj index b0429d9ede..aded62b8f2 100644 --- a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj +++ b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj @@ -10,6 +10,7 @@ + diff --git a/tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs b/tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs new file mode 100644 index 0000000000..f4a125733e --- /dev/null +++ b/tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs @@ -0,0 +1,65 @@ +namespace ImageSharp.Tests.TestUtilities.Integration +{ + using System; + using System.Drawing.Imaging; + + using ImageSharp.Memory; + using ImageSharp.PixelFormats; + + public static class IntegrationTestUtils + { + // TODO: It would be nice to have this method in PixelOperations + private static void ToArgb32(Span source, Span dest) + where TPixel : struct, IPixel + { + int length = source.Length; + Guard.MustBeSizedAtLeast(dest, length, nameof(dest)); + + using (var rgbaBuffer = new Buffer(length)) + { + PixelOperations.Instance.ToRgba32(source, rgbaBuffer, length); + + for (int i = 0; i < length; i++) + { + ref Rgba32 s = ref rgbaBuffer[i]; + ref Argb32 d = ref dest[i]; + + d.PackFromRgba32(s); + } + } + } + + internal static unsafe System.Drawing.Bitmap ToSystemDrawingBitmap(Image image) + where TPixel : struct, IPixel + { + int w = image.Width; + int h = image.Height; + + var resultBitmap = new System.Drawing.Bitmap(w, h, PixelFormat.Format32bppArgb); + var fullRect = new System.Drawing.Rectangle(0, 0, w, h); + BitmapData data = resultBitmap.LockBits(fullRect, ImageLockMode.ReadWrite, resultBitmap.PixelFormat); + byte* destPtrBase = (byte*)data.Scan0; + + long destRowByteCount= data.Stride; + long sourceRowByteCount = w * sizeof(Argb32); + + using (var workBuffer = new Buffer(w)) + { + var sourcePtr = (Argb32*) workBuffer.Pin(); + + for (int y = 0; y < h; y++) + { + Span row = image.GetRowSpan(y); + ToArgb32(row, workBuffer); + byte* destPtr = destPtrBase + data.Stride * y; + + Buffer.MemoryCopy(sourcePtr, destPtr, destRowByteCount, sourceRowByteCount); + } + } + + resultBitmap.UnlockBits(data); + + return resultBitmap; + } + } +} \ No newline at end of file diff --git a/tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs b/tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs new file mode 100644 index 0000000000..60c21971b8 --- /dev/null +++ b/tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ImageSharp.Tests.TestUtilities.Integration +{ + using System.IO; + + using ImageSharp.Formats; + using ImageSharp.PixelFormats; + + public class ReferenceEncoder : IImageEncoder + { + public void Encode(Image image, Stream stream, IEncoderOptions options) + where TPixel : struct, IPixel + { + System.Drawing.Bitmap sdBitmap = IntegrationTestUtils.ToSystemDrawingBitmap(image); + throw new NotImplementedException(); + } + } +} diff --git a/tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs b/tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs new file mode 100644 index 0000000000..abb7f1262d --- /dev/null +++ b/tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs @@ -0,0 +1,33 @@ +namespace ImageSharp.Tests +{ + using ImageSharp.PixelFormats; + using ImageSharp.Tests.TestUtilities.Integration; + + using Xunit; + using Xunit.Abstractions; + + public class IntegrationTestUtilsTests + { + private ITestOutputHelper Output { get; } + + public IntegrationTestUtilsTests(ITestOutputHelper output) + { + this.Output = output; + } + + [Theory] + [WithTestPatternImages(20, 20, PixelTypes.Rgba32 | PixelTypes.Bgra32)] + public void ToSystemDrawingBitmap(TestImageProvider provider) + where TPixel : struct, IPixel + { + using (Image image = provider.GetImage()) + { + using (System.Drawing.Bitmap sdBitmap = IntegrationTestUtils.ToSystemDrawingBitmap(image)) + { + string fileName = provider.Utility.GetTestOutputFileName("png"); + sdBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Png); + } + } + } + } +} \ No newline at end of file From 7d12830abf1067146eadba4aa579789bb3e5f077 Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Sat, 1 Jul 2017 18:28:35 +0200 Subject: [PATCH 032/135] ReferencePngDecoder --- .../Integration/ReferencePngEncoder.cs} | 10 ++-- .../Integration/IntegrationTestUtils.cs | 54 +++++++++++++++++++ .../Integration/ReferencePngDecoder.cs | 31 +++++++++++ .../Integration/ReferencePngEncoder.cs | 24 +++++++++ .../Tests/IntegrationTestUtilsTests.cs | 39 ++++++++++++++ 5 files changed, 155 insertions(+), 3 deletions(-) rename tests/{ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs => ImageSharp.Sandbox46/Tests/TestUtilities/Integration/ReferencePngEncoder.cs} (52%) create mode 100644 tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngDecoder.cs create mode 100644 tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngEncoder.cs diff --git a/tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs b/tests/ImageSharp.Sandbox46/Tests/TestUtilities/Integration/ReferencePngEncoder.cs similarity index 52% rename from tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs rename to tests/ImageSharp.Sandbox46/Tests/TestUtilities/Integration/ReferencePngEncoder.cs index 60c21971b8..806cb05be7 100644 --- a/tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceEncoder.cs +++ b/tests/ImageSharp.Sandbox46/Tests/TestUtilities/Integration/ReferencePngEncoder.cs @@ -9,13 +9,17 @@ namespace ImageSharp.Tests.TestUtilities.Integration using ImageSharp.Formats; using ImageSharp.PixelFormats; - public class ReferenceEncoder : IImageEncoder + public class ReferencePngEncoder : IImageEncoder { + public static ReferencePngEncoder Instance { get; } = new ReferencePngEncoder(); + public void Encode(Image image, Stream stream, IEncoderOptions options) where TPixel : struct, IPixel { - System.Drawing.Bitmap sdBitmap = IntegrationTestUtils.ToSystemDrawingBitmap(image); - throw new NotImplementedException(); + using (System.Drawing.Bitmap sdBitmap = IntegrationTestUtils.ToSystemDrawingBitmap(image)) + { + sdBitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); + } } } } diff --git a/tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs b/tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs index f4a125733e..53986e64a6 100644 --- a/tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs +++ b/tests/ImageSharp.Tests/TestUtilities/Integration/IntegrationTestUtils.cs @@ -29,6 +29,60 @@ private static void ToArgb32(Span source, Span dest) } } + private static void FromArgb32(Span source, Span dest) + where TPixel : struct, IPixel + { + int length = source.Length; + Guard.MustBeSizedAtLeast(dest, length, nameof(dest)); + + using (var rgbaBuffer = new Buffer(length)) + { + PixelOperations.Instance.ToRgba32(source, rgbaBuffer, length); + + for (int i = 0; i < length; i++) + { + ref Rgba32 s = ref rgbaBuffer[i]; + ref TPixel d = ref dest[i]; + + d.PackFromRgba32(s); + } + } + } + + internal static unsafe Image FromSystemDrawingBitmap(System.Drawing.Bitmap bmp) + where TPixel : struct, IPixel + { + int w = bmp.Width; + int h = bmp.Height; + + var fullRect = new System.Drawing.Rectangle(0, 0, w, h); + + BitmapData data = bmp.LockBits(fullRect, ImageLockMode.ReadWrite, bmp.PixelFormat); + byte* sourcePtrBase = (byte*)data.Scan0; + + long sourceRowByteCount = data.Stride; + long destRowByteCount = w * sizeof(Argb32); + + var image = new Image(w, h); + + using (var workBuffer = new Buffer(w)) + { + var destPtr = (Argb32*)workBuffer.Pin(); + for (int y = 0; y < h; y++) + { + Span row = image.GetRowSpan(y); + + byte* sourcePtr = sourcePtrBase + data.Stride * y; + + Buffer.MemoryCopy(sourcePtr, destPtr, destRowByteCount, sourceRowByteCount); + + FromArgb32(workBuffer, row); + } + } + + return image; + } + internal static unsafe System.Drawing.Bitmap ToSystemDrawingBitmap(Image image) where TPixel : struct, IPixel { diff --git a/tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngDecoder.cs b/tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngDecoder.cs new file mode 100644 index 0000000000..f2ac69fd4d --- /dev/null +++ b/tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngDecoder.cs @@ -0,0 +1,31 @@ +namespace ImageSharp.Tests.TestUtilities.Integration +{ + using System; + using System.IO; + + using ImageSharp.Formats; + using ImageSharp.PixelFormats; + + public class ReferencePngDecoder : IImageDecoder + { + public static ReferencePngDecoder Instance { get; } = new ReferencePngDecoder(); + + public Image Decode(Configuration configuration, Stream stream, IDecoderOptions options) + where TPixel : struct, IPixel + { + using (var sdBitmap = new System.Drawing.Bitmap(stream)) + { + if (!sdBitmap.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png)) + { + throw new Exception("Reference image should be a Png!"); + } + if (sdBitmap.PixelFormat != System.Drawing.Imaging.PixelFormat.Format32bppArgb) + { + throw new Exception("Reference image pixel format should be PixelFormat.Format32bppArgb!"); + } + + return IntegrationTestUtils.FromSystemDrawingBitmap(sdBitmap); + } + } + } +} \ No newline at end of file diff --git a/tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngEncoder.cs b/tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngEncoder.cs new file mode 100644 index 0000000000..b206197db6 --- /dev/null +++ b/tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngEncoder.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using System.Text; + +namespace ImageSharp.Tests.TestUtilities.Integration +{ + using System.IO; + + using ImageSharp.Formats; + using ImageSharp.PixelFormats; + + public class ReferencePngEncoder : IImageEncoder + { + public static ReferencePngEncoder Instance { get; } = new ReferencePngEncoder(); + + public void Encode(Image image, Stream stream, IEncoderOptions options) + where TPixel : struct, IPixel + { + using (System.Drawing.Bitmap sdBitmap = IntegrationTestUtils.ToSystemDrawingBitmap(image)) + { + sdBitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); + } + } + } +} diff --git a/tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs b/tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs index abb7f1262d..d1ceef03ba 100644 --- a/tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs +++ b/tests/ImageSharp.Tests/TestUtilities/Tests/IntegrationTestUtilsTests.cs @@ -29,5 +29,44 @@ public void ToSystemDrawingBitmap(TestImageProvider provider) } } } + + [Theory] + [WithBlankImages(1, 1, PixelTypes.Rgba32 | PixelTypes.Bgra32)] + public void FromSystemDrawingBitmap(TestImageProvider dummyProvider) + where TPixel : struct, IPixel + { + string path = TestFile.GetPath(TestImages.Png.Splash); + + using (var sdBitmap = new System.Drawing.Bitmap(path)) + { + using (Image image = IntegrationTestUtils.FromSystemDrawingBitmap(sdBitmap)) + { + image.DebugSave(dummyProvider); + } + } + } + + [Theory] + [WithBlankImages(1, 1, PixelTypes.Rgba32 | PixelTypes.Bgra32)] + public void OpenWithReferenceDecoder(TestImageProvider dummyProvider) + where TPixel : struct, IPixel + { + string path = TestFile.GetPath(TestImages.Png.Splash); + using (Image image = Image.Load(path, ReferencePngDecoder.Instance)) + { + image.DebugSave(dummyProvider); + } + } + + [Theory] + [WithTestPatternImages(20, 20, PixelTypes.Rgba32 | PixelTypes.Argb32)] + public void SaveWithReferenceEncoder(TestImageProvider provider) + where TPixel : struct, IPixel + { + using (Image image = provider.GetImage()) + { + provider.Utility.SaveTestOutputFile(image, "png", ReferencePngEncoder.Instance); + } + } } } \ No newline at end of file From f026778e4727a47a4be99f3954ae92775ad3a55b Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sat, 1 Jul 2017 20:09:35 +0100 Subject: [PATCH 033/135] migrate to a Image.Generate/Image.Mutate context api --- samples/AvatarWithRoundedCorner/Program.cs | 17 +-- src/ImageSharp.Drawing/DrawImage.cs | 14 +- src/ImageSharp.Drawing/FillRegion.cs | 14 +- src/ImageSharp.Drawing/Paths/DrawBeziers.cs | 12 +- src/ImageSharp.Drawing/Paths/DrawLines.cs | 12 +- src/ImageSharp.Drawing/Paths/DrawPath.cs | 12 +- .../Paths/DrawPathCollection.cs | 12 +- src/ImageSharp.Drawing/Paths/DrawPolygon.cs | 12 +- src/ImageSharp.Drawing/Paths/DrawRectangle.cs | 12 +- .../Paths/FillPathBuilder.cs | 8 +- .../Paths/FillPathCollection.cs | 8 +- src/ImageSharp.Drawing/Paths/FillPaths.cs | 8 +- src/ImageSharp.Drawing/Paths/FillPolygon.cs | 8 +- src/ImageSharp.Drawing/Paths/FillRectangle.cs | 8 +- .../Processors/DrawImageProcessor.cs | 2 +- src/ImageSharp.Drawing/Text/DrawText.Path.cs | 21 ++- src/ImageSharp.Drawing/Text/DrawText.cs | 21 ++- .../Text/TextGraphicsOptions.cs | 9 -- src/ImageSharp/ApplyProcessors.cs | 100 ++++++++++++++ src/ImageSharp/Formats/Bmp/ImageExtensions.cs | 19 ++- src/ImageSharp/Formats/Gif/ImageExtensions.cs | 21 +-- .../Formats/Jpeg/ImageExtensions.cs | 21 +-- src/ImageSharp/Formats/Png/ImageExtensions.cs | 21 +-- src/ImageSharp/IImageOperations{TPixel}.cs | 36 +++++ src/ImageSharp/Image/IImageProcessor.cs | 2 +- src/ImageSharp/Image/ImageBase{TPixel}.cs | 10 -- .../Image/ImageProcessingExtensions.cs | 4 +- src/ImageSharp/Image/Image{TPixel}.cs | 8 +- src/ImageSharp/ImageOperations.cs | 62 +++++++++ src/ImageSharp/Numerics/ValueSize.cs | 124 ++++++++++++++++++ .../Binarization/BinaryThreshold.cs | 7 +- .../Processing/Binarization/Dither.cs | 14 +- .../Processing/ColorMatrix/BlackWhite.cs | 7 +- .../Processing/ColorMatrix/ColorBlindness.cs | 48 +++---- .../Processing/ColorMatrix/Grayscale.cs | 20 +-- src/ImageSharp/Processing/ColorMatrix/Hue.cs | 7 +- .../Processing/ColorMatrix/Kodachrome.cs | 7 +- .../Processing/ColorMatrix/Lomograph.cs | 13 +- .../Processing/ColorMatrix/Polaroid.cs | 11 +- .../Processing/ColorMatrix/Saturation.cs | 7 +- .../Processing/ColorMatrix/Sepia.cs | 13 +- .../Processing/Convolution/BoxBlur.cs | 13 +- .../Processing/Convolution/DetectEdges.cs | 80 +++++------ .../Processing/Convolution/GaussianBlur.cs | 13 +- .../Processing/Convolution/GaussianSharpen.cs | 13 +- .../Processing/DelegateImageProcessor.cs | 44 +++++++ src/ImageSharp/Processing/Effects/Alpha.cs | 13 +- .../Processing/Effects/BackgroundColor.cs | 17 +-- .../Processing/Effects/Brightness.cs | 13 +- src/ImageSharp/Processing/Effects/Contrast.cs | 13 +- src/ImageSharp/Processing/Effects/Invert.cs | 13 +- .../Processing/Effects/OilPainting.cs | 26 +--- src/ImageSharp/Processing/Effects/Pixelate.cs | 18 +-- src/ImageSharp/Processing/ImageProcessor.cs | 66 +++++++++- src/ImageSharp/Processing/Overlays/Glow.cs | 79 ++++++----- .../Processing/Overlays/Vignette.cs | 54 ++++---- .../ColorMatrix/PolaroidProcessor.cs | 2 +- .../Effects/OilPaintingProcessor.cs | 5 + .../Processors/Effects/PixelateProcessor.cs | 13 +- .../Processors/Overlays/GlowProcessor.cs | 11 +- .../Processors/Overlays/VignetteProcessor.cs | 28 +++- .../Transforms/AutoRotateProcessor.cs | 103 +++++++++++++++ .../Transforms/ResamplingWeightedProcessor.cs | 12 +- .../Processing/Transforms/AutoOrient.cs | 64 +-------- src/ImageSharp/Processing/Transforms/Crop.cs | 15 +-- .../Processing/Transforms/EntropyCrop.cs | 9 +- src/ImageSharp/Processing/Transforms/Flip.cs | 9 +- src/ImageSharp/Processing/Transforms/Pad.cs | 2 +- .../Processing/Transforms/Resize.cs | 118 ++++++++++++----- .../Processing/Transforms/Rotate.cs | 17 +-- .../Processing/Transforms/RotateFlip.cs | 2 +- src/ImageSharp/Processing/Transforms/Skew.cs | 11 +- src/ImageSharp/Quantizers/Quantize.cs | 45 ++++--- .../Drawing/DrawBeziers.cs | 4 +- .../Drawing/DrawLines.cs | 4 +- .../Drawing/DrawPolygon.cs | 4 +- .../Drawing/FillPolygon.cs | 8 +- .../Drawing/FillRectangle.cs | 6 +- .../Drawing/FillWithPattern.cs | 2 +- tests/ImageSharp.Benchmarks/Samplers/Crop.cs | 2 +- .../Samplers/DetectEdges.cs | 22 ++-- tests/ImageSharp.Benchmarks/Samplers/Glow.cs | 2 +- .../ImageSharp.Benchmarks/Samplers/Resize.cs | 2 +- .../ImageSharp.Tests/Drawing/BeziersTests.cs | 12 +- .../ImageSharp.Tests/Drawing/BlendedShapes.cs | 42 +++--- .../ImageSharp.Tests/Drawing/DrawImageTest.cs | 4 +- .../ImageSharp.Tests/Drawing/DrawPathTests.cs | 16 +-- .../Drawing/FillPatternTests.cs | 7 +- .../Drawing/FillRegionProcessorTests.cs | 6 +- .../Drawing/FillSolidBrushTests.cs | 15 ++- .../Drawing/LineComplexPolygonTests.cs | 30 ++--- tests/ImageSharp.Tests/Drawing/LineTests.cs | 88 ++++++------- .../Drawing/Paths/FillPath.cs | 8 +- .../Drawing/Paths/FillPathCollection.cs | 8 +- .../Drawing/Paths/FillPolygon.cs | 8 +- .../Drawing/Paths/FillRectangle.cs | 8 +- .../ImageSharp.Tests/Drawing/PolygonTests.cs | 28 ++-- .../Drawing/RecolorImageTest.cs | 8 +- .../Drawing/SolidBezierTests.cs | 16 +-- .../Drawing/SolidComplexPolygonTests.cs | 18 +-- .../Drawing/SolidPolygonTests.cs | 62 ++++----- .../Drawing/Text/DrawText.Path.cs | 63 +++------ .../ImageSharp.Tests/Drawing/Text/DrawText.cs | 63 +++------ .../Drawing/Text/OutputText.cs | 4 +- .../Formats/GeneralFormatTests.cs | 14 +- .../Formats/Jpg/JpegEncoderTests.cs | 3 +- .../Formats/Png/PngSmokeTests.cs | 2 +- .../Image/PixelAccessorTests.cs | 5 +- tests/ImageSharp.Tests/ImageComparer.cs | 6 +- .../Binarization/BinaryThresholdTest.cs | 8 +- .../Processing/Binarization/DitherTest.cs | 16 +-- .../Processing/ColorMatrix/BlackWhiteTest.cs | 8 +- .../ColorMatrix/ColorBlindnessTest.cs | 8 +- .../Processing/ColorMatrix/GrayscaleTest.cs | 6 +- .../Processing/ColorMatrix/HueTest.cs | 8 +- .../Processing/ColorMatrix/KodachromeTest.cs | 8 +- .../Processing/ColorMatrix/LomographTest.cs | 8 +- .../Processing/ColorMatrix/PolaroidTest.cs | 8 +- .../Processing/ColorMatrix/SaturationTest.cs | 8 +- .../Processing/ColorMatrix/SepiaTest.cs | 8 +- .../Processing/Convolution/BoxBlurTest.cs | 8 +- .../Processing/Convolution/DetectEdgesTest.cs | 8 +- .../Convolution/GaussianBlurTest.cs | 8 +- .../Convolution/GaussianSharpenTest.cs | 8 +- .../Processing/Effects/AlphaTest.cs | 8 +- .../Processing/Effects/BackgroundColorTest.cs | 8 +- .../Processing/Effects/BrightnessTest.cs | 8 +- .../Processing/Effects/ContrastTest.cs | 8 +- .../Processing/Effects/InvertTest.cs | 8 +- .../Processing/Effects/OilPaintTest.cs | 8 +- .../Processing/Effects/PixelateTest.cs | 8 +- .../Processing/Overlays/GlowTest.cs | 16 +-- .../Processing/Overlays/VignetteTest.cs | 16 +-- .../Processing/Transforms/AutoOrientTests.cs | 9 +- .../Processing/Transforms/CropTest.cs | 4 +- .../Processing/Transforms/EntropyCropTest.cs | 4 +- .../Processing/Transforms/FlipTests.cs | 4 +- .../Processing/Transforms/PadTest.cs | 4 +- .../Transforms/ResizeProfilingBenchmarks.cs | 2 +- .../Processing/Transforms/ResizeTests.cs | 44 +++---- .../Processing/Transforms/RotateFlipTests.cs | 4 +- .../Processing/Transforms/RotateTests.cs | 8 +- .../Processing/Transforms/SkewTest.cs | 4 +- .../ImageProviders/SolidProvider.cs | 3 +- .../ImageProviders/TestImageProvider.cs | 10 ++ .../Tests/TestUtilityExtensionsTests.cs | 3 +- 146 files changed, 1504 insertions(+), 1146 deletions(-) create mode 100644 src/ImageSharp/ApplyProcessors.cs create mode 100644 src/ImageSharp/IImageOperations{TPixel}.cs create mode 100644 src/ImageSharp/ImageOperations.cs create mode 100644 src/ImageSharp/Numerics/ValueSize.cs create mode 100644 src/ImageSharp/Processing/DelegateImageProcessor.cs create mode 100644 src/ImageSharp/Processing/Processors/Transforms/AutoRotateProcessor.cs diff --git a/samples/AvatarWithRoundedCorner/Program.cs b/samples/AvatarWithRoundedCorner/Program.cs index b164c8d3bc..45fe1e3c86 100644 --- a/samples/AvatarWithRoundedCorner/Program.cs +++ b/samples/AvatarWithRoundedCorner/Program.cs @@ -23,13 +23,14 @@ private static void GenerateAvatar(string source, string destination, Size size, { using (var image = Image.Load(source)) { - image.Resize(new ImageSharp.Processing.ResizeOptions - { - Size = size, - Mode = ImageSharp.Processing.ResizeMode.Crop - }); + image.Mutate(x => x + .Resize(new ImageSharp.Processing.ResizeOptions + { + Size = size, + Mode = ImageSharp.Processing.ResizeMode.Crop + }) + .Run(i=>ApplyRoundedCourners(i, cornerRadius))); - ApplyRoundedCourners(image, cornerRadius); image.Save(destination); } } @@ -38,10 +39,10 @@ public static void ApplyRoundedCourners(Image img, float cornerRadius) { var corners = BuildCorners(img.Width, img.Height, cornerRadius); // now we have our corners time to draw them - img.Fill(Rgba32.Transparent, corners, new GraphicsOptions(true) + img.Mutate(x => x.Fill(Rgba32.Transparent, corners, new GraphicsOptions(true) { BlenderMode = ImageSharp.PixelFormats.PixelBlenderMode.Src // enforces that any part of this shape that has color is punched out of the background - }); + })); } public static IPathCollection BuildCorners(int imageWidth, int imageHeight, float cornerRadius) diff --git a/src/ImageSharp.Drawing/DrawImage.cs b/src/ImageSharp.Drawing/DrawImage.cs index 03eb7be289..bd51e4ac0a 100644 --- a/src/ImageSharp.Drawing/DrawImage.cs +++ b/src/ImageSharp.Drawing/DrawImage.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The location to draw the blended image. /// The options. /// The . - public static Image DrawImage(this Image source, Image image, Size size, Point location, GraphicsOptions options) + public static IImageOperations DrawImage(this IImageOperations source, Image image, Size size, Point location, GraphicsOptions options) where TPixel : struct, IPixel { if (size == default(Size)) @@ -37,7 +37,7 @@ public static Image DrawImage(this Image source, Image(image, size, location, options), source.Bounds); + source.ApplyProcessor(new DrawImageProcessor(image, size, location, options)); return source; } @@ -49,7 +49,7 @@ public static Image DrawImage(this Image source, ImageThe image to blend with the currently processing image. /// The opacity of the image image to blend. Must be between 0 and 1. /// The . - public static Image Blend(this Image source, Image image, float percent) + public static IImageOperations Blend(this IImageOperations source, Image image, float percent) where TPixel : struct, IPixel { GraphicsOptions options = GraphicsOptions.Default; @@ -66,7 +66,7 @@ public static Image Blend(this Image source, ImageThe blending mode. /// The opacity of the image image to blend. Must be between 0 and 1. /// The . - public static Image Blend(this Image source, Image image, PixelBlenderMode blender, float percent) + public static IImageOperations Blend(this IImageOperations source, Image image, PixelBlenderMode blender, float percent) where TPixel : struct, IPixel { GraphicsOptions options = GraphicsOptions.Default; @@ -83,7 +83,7 @@ public static Image Blend(this Image source, ImageThe image to blend with the currently processing image. /// The options, including the blending type and belnding amount. /// The . - public static Image Blend(this Image source, Image image, GraphicsOptions options) + public static IImageOperations Blend(this IImageOperations source, Image image, GraphicsOptions options) where TPixel : struct, IPixel { return DrawImage(source, image, default(Size), default(Point), options); @@ -99,7 +99,7 @@ public static Image Blend(this Image source, ImageThe size to draw the blended image. /// The location to draw the blended image. /// The . - public static Image DrawImage(this Image source, Image image, float percent, Size size, Point location) + public static IImageOperations DrawImage(this IImageOperations source, Image image, float percent, Size size, Point location) where TPixel : struct, IPixel { GraphicsOptions options = GraphicsOptions.Default; @@ -118,7 +118,7 @@ public static Image DrawImage(this Image source, ImageThe size to draw the blended image. /// The location to draw the blended image. /// The . - public static Image DrawImage(this Image source, Image image, PixelBlenderMode blender, float percent, Size size, Point location) + public static IImageOperations DrawImage(this IImageOperations source, Image image, PixelBlenderMode blender, float percent, Size size, Point location) where TPixel : struct, IPixel { GraphicsOptions options = GraphicsOptions.Default; diff --git a/src/ImageSharp.Drawing/FillRegion.cs b/src/ImageSharp.Drawing/FillRegion.cs index b3ee2ed996..d8bb78e906 100644 --- a/src/ImageSharp.Drawing/FillRegion.cs +++ b/src/ImageSharp.Drawing/FillRegion.cs @@ -23,7 +23,7 @@ public static partial class ImageExtensions /// The details how to fill the region of interest. /// The graphics options. /// The . - public static Image Fill(this Image source, IBrush brush, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, GraphicsOptions options) where TPixel : struct, IPixel { return source.Apply(new FillProcessor(brush, options)); @@ -36,7 +36,7 @@ public static Image Fill(this Image source, IBrushThe image this method extends. /// The details how to fill the region of interest. /// The . - public static Image Fill(this Image source, IBrush brush) + public static IImageOperations Fill(this IImageOperations source, IBrush brush) where TPixel : struct, IPixel { return source.Fill(brush, GraphicsOptions.Default); @@ -49,7 +49,7 @@ public static Image Fill(this Image source, IBrushThe image this method extends. /// The color. /// The . - public static Image Fill(this Image source, TPixel color) + public static IImageOperations Fill(this IImageOperations source, TPixel color) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color)); @@ -64,7 +64,7 @@ public static Image Fill(this Image source, TPixel color /// The region. /// The graphics options. /// The . - public static Image Fill(this Image source, IBrush brush, Region region, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, Region region, GraphicsOptions options) where TPixel : struct, IPixel { return source.Apply(new FillRegionProcessor(brush, region, options)); @@ -78,7 +78,7 @@ public static Image Fill(this Image source, IBrushThe brush. /// The region. /// The . - public static Image Fill(this Image source, IBrush brush, Region region) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, Region region) where TPixel : struct, IPixel { return source.Fill(brush, region, GraphicsOptions.Default); @@ -93,7 +93,7 @@ public static Image Fill(this Image source, IBrushThe region. /// The options. /// The . - public static Image Fill(this Image source, TPixel color, Region region, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, TPixel color, Region region, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), region, options); @@ -107,7 +107,7 @@ public static Image Fill(this Image source, TPixel color /// The color. /// The region. /// The . - public static Image Fill(this Image source, TPixel color, Region region) + public static IImageOperations Fill(this IImageOperations source, TPixel color, Region region) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), region); diff --git a/src/ImageSharp.Drawing/Paths/DrawBeziers.cs b/src/ImageSharp.Drawing/Paths/DrawBeziers.cs index 59bcf40363..d332f1d05a 100644 --- a/src/ImageSharp.Drawing/Paths/DrawBeziers.cs +++ b/src/ImageSharp.Drawing/Paths/DrawBeziers.cs @@ -28,7 +28,7 @@ public static partial class ImageExtensions /// The points. /// The options. /// The . - public static Image DrawBeziers(this Image source, IBrush brush, float thickness, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawBeziers(this IImageOperations source, IBrush brush, float thickness, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), new Path(new CubicBezierLineSegment(points)), options); @@ -43,7 +43,7 @@ public static Image DrawBeziers(this Image source, IBrus /// The thickness. /// The points. /// The . - public static Image DrawBeziers(this Image source, IBrush brush, float thickness, PointF[] points) + public static IImageOperations DrawBeziers(this IImageOperations source, IBrush brush, float thickness, PointF[] points) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), new Path(new CubicBezierLineSegment(points))); @@ -58,7 +58,7 @@ public static Image DrawBeziers(this Image source, IBrus /// The thickness. /// The points. /// The . - public static Image DrawBeziers(this Image source, TPixel color, float thickness, PointF[] points) + public static IImageOperations DrawBeziers(this IImageOperations source, TPixel color, float thickness, PointF[] points) where TPixel : struct, IPixel { return source.DrawBeziers(new SolidBrush(color), thickness, points); @@ -74,7 +74,7 @@ public static Image DrawBeziers(this Image source, TPixe /// The points. /// The options. /// The . - public static Image DrawBeziers(this Image source, TPixel color, float thickness, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawBeziers(this IImageOperations source, TPixel color, float thickness, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.DrawBeziers(new SolidBrush(color), thickness, points, options); @@ -89,7 +89,7 @@ public static Image DrawBeziers(this Image source, TPixe /// The points. /// The options. /// The . - public static Image DrawBeziers(this Image source, IPen pen, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawBeziers(this IImageOperations source, IPen pen, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(pen, new Path(new CubicBezierLineSegment(points)), options); @@ -103,7 +103,7 @@ public static Image DrawBeziers(this Image source, IPen< /// The pen. /// The points. /// The . - public static Image DrawBeziers(this Image source, IPen pen, PointF[] points) + public static IImageOperations DrawBeziers(this IImageOperations source, IPen pen, PointF[] points) where TPixel : struct, IPixel { return source.Draw(pen, new Path(new CubicBezierLineSegment(points))); diff --git a/src/ImageSharp.Drawing/Paths/DrawLines.cs b/src/ImageSharp.Drawing/Paths/DrawLines.cs index 3ce0dc4da6..db1e46af8a 100644 --- a/src/ImageSharp.Drawing/Paths/DrawLines.cs +++ b/src/ImageSharp.Drawing/Paths/DrawLines.cs @@ -28,7 +28,7 @@ public static partial class ImageExtensions /// The points. /// The options. /// The . - public static Image DrawLines(this Image source, IBrush brush, float thickness, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawLines(this IImageOperations source, IBrush brush, float thickness, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), new Path(new LinearLineSegment(points)), options); @@ -43,7 +43,7 @@ public static Image DrawLines(this Image source, IBrush< /// The thickness. /// The points. /// The . - public static Image DrawLines(this Image source, IBrush brush, float thickness, PointF[] points) + public static IImageOperations DrawLines(this IImageOperations source, IBrush brush, float thickness, PointF[] points) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), new Path(new LinearLineSegment(points))); @@ -58,7 +58,7 @@ public static Image DrawLines(this Image source, IBrush< /// The thickness. /// The points. /// The . - public static Image DrawLines(this Image source, TPixel color, float thickness, PointF[] points) + public static IImageOperations DrawLines(this IImageOperations source, TPixel color, float thickness, PointF[] points) where TPixel : struct, IPixel { return source.DrawLines(new SolidBrush(color), thickness, points); @@ -74,7 +74,7 @@ public static Image DrawLines(this Image source, TPixel /// The points. /// The options. /// The .> - public static Image DrawLines(this Image source, TPixel color, float thickness, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawLines(this IImageOperations source, TPixel color, float thickness, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.DrawLines(new SolidBrush(color), thickness, points, options); @@ -89,7 +89,7 @@ public static Image DrawLines(this Image source, TPixel /// The points. /// The options. /// The . - public static Image DrawLines(this Image source, IPen pen, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawLines(this IImageOperations source, IPen pen, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(pen, new Path(new LinearLineSegment(points)), options); @@ -103,7 +103,7 @@ public static Image DrawLines(this Image source, IPenThe pen. /// The points. /// The . - public static Image DrawLines(this Image source, IPen pen, PointF[] points) + public static IImageOperations DrawLines(this IImageOperations source, IPen pen, PointF[] points) where TPixel : struct, IPixel { return source.Draw(pen, new Path(new LinearLineSegment(points))); diff --git a/src/ImageSharp.Drawing/Paths/DrawPath.cs b/src/ImageSharp.Drawing/Paths/DrawPath.cs index 1fba06370d..57ce2032a9 100644 --- a/src/ImageSharp.Drawing/Paths/DrawPath.cs +++ b/src/ImageSharp.Drawing/Paths/DrawPath.cs @@ -25,7 +25,7 @@ public static partial class ImageExtensions /// The path. /// The options. /// The . - public static Image Draw(this Image source, IPen pen, IPath path, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, IPen pen, IPath path, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(pen.StrokeFill, new ShapePath(path, pen), options); @@ -39,7 +39,7 @@ public static Image Draw(this Image source, IPen /// The pen. /// The path. /// The . - public static Image Draw(this Image source, IPen pen, IPath path) + public static IImageOperations Draw(this IImageOperations source, IPen pen, IPath path) where TPixel : struct, IPixel { return source.Draw(pen, path, GraphicsOptions.Default); @@ -55,7 +55,7 @@ public static Image Draw(this Image source, IPen /// The shape. /// The options. /// The . - public static Image Draw(this Image source, IBrush brush, float thickness, IPath path, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, IBrush brush, float thickness, IPath path, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), path, options); @@ -70,7 +70,7 @@ public static Image Draw(this Image source, IBrushThe thickness. /// The path. /// The . - public static Image Draw(this Image source, IBrush brush, float thickness, IPath path) + public static IImageOperations Draw(this IImageOperations source, IBrush brush, float thickness, IPath path) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), path); @@ -86,7 +86,7 @@ public static Image Draw(this Image source, IBrushThe path. /// The options. /// The . - public static Image Draw(this Image source, TPixel color, float thickness, IPath path, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, TPixel color, float thickness, IPath path, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new SolidBrush(color), thickness, path, options); @@ -101,7 +101,7 @@ public static Image Draw(this Image source, TPixel color /// The thickness. /// The path. /// The . - public static Image Draw(this Image source, TPixel color, float thickness, IPath path) + public static IImageOperations Draw(this IImageOperations source, TPixel color, float thickness, IPath path) where TPixel : struct, IPixel { return source.Draw(new SolidBrush(color), thickness, path); diff --git a/src/ImageSharp.Drawing/Paths/DrawPathCollection.cs b/src/ImageSharp.Drawing/Paths/DrawPathCollection.cs index 877737653d..f909e98da6 100644 --- a/src/ImageSharp.Drawing/Paths/DrawPathCollection.cs +++ b/src/ImageSharp.Drawing/Paths/DrawPathCollection.cs @@ -25,7 +25,7 @@ public static partial class ImageExtensions /// The paths. /// The options. /// The . - public static Image Draw(this Image source, IPen pen, IPathCollection paths, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, IPen pen, IPathCollection paths, GraphicsOptions options) where TPixel : struct, IPixel { foreach (IPath path in paths) @@ -44,7 +44,7 @@ public static Image Draw(this Image source, IPen /// The pen. /// The paths. /// The . - public static Image Draw(this Image source, IPen pen, IPathCollection paths) + public static IImageOperations Draw(this IImageOperations source, IPen pen, IPathCollection paths) where TPixel : struct, IPixel { return source.Draw(pen, paths, GraphicsOptions.Default); @@ -60,7 +60,7 @@ public static Image Draw(this Image source, IPen /// The shapes. /// The options. /// The . - public static Image Draw(this Image source, IBrush brush, float thickness, IPathCollection paths, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, IBrush brush, float thickness, IPathCollection paths, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), paths, options); @@ -75,7 +75,7 @@ public static Image Draw(this Image source, IBrushThe thickness. /// The paths. /// The . - public static Image Draw(this Image source, IBrush brush, float thickness, IPathCollection paths) + public static IImageOperations Draw(this IImageOperations source, IBrush brush, float thickness, IPathCollection paths) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), paths); @@ -91,7 +91,7 @@ public static Image Draw(this Image source, IBrushThe paths. /// The options. /// The . - public static Image Draw(this Image source, TPixel color, float thickness, IPathCollection paths, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, TPixel color, float thickness, IPathCollection paths, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new SolidBrush(color), thickness, paths, options); @@ -106,7 +106,7 @@ public static Image Draw(this Image source, TPixel color /// The thickness. /// The paths. /// The . - public static Image Draw(this Image source, TPixel color, float thickness, IPathCollection paths) + public static IImageOperations Draw(this IImageOperations source, TPixel color, float thickness, IPathCollection paths) where TPixel : struct, IPixel { return source.Draw(new SolidBrush(color), thickness, paths); diff --git a/src/ImageSharp.Drawing/Paths/DrawPolygon.cs b/src/ImageSharp.Drawing/Paths/DrawPolygon.cs index 4fa469a496..b787afcd58 100644 --- a/src/ImageSharp.Drawing/Paths/DrawPolygon.cs +++ b/src/ImageSharp.Drawing/Paths/DrawPolygon.cs @@ -28,7 +28,7 @@ public static partial class ImageExtensions /// The points. /// The options. /// The . - public static Image DrawPolygon(this Image source, IBrush brush, float thickness, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawPolygon(this IImageOperations source, IBrush brush, float thickness, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), new Polygon(new LinearLineSegment(points)), options); @@ -43,7 +43,7 @@ public static Image DrawPolygon(this Image source, IBrus /// The thickness. /// The points. /// The . - public static Image DrawPolygon(this Image source, IBrush brush, float thickness, PointF[] points) + public static IImageOperations DrawPolygon(this IImageOperations source, IBrush brush, float thickness, PointF[] points) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), new Polygon(new LinearLineSegment(points))); @@ -58,7 +58,7 @@ public static Image DrawPolygon(this Image source, IBrus /// The thickness. /// The points. /// The . - public static Image DrawPolygon(this Image source, TPixel color, float thickness, PointF[] points) + public static IImageOperations DrawPolygon(this IImageOperations source, TPixel color, float thickness, PointF[] points) where TPixel : struct, IPixel { return source.DrawPolygon(new SolidBrush(color), thickness, points); @@ -74,7 +74,7 @@ public static Image DrawPolygon(this Image source, TPixe /// The points. /// The options. /// The . - public static Image DrawPolygon(this Image source, TPixel color, float thickness, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawPolygon(this IImageOperations source, TPixel color, float thickness, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.DrawPolygon(new SolidBrush(color), thickness, points, options); @@ -88,7 +88,7 @@ public static Image DrawPolygon(this Image source, TPixe /// The pen. /// The points. /// The . - public static Image DrawPolygon(this Image source, IPen pen, PointF[] points) + public static IImageOperations DrawPolygon(this IImageOperations source, IPen pen, PointF[] points) where TPixel : struct, IPixel { return source.Draw(pen, new Polygon(new LinearLineSegment(points)), GraphicsOptions.Default); @@ -103,7 +103,7 @@ public static Image DrawPolygon(this Image source, IPen< /// The points. /// The options. /// The . - public static Image DrawPolygon(this Image source, IPen pen, PointF[] points, GraphicsOptions options) + public static IImageOperations DrawPolygon(this IImageOperations source, IPen pen, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(pen, new Polygon(new LinearLineSegment(points)), options); diff --git a/src/ImageSharp.Drawing/Paths/DrawRectangle.cs b/src/ImageSharp.Drawing/Paths/DrawRectangle.cs index b3f0e6fc3b..544ca2fe96 100644 --- a/src/ImageSharp.Drawing/Paths/DrawRectangle.cs +++ b/src/ImageSharp.Drawing/Paths/DrawRectangle.cs @@ -25,7 +25,7 @@ public static partial class ImageExtensions /// The shape. /// The options. /// The . - public static Image Draw(this Image source, IPen pen, RectangleF shape, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, IPen pen, RectangleF shape, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(pen, new SixLabors.Shapes.RectangularePolygon(shape.X, shape.Y, shape.Width, shape.Height), options); @@ -39,7 +39,7 @@ public static Image Draw(this Image source, IPen /// The pen. /// The shape. /// The . - public static Image Draw(this Image source, IPen pen, RectangleF shape) + public static IImageOperations Draw(this IImageOperations source, IPen pen, RectangleF shape) where TPixel : struct, IPixel { return source.Draw(pen, shape, GraphicsOptions.Default); @@ -55,7 +55,7 @@ public static Image Draw(this Image source, IPen /// The shape. /// The options. /// The . - public static Image Draw(this Image source, IBrush brush, float thickness, RectangleF shape, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, IBrush brush, float thickness, RectangleF shape, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), shape, options); @@ -70,7 +70,7 @@ public static Image Draw(this Image source, IBrushThe thickness. /// The shape. /// The . - public static Image Draw(this Image source, IBrush brush, float thickness, RectangleF shape) + public static IImageOperations Draw(this IImageOperations source, IBrush brush, float thickness, RectangleF shape) where TPixel : struct, IPixel { return source.Draw(new Pen(brush, thickness), shape); @@ -86,7 +86,7 @@ public static Image Draw(this Image source, IBrushThe shape. /// The options. /// The . - public static Image Draw(this Image source, TPixel color, float thickness, RectangleF shape, GraphicsOptions options) + public static IImageOperations Draw(this IImageOperations source, TPixel color, float thickness, RectangleF shape, GraphicsOptions options) where TPixel : struct, IPixel { return source.Draw(new SolidBrush(color), thickness, shape, options); @@ -101,7 +101,7 @@ public static Image Draw(this Image source, TPixel color /// The thickness. /// The shape. /// The . - public static Image Draw(this Image source, TPixel color, float thickness, RectangleF shape) + public static IImageOperations Draw(this IImageOperations source, TPixel color, float thickness, RectangleF shape) where TPixel : struct, IPixel { return source.Draw(new SolidBrush(color), thickness, shape); diff --git a/src/ImageSharp.Drawing/Paths/FillPathBuilder.cs b/src/ImageSharp.Drawing/Paths/FillPathBuilder.cs index abb5ef73a7..eae34f0342 100644 --- a/src/ImageSharp.Drawing/Paths/FillPathBuilder.cs +++ b/src/ImageSharp.Drawing/Paths/FillPathBuilder.cs @@ -25,7 +25,7 @@ public static partial class ImageExtensions /// The shape. /// The graphics options. /// The . - public static Image Fill(this Image source, IBrush brush, Action path, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, Action path, GraphicsOptions options) where TPixel : struct, IPixel { var pb = new PathBuilder(); @@ -42,7 +42,7 @@ public static Image Fill(this Image source, IBrushThe brush. /// The path. /// The . - public static Image Fill(this Image source, IBrush brush, Action path) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, Action path) where TPixel : struct, IPixel { return source.Fill(brush, path, GraphicsOptions.Default); @@ -57,7 +57,7 @@ public static Image Fill(this Image source, IBrushThe path. /// The options. /// The . - public static Image Fill(this Image source, TPixel color, Action path, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, TPixel color, Action path, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), path, options); @@ -71,7 +71,7 @@ public static Image Fill(this Image source, TPixel color /// The color. /// The path. /// The . - public static Image Fill(this Image source, TPixel color, Action path) + public static IImageOperations Fill(this IImageOperations source, TPixel color, Action path) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), path); diff --git a/src/ImageSharp.Drawing/Paths/FillPathCollection.cs b/src/ImageSharp.Drawing/Paths/FillPathCollection.cs index 3ea9fb94b8..662245dc30 100644 --- a/src/ImageSharp.Drawing/Paths/FillPathCollection.cs +++ b/src/ImageSharp.Drawing/Paths/FillPathCollection.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The shapes. /// The graphics options. /// The . - public static Image Fill(this Image source, IBrush brush, IPathCollection paths, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, IPathCollection paths, GraphicsOptions options) where TPixel : struct, IPixel { foreach (IPath s in paths) @@ -43,7 +43,7 @@ public static Image Fill(this Image source, IBrushThe brush. /// The paths. /// The . - public static Image Fill(this Image source, IBrush brush, IPathCollection paths) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, IPathCollection paths) where TPixel : struct, IPixel { return source.Fill(brush, paths, GraphicsOptions.Default); @@ -58,7 +58,7 @@ public static Image Fill(this Image source, IBrushThe paths. /// The options. /// The . - public static Image Fill(this Image source, TPixel color, IPathCollection paths, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, TPixel color, IPathCollection paths, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), paths, options); @@ -72,7 +72,7 @@ public static Image Fill(this Image source, TPixel color /// The color. /// The paths. /// The . - public static Image Fill(this Image source, TPixel color, IPathCollection paths) + public static IImageOperations Fill(this IImageOperations source, TPixel color, IPathCollection paths) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), paths); diff --git a/src/ImageSharp.Drawing/Paths/FillPaths.cs b/src/ImageSharp.Drawing/Paths/FillPaths.cs index f579c4ad02..07342d47b9 100644 --- a/src/ImageSharp.Drawing/Paths/FillPaths.cs +++ b/src/ImageSharp.Drawing/Paths/FillPaths.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The shape. /// The graphics options. /// The . - public static Image Fill(this Image source, IBrush brush, IPath path, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, IPath path, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(brush, new ShapeRegion(path), options); @@ -38,7 +38,7 @@ public static Image Fill(this Image source, IBrushThe brush. /// The path. /// The . - public static Image Fill(this Image source, IBrush brush, IPath path) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, IPath path) where TPixel : struct, IPixel { return source.Fill(brush, new ShapeRegion(path), GraphicsOptions.Default); @@ -53,7 +53,7 @@ public static Image Fill(this Image source, IBrushThe path. /// The options. /// The . - public static Image Fill(this Image source, TPixel color, IPath path, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, TPixel color, IPath path, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), path, options); @@ -67,7 +67,7 @@ public static Image Fill(this Image source, TPixel color /// The color. /// The path. /// The . - public static Image Fill(this Image source, TPixel color, IPath path) + public static IImageOperations Fill(this IImageOperations source, TPixel color, IPath path) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), path); diff --git a/src/ImageSharp.Drawing/Paths/FillPolygon.cs b/src/ImageSharp.Drawing/Paths/FillPolygon.cs index 6266d3bd64..7feac5b0a4 100644 --- a/src/ImageSharp.Drawing/Paths/FillPolygon.cs +++ b/src/ImageSharp.Drawing/Paths/FillPolygon.cs @@ -27,7 +27,7 @@ public static partial class ImageExtensions /// The points. /// The options. /// The . - public static Image FillPolygon(this Image source, IBrush brush, PointF[] points, GraphicsOptions options) + public static IImageOperations FillPolygon(this IImageOperations source, IBrush brush, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(brush, new Polygon(new LinearLineSegment(points)), options); @@ -41,7 +41,7 @@ public static Image FillPolygon(this Image source, IBrus /// The brush. /// The points. /// The . - public static Image FillPolygon(this Image source, IBrush brush, PointF[] points) + public static IImageOperations FillPolygon(this IImageOperations source, IBrush brush, PointF[] points) where TPixel : struct, IPixel { return source.Fill(brush, new Polygon(new LinearLineSegment(points))); @@ -56,7 +56,7 @@ public static Image FillPolygon(this Image source, IBrus /// The points. /// The options. /// The . - public static Image FillPolygon(this Image source, TPixel color, PointF[] points, GraphicsOptions options) + public static IImageOperations FillPolygon(this IImageOperations source, TPixel color, PointF[] points, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), new Polygon(new LinearLineSegment(points)), options); @@ -70,7 +70,7 @@ public static Image FillPolygon(this Image source, TPixe /// The color. /// The points. /// The . - public static Image FillPolygon(this Image source, TPixel color, PointF[] points) + public static IImageOperations FillPolygon(this IImageOperations source, TPixel color, PointF[] points) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), new Polygon(new LinearLineSegment(points))); diff --git a/src/ImageSharp.Drawing/Paths/FillRectangle.cs b/src/ImageSharp.Drawing/Paths/FillRectangle.cs index bd6460cf90..52512ca1cb 100644 --- a/src/ImageSharp.Drawing/Paths/FillRectangle.cs +++ b/src/ImageSharp.Drawing/Paths/FillRectangle.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The shape. /// The options. /// The . - public static Image Fill(this Image source, IBrush brush, RectangleF shape, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, RectangleF shape, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(brush, new SixLabors.Shapes.RectangularePolygon(shape.X, shape.Y, shape.Width, shape.Height), options); @@ -38,7 +38,7 @@ public static Image Fill(this Image source, IBrushThe brush. /// The shape. /// The . - public static Image Fill(this Image source, IBrush brush, RectangleF shape) + public static IImageOperations Fill(this IImageOperations source, IBrush brush, RectangleF shape) where TPixel : struct, IPixel { return source.Fill(brush, new SixLabors.Shapes.RectangularePolygon(shape.X, shape.Y, shape.Width, shape.Height)); @@ -53,7 +53,7 @@ public static Image Fill(this Image source, IBrushThe shape. /// The options. /// The . - public static Image Fill(this Image source, TPixel color, RectangleF shape, GraphicsOptions options) + public static IImageOperations Fill(this IImageOperations source, TPixel color, RectangleF shape, GraphicsOptions options) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), shape, options); @@ -67,7 +67,7 @@ public static Image Fill(this Image source, TPixel color /// The color. /// The shape. /// The . - public static Image Fill(this Image source, TPixel color, RectangleF shape) + public static IImageOperations Fill(this IImageOperations source, TPixel color, RectangleF shape) where TPixel : struct, IPixel { return source.Fill(new SolidBrush(color), shape); diff --git a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs index 62344b1012..07a3ae8c29 100644 --- a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs @@ -70,7 +70,7 @@ protected override void OnApply(ImageBase source, Rectangle sourceRectan { if (targetImage.Bounds.Size != this.Size) { - targetImage = disposableImage = new Image(this.Image).Resize(this.Size.Width, this.Size.Height); + targetImage = disposableImage = this.Image.Generate(x => x.Resize(this.Size.Width, this.Size.Height)); } // Align start/end positions. diff --git a/src/ImageSharp.Drawing/Text/DrawText.Path.cs b/src/ImageSharp.Drawing/Text/DrawText.Path.cs index 523813188a..459d5de0d8 100644 --- a/src/ImageSharp.Drawing/Text/DrawText.Path.cs +++ b/src/ImageSharp.Drawing/Text/DrawText.Path.cs @@ -31,7 +31,7 @@ public static partial class ImageExtensions /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, TPixel color, IPath path) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, TPixel color, IPath path) where TPixel : struct, IPixel { return source.DrawText(text, font, color, path, TextGraphicsOptions.Default); @@ -50,7 +50,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, TPixel color, IPath path, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, TPixel color, IPath path, TextGraphicsOptions options) where TPixel : struct, IPixel { return source.DrawText(text, font, Brushes.Solid(color), null, path, options); @@ -68,7 +68,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, IPath path) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, IPath path) where TPixel : struct, IPixel { return source.DrawText(text, font, brush, path, TextGraphicsOptions.Default); @@ -87,7 +87,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, IPath path, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, IPath path, TextGraphicsOptions options) where TPixel : struct, IPixel { return source.DrawText(text, font, brush, null, path, options); @@ -105,7 +105,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IPen pen, IPath path) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IPen pen, IPath path) where TPixel : struct, IPixel { return source.DrawText(text, font, pen, path, TextGraphicsOptions.Default); @@ -124,7 +124,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IPen pen, IPath path, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IPen pen, IPath path, TextGraphicsOptions options) where TPixel : struct, IPixel { return source.DrawText(text, font, null, pen, path, options); @@ -143,7 +143,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, IPen pen, IPath path) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, IPen pen, IPath path) where TPixel : struct, IPixel { return source.DrawText(text, font, brush, pen, path, TextGraphicsOptions.Default); @@ -163,16 +163,11 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, IPen pen, IPath path, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, IPen pen, IPath path, TextGraphicsOptions options) where TPixel : struct, IPixel { float dpiX = DefaultTextDpi; float dpiY = DefaultTextDpi; - if (options.UseImageResolution) - { - dpiX = (float)source.MetaData.HorizontalResolution; - dpiY = (float)source.MetaData.VerticalResolution; - } var style = new RendererOptions(font, dpiX, dpiY) { diff --git a/src/ImageSharp.Drawing/Text/DrawText.cs b/src/ImageSharp.Drawing/Text/DrawText.cs index 6352836a9c..989322a739 100644 --- a/src/ImageSharp.Drawing/Text/DrawText.cs +++ b/src/ImageSharp.Drawing/Text/DrawText.cs @@ -34,7 +34,7 @@ public static partial class ImageExtensions /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, TPixel color, PointF location) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, TPixel color, PointF location) where TPixel : struct, IPixel { return source.DrawText(text, font, color, location, TextGraphicsOptions.Default); @@ -53,7 +53,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, TPixel color, PointF location, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, TPixel color, PointF location, TextGraphicsOptions options) where TPixel : struct, IPixel { return source.DrawText(text, font, Brushes.Solid(color), null, location, options); @@ -71,7 +71,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, PointF location) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, PointF location) where TPixel : struct, IPixel { return source.DrawText(text, font, brush, location, TextGraphicsOptions.Default); @@ -90,7 +90,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, PointF location, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, PointF location, TextGraphicsOptions options) where TPixel : struct, IPixel { return source.DrawText(text, font, brush, null, location, options); @@ -108,7 +108,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IPen pen, PointF location) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IPen pen, PointF location) where TPixel : struct, IPixel { return source.DrawText(text, font, pen, location, TextGraphicsOptions.Default); @@ -127,7 +127,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IPen pen, PointF location, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IPen pen, PointF location, TextGraphicsOptions options) where TPixel : struct, IPixel { return source.DrawText(text, font, null, pen, location, options); @@ -146,7 +146,7 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, IPen pen, PointF location) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, IPen pen, PointF location) where TPixel : struct, IPixel { return source.DrawText(text, font, brush, pen, location, TextGraphicsOptions.Default); @@ -166,16 +166,11 @@ public static Image DrawText(this Image source, string t /// /// The . /// - public static Image DrawText(this Image source, string text, Font font, IBrush brush, IPen pen, PointF location, TextGraphicsOptions options) + public static IImageOperations DrawText(this IImageOperations source, string text, Font font, IBrush brush, IPen pen, PointF location, TextGraphicsOptions options) where TPixel : struct, IPixel { float dpiX = DefaultTextDpi; float dpiY = DefaultTextDpi; - if (options.UseImageResolution) - { - dpiX = (float)source.MetaData.HorizontalResolution; - dpiY = (float)source.MetaData.VerticalResolution; - } var style = new RendererOptions(font, dpiX, dpiY, location) { diff --git a/src/ImageSharp.Drawing/Text/TextGraphicsOptions.cs b/src/ImageSharp.Drawing/Text/TextGraphicsOptions.cs index 593ac36d4f..e360e8aeed 100644 --- a/src/ImageSharp.Drawing/Text/TextGraphicsOptions.cs +++ b/src/ImageSharp.Drawing/Text/TextGraphicsOptions.cs @@ -29,8 +29,6 @@ public struct TextGraphicsOptions private PixelBlenderMode blenderMode; - private bool? useImageResolution; - private float wrapTextWidth; private SixLabors.Fonts.HorizontalAlignment? horizontalAlignment; @@ -44,7 +42,6 @@ public TextGraphicsOptions(bool enableAntialiasing) { this.applyKerning = true; this.tabWidth = 4; - this.useImageResolution = false; this.wrapTextWidth = 0; this.horizontalAlignment = HorizontalAlignment.Left; this.verticalAlignment = VerticalAlignment.Top; @@ -89,12 +86,6 @@ public TextGraphicsOptions(bool enableAntialiasing) /// public float TabWidth { get => this.tabWidth ?? 4; set => this.tabWidth = value; } - /// - /// Gets or sets a value indicating whether to use the current image resultion to for point size scaling. - /// If this is [false] the text renders at 72dpi otherwise it renders at Image resolution - /// - public bool UseImageResolution { get => this.useImageResolution ?? false; set => this.useImageResolution = value; } - /// /// Gets or sets a value indicating if greater than zero determine the width at which text should wrap. /// diff --git a/src/ImageSharp/ApplyProcessors.cs b/src/ImageSharp/ApplyProcessors.cs new file mode 100644 index 0000000000..2a9c3ccbef --- /dev/null +++ b/src/ImageSharp/ApplyProcessors.cs @@ -0,0 +1,100 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + + using ImageSharp.PixelFormats; + + using ImageSharp.Processing; + + /// + /// Extension methods for the type. + /// + public static partial class ImageExtensions + { + /// + /// Mutates the image by applying the operations to it. + /// + /// The pixel format. + /// The image to rotate, flip, or both. + /// The operations to perform on the source. + public static void Mutate(this Image source, Action> operations) + where TPixel : struct, IPixel + { + Guard.NotNull(operations, nameof(operations)); + + // TODO: add parameter to Configuration to configure how this is created, create an IImageOperationsFactory that cna be used to switch this out with a fake for testing + var operationsRunner = new ImageOperations(source); + operations(operationsRunner); + } + + /// + /// Mutates the image by applying the operations to it. + /// + /// The pixel format. + /// The image to rotate, flip, or both. + /// The operations to perform on the source. + public static void Mutate(this Image source, params IImageProcessor[] operations) + where TPixel : struct, IPixel + { + Guard.NotNull(operations, nameof(operations)); + + // TODO: add parameter to Configuration to configure how this is created, create an IImageOperationsFactory that cna be used to switch this out with a fake for testing + var operationsRunner = new ImageOperations(source); + operationsRunner.ApplyProcessors(operations); + } + + /// + /// Mutates the image by applying the operations to it. + /// + /// The pixel format. + /// The image to rotate, flip, or both. + /// The operations to perform on the source. + /// Anew Image which has teh data from the but with the applied. + public static Image Generate(this Image source, Action> operations) + where TPixel : struct, IPixel + { + Guard.NotNull(operations, nameof(operations)); + var generated = new Image(source); + + // TODO: add parameter to Configuration to configure how this is created, create an IImageOperationsFactory that cna be used to switch this out with a fake for testing + var operationsRunner = new ImageOperations(generated); + operations(operationsRunner); + return generated; + } + + /// + /// Mutates the image by applying the operations to it. + /// + /// The pixel format. + /// The image to rotate, flip, or both. + /// The operations to perform on the source. + /// Anew Image which has teh data from the but with the applied. + public static Image Generate(this Image source, params IImageProcessor[] operations) + where TPixel : struct, IPixel + { + Guard.NotNull(operations, nameof(operations)); + var generated = new Image(source); + + // TODO: add parameter to Configuration to configure how this is created, create an IImageOperationsFactory that cna be used to switch this out with a fake for testing + var operationsRunner = new ImageOperations(generated); + operationsRunner.ApplyProcessors(operations); + return generated; + } + + /// + /// Mutates the image by applying the operations to it. + /// + /// The pixel format. + /// The image to rotate, flip, or both. + /// The operations to perform on the source. + /// returns the current optinoatins class to allow chaining of oprations. + public static IImageOperations Run(this IImageOperations source, Action> operation) + where TPixel : struct, IPixel + => source.ApplyProcessor(new DelegateImageProcessor(operation)); + } +} diff --git a/src/ImageSharp/Formats/Bmp/ImageExtensions.cs b/src/ImageSharp/Formats/Bmp/ImageExtensions.cs index aba24f9997..96d0ceb9f2 100644 --- a/src/ImageSharp/Formats/Bmp/ImageExtensions.cs +++ b/src/ImageSharp/Formats/Bmp/ImageExtensions.cs @@ -24,11 +24,20 @@ public static partial class ImageExtensions /// The image this method extends. /// The stream to save the image to. /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsBmp(this Image source, Stream stream) + public static void SaveAsBmp(this Image source, Stream stream) where TPixel : struct, IPixel - => source.Save(stream, new BmpEncoder()); + => source.SaveAsBmp(stream, null); + + /// + /// Saves the image to the given stream with the bmp format. + /// + /// The pixel format. + /// The image this method extends. + /// The stream to save the image to. + /// The encoder to save the image with. + /// Thrown if the stream is null. + public static void SaveAsBmp(this Image source, Stream stream, BmpEncoder encoder) + where TPixel : struct, IPixel + => source.Save(stream, encoder ?? source.Configuration.FindEncoder(ImageFormats.Bitmap)); } } diff --git a/src/ImageSharp/Formats/Gif/ImageExtensions.cs b/src/ImageSharp/Formats/Gif/ImageExtensions.cs index ea9c9b5047..717df44238 100644 --- a/src/ImageSharp/Formats/Gif/ImageExtensions.cs +++ b/src/ImageSharp/Formats/Gif/ImageExtensions.cs @@ -24,14 +24,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The stream to save the image to. /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsGif(this Image source, Stream stream) + public static void SaveAsGif(this Image source, Stream stream) where TPixel : struct, IPixel - { - return SaveAsGif(source, stream, null); - } + => source.SaveAsGif(stream, null); /// /// Saves the image to the given stream with the gif format. @@ -41,16 +36,8 @@ public static Image SaveAsGif(this Image source, Stream /// The stream to save the image to. /// The options for the encoder. /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsGif(this Image source, Stream stream, GifEncoder encoder) + public static void SaveAsGif(this Image source, Stream stream, GifEncoder encoder) where TPixel : struct, IPixel - { - encoder = encoder ?? new GifEncoder(); - encoder.Encode(source, stream); - - return source; - } + => source.Save(stream, encoder ?? source.Configuration.FindEncoder(ImageFormats.Gif)); } } diff --git a/src/ImageSharp/Formats/Jpeg/ImageExtensions.cs b/src/ImageSharp/Formats/Jpeg/ImageExtensions.cs index 8fbf9e5a74..c69007e664 100644 --- a/src/ImageSharp/Formats/Jpeg/ImageExtensions.cs +++ b/src/ImageSharp/Formats/Jpeg/ImageExtensions.cs @@ -24,14 +24,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The stream to save the image to. /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsJpeg(this Image source, Stream stream) + public static void SaveAsJpeg(this Image source, Stream stream) where TPixel : struct, IPixel - { - return SaveAsJpeg(source, stream, null); - } + => SaveAsJpeg(source, stream, null); /// /// Saves the image to the given stream with the jpeg format. @@ -41,16 +36,8 @@ public static Image SaveAsJpeg(this Image source, Stream /// The stream to save the image to. /// The options for the encoder. /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsJpeg(this Image source, Stream stream, JpegEncoder encoder) + public static void SaveAsJpeg(this Image source, Stream stream, JpegEncoder encoder) where TPixel : struct, IPixel - { - encoder = encoder ?? new JpegEncoder(); - encoder.Encode(source, stream); - - return source; - } + => source.Save(stream, encoder ?? source.Configuration.FindEncoder(ImageFormats.Jpeg)); } } diff --git a/src/ImageSharp/Formats/Png/ImageExtensions.cs b/src/ImageSharp/Formats/Png/ImageExtensions.cs index c817385760..697380c19f 100644 --- a/src/ImageSharp/Formats/Png/ImageExtensions.cs +++ b/src/ImageSharp/Formats/Png/ImageExtensions.cs @@ -23,14 +23,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The stream to save the image to. /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsPng(this Image source, Stream stream) + public static void SaveAsPng(this Image source, Stream stream) where TPixel : struct, IPixel - { - return SaveAsPng(source, stream, null); - } + => SaveAsPng(source, stream, null); /// /// Saves the image to the given stream with the png format. @@ -40,16 +35,8 @@ public static Image SaveAsPng(this Image source, Stream /// The stream to save the image to. /// The options for the encoder. /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsPng(this Image source, Stream stream, PngEncoder encoder) + public static void SaveAsPng(this Image source, Stream stream, PngEncoder encoder) where TPixel : struct, IPixel - { - encoder = encoder ?? new PngEncoder(); - encoder.Encode(source, stream); - - return source; - } + => source.Save(stream, encoder ?? source.Configuration.FindEncoder(ImageFormats.Png)); } } diff --git a/src/ImageSharp/IImageOperations{TPixel}.cs b/src/ImageSharp/IImageOperations{TPixel}.cs new file mode 100644 index 0000000000..a176c0e28a --- /dev/null +++ b/src/ImageSharp/IImageOperations{TPixel}.cs @@ -0,0 +1,36 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using ImageSharp.Formats; + using ImageSharp.PixelFormats; + using ImageSharp.Processing; + using SixLabors.Primitives; + + /// + /// The static collection of all the default image formats + /// + /// The pixel format + public interface IImageOperations + where TPixel : struct, IPixel + { + /// + /// Adds the processor to the current setr of image operations to be applied. + /// + /// The processor to apply + /// The area to apply it to + /// returns the current optinoatins class to allow chaining of oprations. + IImageOperations ApplyProcessor(IImageProcessor processor, Rectangle rectangle); + + /// + /// Adds the processor to the current setr of image operations to be applied. + /// + /// The processor to apply + /// returns the current optinoatins class to allow chaining of oprations. + IImageOperations ApplyProcessor(IImageProcessor processor); + } +} \ No newline at end of file diff --git a/src/ImageSharp/Image/IImageProcessor.cs b/src/ImageSharp/Image/IImageProcessor.cs index 8687766d5e..1e144e835c 100644 --- a/src/ImageSharp/Image/IImageProcessor.cs +++ b/src/ImageSharp/Image/IImageProcessor.cs @@ -42,6 +42,6 @@ public interface IImageProcessor /// /// doesnt fit the dimension of the image. /// - void Apply(ImageBase source, Rectangle sourceRectangle); + void Apply(Image source, Rectangle sourceRectangle); } } diff --git a/src/ImageSharp/Image/ImageBase{TPixel}.cs b/src/ImageSharp/Image/ImageBase{TPixel}.cs index 20b891f2dd..d4a7af9ca4 100644 --- a/src/ImageSharp/Image/ImageBase{TPixel}.cs +++ b/src/ImageSharp/Image/ImageBase{TPixel}.cs @@ -194,16 +194,6 @@ public Span GetRowSpan(int x, int y) return this.Pixels.Slice((y * this.Width) + x, this.Width - x); } - /// - /// Applies the processor. - /// - /// The processor. - /// The rectangle. - public virtual void ApplyProcessor(IImageProcessor processor, Rectangle rectangle) - { - processor.Apply(this, rectangle); - } - /// public void Dispose() { diff --git a/src/ImageSharp/Image/ImageProcessingExtensions.cs b/src/ImageSharp/Image/ImageProcessingExtensions.cs index 8eed103d10..44fcba7cfe 100644 --- a/src/ImageSharp/Image/ImageProcessingExtensions.cs +++ b/src/ImageSharp/Image/ImageProcessingExtensions.cs @@ -22,10 +22,10 @@ public static partial class ImageExtensions /// The image this method extends. /// The processor to apply to the image. /// The . - public static Image Apply(this Image source, IImageProcessor processor) + public static IImageOperations Apply(this IImageOperations source, IImageProcessor processor) where TPixel : struct, IPixel { - source.ApplyProcessor(processor, source.Bounds); + source.ApplyProcessor(processor); return source; } } diff --git a/src/ImageSharp/Image/Image{TPixel}.cs b/src/ImageSharp/Image/Image{TPixel}.cs index 5e8bcab31b..13b8655211 100644 --- a/src/ImageSharp/Image/Image{TPixel}.cs +++ b/src/ImageSharp/Image/Image{TPixel}.cs @@ -138,14 +138,10 @@ internal Image(Configuration configuration, int width, int height, ImageMetaData /// /// The processor to apply to the image. /// The structure that specifies the portion of the image object to draw. - public override void ApplyProcessor(IImageProcessor processor, Rectangle rectangle) + public virtual void ApplyProcessor(IImageProcessor processor, Rectangle rectangle) { // we want to put this on on here as it gives us a really go place to test/verify processor settings - base.ApplyProcessor(processor, rectangle); - foreach (ImageFrame sourceFrame in this.Frames) - { - sourceFrame.ApplyProcessor(processor, rectangle); - } + processor.Apply(this, rectangle); } /// diff --git a/src/ImageSharp/ImageOperations.cs b/src/ImageSharp/ImageOperations.cs new file mode 100644 index 0000000000..dde3153d16 --- /dev/null +++ b/src/ImageSharp/ImageOperations.cs @@ -0,0 +1,62 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System.Collections.Generic; + using ImageSharp.PixelFormats; + using ImageSharp.Processing; + using SixLabors.Primitives; + + /// + /// The static collection of all the default image formats + /// + /// The pixel format + internal class ImageOperations : IImageOperations + where TPixel : struct, IPixel + { + private readonly Image image; + + /// + /// Initializes a new instance of the class. + /// + /// The image. + public ImageOperations(Image image) + { + this.image = image; + } + + /// + public IImageOperations ApplyProcessor(IImageProcessor processor, Rectangle rectangle) + { + // TODO : make this queue, and allow special processors managage the cloing operation for 'generate' + // to allow things like resize to not need to retain an extra copy of image data in memory, and to + // prevent an pixel copy operation + this.image.ApplyProcessor(processor, rectangle); + return this; + } + + /// + public IImageOperations ApplyProcessor(IImageProcessor processor) + { + return this.ApplyProcessor(processor, this.image.Bounds); + } + + /// + /// Applies a bluck colelctino of pressorce at once + /// + /// Processors to apply + /// this + public IImageOperations ApplyProcessors(IEnumerable> processors) + { + foreach (var processor in processors) + { + return this.ApplyProcessor(processor); + } + + return this; + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Numerics/ValueSize.cs b/src/ImageSharp/Numerics/ValueSize.cs new file mode 100644 index 0000000000..5d81e2f952 --- /dev/null +++ b/src/ImageSharp/Numerics/ValueSize.cs @@ -0,0 +1,124 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using SixLabors.Primitives; + + /// + /// Represents a value in relation to a value on the image + /// + internal struct ValueSize + { + /// + /// Initializes a new instance of the struct. + /// + /// The value. + /// The type. + public ValueSize(float value, ValueSizeType type) + { + if (type != ValueSizeType.Absolute) + { + Guard.MustBeBetweenOrEqualTo(value, 0, 1, nameof(value)); + } + + this.Value = value; + this.Type = type; + } + + /// + /// The different vlaue types + /// + public enum ValueSizeType + { + /// + /// The value is the final return value + /// + Absolute, + + /// + /// The value is a percentage of the Images Width + /// + PercentageOfWidth, + + /// + /// The value is a percentage of the Images height + /// + PercentageOfHeight + } + + /// + /// Gets the value. + /// + public float Value { get; } + + /// + /// Gets the type. + /// + public ValueSizeType Type { get; } + + /// + /// Implicitly converts a float into an absolute value + /// + /// the vlaue to use as the absolute figure. + public static implicit operator ValueSize(float d) + => Absolute(d); + + /// + /// Create a new ValueSize with as a PercentageOfWidth type with value set to percentage. + /// + /// The percentage. + /// a Values size with type PercentageOfWidth + public static ValueSize PercentageOfWidth(float percentage) + { + return new ValueSize(percentage, ValueSizeType.PercentageOfWidth); + } + + /// + /// Create a new ValueSize with as a PercentageOfHeight type with value set to percentage. + /// + /// The percentage. + /// a Values size with type PercentageOfHeight + public static ValueSize PercentageOfHeight(float percentage) + { + return new ValueSize(percentage, ValueSizeType.PercentageOfHeight); + } + + /// + /// Create a new ValueSize with as a Absolute type with value set to value. + /// + /// The value. + /// a Values size with type Absolute( + public static ValueSize Absolute(float value) + { + return new ValueSize(value, ValueSizeType.Absolute); + } + + /// + /// Calculates the specified size. + /// + /// The size. + /// The calucalted value + public float Calculate(Size size) + { + switch (this.Type) + { + case ValueSizeType.PercentageOfWidth: + return this.Value * size.Width; + case ValueSizeType.PercentageOfHeight: + return this.Value * size.Height; + case ValueSizeType.Absolute: + default: + return this.Value; + } + } + + /// + public override string ToString() + { + return $"{this.Value} - {this.Type}"; + } + } +} diff --git a/src/ImageSharp/Processing/Binarization/BinaryThreshold.cs b/src/ImageSharp/Processing/Binarization/BinaryThreshold.cs index e37f80c25a..a4ee73af48 100644 --- a/src/ImageSharp/Processing/Binarization/BinaryThreshold.cs +++ b/src/ImageSharp/Processing/Binarization/BinaryThreshold.cs @@ -24,10 +24,11 @@ public static partial class ImageExtensions /// The image this method extends. /// The threshold to apply binarization of the image. Must be between 0 and 1. /// The . - public static Image BinaryThreshold(this Image source, float threshold) + public static IImageOperations BinaryThreshold(this IImageOperations source, float threshold) where TPixel : struct, IPixel { - return BinaryThreshold(source, threshold, source.Bounds); + source.ApplyProcessor(new BinaryThresholdProcessor(threshold)); + return source; } /// @@ -40,7 +41,7 @@ public static Image BinaryThreshold(this Image source, f /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image BinaryThreshold(this Image source, float threshold, Rectangle rectangle) + public static IImageOperations BinaryThreshold(this IImageOperations source, float threshold, Rectangle rectangle) where TPixel : struct, IPixel { source.ApplyProcessor(new BinaryThresholdProcessor(threshold), rectangle); diff --git a/src/ImageSharp/Processing/Binarization/Dither.cs b/src/ImageSharp/Processing/Binarization/Dither.cs index efaf63b06c..614eabca79 100644 --- a/src/ImageSharp/Processing/Binarization/Dither.cs +++ b/src/ImageSharp/Processing/Binarization/Dither.cs @@ -25,10 +25,11 @@ public static partial class ImageExtensions /// The ordered ditherer. /// The component index to test the threshold against. Must range from 0 to 3. /// The . - public static Image Dither(this Image source, IOrderedDither dither, int index = 0) + public static IImageOperations Dither(this IImageOperations source, IOrderedDither dither, int index = 0) where TPixel : struct, IPixel { - return Dither(source, dither, source.Bounds, index); + source.ApplyProcessor(new OrderedDitherProcessor(dither, index)); + return source; } /// @@ -42,7 +43,7 @@ public static Image Dither(this Image source, IOrderedDi /// /// The component index to test the threshold against. Must range from 0 to 3. /// The . - public static Image Dither(this Image source, IOrderedDither dither, Rectangle rectangle, int index = 0) + public static IImageOperations Dither(this IImageOperations source, IOrderedDither dither, Rectangle rectangle, int index = 0) where TPixel : struct, IPixel { source.ApplyProcessor(new OrderedDitherProcessor(dither, index), rectangle); @@ -57,10 +58,11 @@ public static Image Dither(this Image source, IOrderedDi /// The diffusion algorithm to apply. /// The threshold to apply binarization of the image. Must be between 0 and 1. /// The . - public static Image Dither(this Image source, IErrorDiffuser diffuser, float threshold) + public static IImageOperations Dither(this IImageOperations source, IErrorDiffuser diffuser, float threshold) where TPixel : struct, IPixel { - return Dither(source, diffuser, threshold, source.Bounds); + source.ApplyProcessor(new ErrorDiffusionDitherProcessor(diffuser, threshold)); + return source; } /// @@ -74,7 +76,7 @@ public static Image Dither(this Image source, IErrorDiff /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Dither(this Image source, IErrorDiffuser diffuser, float threshold, Rectangle rectangle) + public static IImageOperations Dither(this IImageOperations source, IErrorDiffuser diffuser, float threshold, Rectangle rectangle) where TPixel : struct, IPixel { source.ApplyProcessor(new ErrorDiffusionDitherProcessor(diffuser, threshold), rectangle); diff --git a/src/ImageSharp/Processing/ColorMatrix/BlackWhite.cs b/src/ImageSharp/Processing/ColorMatrix/BlackWhite.cs index 6a4e3807ba..5710991dc3 100644 --- a/src/ImageSharp/Processing/ColorMatrix/BlackWhite.cs +++ b/src/ImageSharp/Processing/ColorMatrix/BlackWhite.cs @@ -24,10 +24,11 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image BlackWhite(this Image source) + public static IImageOperations BlackWhite(this IImageOperations source) where TPixel : struct, IPixel { - return BlackWhite(source, source.Bounds); + source.ApplyProcessor(new BlackWhiteProcessor()); + return source; } /// @@ -39,7 +40,7 @@ public static Image BlackWhite(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image BlackWhite(this Image source, Rectangle rectangle) + public static IImageOperations BlackWhite(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { source.ApplyProcessor(new BlackWhiteProcessor(), rectangle); diff --git a/src/ImageSharp/Processing/ColorMatrix/ColorBlindness.cs b/src/ImageSharp/Processing/ColorMatrix/ColorBlindness.cs index 14641afba1..4d83ba9a20 100644 --- a/src/ImageSharp/Processing/ColorMatrix/ColorBlindness.cs +++ b/src/ImageSharp/Processing/ColorMatrix/ColorBlindness.cs @@ -25,10 +25,11 @@ public static partial class ImageExtensions /// The image this method extends. /// The type of color blindness simulator to apply. /// The . - public static Image ColorBlindness(this Image source, ColorBlindness colorBlindness) + public static IImageOperations ColorBlindness(this IImageOperations source, ColorBlindness colorBlindness) where TPixel : struct, IPixel { - return ColorBlindness(source, colorBlindness, source.Bounds); + source.ApplyProcessor(GetProcessor(colorBlindness)); + return source; } /// @@ -41,48 +42,35 @@ public static Image ColorBlindness(this Image source, Co /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image ColorBlindness(this Image source, ColorBlindness colorBlindness, Rectangle rectangle) + public static IImageOperations ColorBlindness(this IImageOperations source, ColorBlindness colorBlindness, Rectangle rectangle) where TPixel : struct, IPixel { - IImageProcessor processor; + source.ApplyProcessor(GetProcessor(colorBlindness), rectangle); + return source; + } + private static IImageProcessor GetProcessor(ColorBlindness colorBlindness) + where TPixel : struct, IPixel + { switch (colorBlindness) { case ImageSharp.Processing.ColorBlindness.Achromatomaly: - processor = new AchromatomalyProcessor(); - break; - + return new AchromatomalyProcessor(); case ImageSharp.Processing.ColorBlindness.Achromatopsia: - processor = new AchromatopsiaProcessor(); - break; - + return new AchromatopsiaProcessor(); case ImageSharp.Processing.ColorBlindness.Deuteranomaly: - processor = new DeuteranomalyProcessor(); - break; - + return new DeuteranomalyProcessor(); case ImageSharp.Processing.ColorBlindness.Deuteranopia: - processor = new DeuteranopiaProcessor(); - break; - + return new DeuteranopiaProcessor(); case ImageSharp.Processing.ColorBlindness.Protanomaly: - processor = new ProtanomalyProcessor(); - break; - + return new ProtanomalyProcessor(); case ImageSharp.Processing.ColorBlindness.Protanopia: - processor = new ProtanopiaProcessor(); - break; - + return new ProtanopiaProcessor(); case ImageSharp.Processing.ColorBlindness.Tritanomaly: - processor = new TritanomalyProcessor(); - break; - + return new TritanomalyProcessor(); default: - processor = new TritanopiaProcessor(); - break; + return new TritanopiaProcessor(); } - - source.ApplyProcessor(processor, rectangle); - return source; } } } diff --git a/src/ImageSharp/Processing/ColorMatrix/Grayscale.cs b/src/ImageSharp/Processing/ColorMatrix/Grayscale.cs index 635b6747a6..6cdc3343de 100644 --- a/src/ImageSharp/Processing/ColorMatrix/Grayscale.cs +++ b/src/ImageSharp/Processing/ColorMatrix/Grayscale.cs @@ -22,7 +22,7 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Grayscale(this Image source) + public static IImageOperations Grayscale(this IImageOperations source) where TPixel : struct, IPixel { return Grayscale(source, GrayscaleMode.Bt709); @@ -35,10 +35,15 @@ public static Image Grayscale(this Image source) /// The image this method extends. /// The formula to apply to perform the operation. /// The . - public static Image Grayscale(this Image source, GrayscaleMode mode) + public static IImageOperations Grayscale(this IImageOperations source, GrayscaleMode mode) where TPixel : struct, IPixel { - return Grayscale(source, mode, source.Bounds); + IImageProcessor processor = mode == GrayscaleMode.Bt709 + ? (IImageProcessor)new GrayscaleBt709Processor() + : new GrayscaleBt601Processor(); + + source.ApplyProcessor(processor); + return source; } /// @@ -50,13 +55,10 @@ public static Image Grayscale(this Image source, Graysca /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Grayscale(this Image source, Rectangle rectangle) + public static IImageOperations Grayscale(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { - IImageProcessor processor = new GrayscaleBt709Processor(); - - source.ApplyProcessor(processor, rectangle); - return source; + return Grayscale(source, GrayscaleMode.Bt709, rectangle); } /// @@ -69,7 +71,7 @@ public static Image Grayscale(this Image source, Rectang /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Grayscale(this Image source, GrayscaleMode mode, Rectangle rectangle) + public static IImageOperations Grayscale(this IImageOperations source, GrayscaleMode mode, Rectangle rectangle) where TPixel : struct, IPixel { IImageProcessor processor = mode == GrayscaleMode.Bt709 diff --git a/src/ImageSharp/Processing/ColorMatrix/Hue.cs b/src/ImageSharp/Processing/ColorMatrix/Hue.cs index d218b3a104..86a5336219 100644 --- a/src/ImageSharp/Processing/ColorMatrix/Hue.cs +++ b/src/ImageSharp/Processing/ColorMatrix/Hue.cs @@ -25,10 +25,11 @@ public static partial class ImageExtensions /// The image this method extends. /// The angle in degrees to adjust the image. /// The . - public static Image Hue(this Image source, float degrees) + public static IImageOperations Hue(this IImageOperations source, float degrees) where TPixel : struct, IPixel { - return Hue(source, degrees, source.Bounds); + source.ApplyProcessor(new HueProcessor(degrees)); + return source; } /// @@ -41,7 +42,7 @@ public static Image Hue(this Image source, float degrees /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Hue(this Image source, float degrees, Rectangle rectangle) + public static IImageOperations Hue(this IImageOperations source, float degrees, Rectangle rectangle) where TPixel : struct, IPixel { source.ApplyProcessor(new HueProcessor(degrees), rectangle); diff --git a/src/ImageSharp/Processing/ColorMatrix/Kodachrome.cs b/src/ImageSharp/Processing/ColorMatrix/Kodachrome.cs index 09eb131907..2f331d6478 100644 --- a/src/ImageSharp/Processing/ColorMatrix/Kodachrome.cs +++ b/src/ImageSharp/Processing/ColorMatrix/Kodachrome.cs @@ -24,10 +24,11 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Kodachrome(this Image source) + public static IImageOperations Kodachrome(this IImageOperations source) where TPixel : struct, IPixel { - return Kodachrome(source, source.Bounds); + source.ApplyProcessor(new KodachromeProcessor()); + return source; } /// @@ -39,7 +40,7 @@ public static Image Kodachrome(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Kodachrome(this Image source, Rectangle rectangle) + public static IImageOperations Kodachrome(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { source.ApplyProcessor(new KodachromeProcessor(), rectangle); diff --git a/src/ImageSharp/Processing/ColorMatrix/Lomograph.cs b/src/ImageSharp/Processing/ColorMatrix/Lomograph.cs index bca4577e48..e2c8f3674c 100644 --- a/src/ImageSharp/Processing/ColorMatrix/Lomograph.cs +++ b/src/ImageSharp/Processing/ColorMatrix/Lomograph.cs @@ -24,10 +24,10 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Lomograph(this Image source) + public static IImageOperations Lomograph(this IImageOperations source) where TPixel : struct, IPixel { - return Lomograph(source, source.Bounds, GraphicsOptions.Default); + return Lomograph(source, GraphicsOptions.Default); } /// @@ -39,7 +39,7 @@ public static Image Lomograph(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Lomograph(this Image source, Rectangle rectangle) + public static IImageOperations Lomograph(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { return Lomograph(source, rectangle, GraphicsOptions.Default); @@ -52,10 +52,11 @@ public static Image Lomograph(this Image source, Rectang /// The image this method extends. /// The options effecting pixel blending. /// The . - public static Image Lomograph(this Image source, GraphicsOptions options) + public static IImageOperations Lomograph(this IImageOperations source, GraphicsOptions options) where TPixel : struct, IPixel { - return Lomograph(source, source.Bounds, options); + source.ApplyProcessor(new LomographProcessor(options)); + return source; } /// @@ -68,7 +69,7 @@ public static Image Lomograph(this Image source, Graphic /// /// The options effecting pixel blending. /// The . - public static Image Lomograph(this Image source, Rectangle rectangle, GraphicsOptions options) + public static IImageOperations Lomograph(this IImageOperations source, Rectangle rectangle, GraphicsOptions options) where TPixel : struct, IPixel { source.ApplyProcessor(new LomographProcessor(options), rectangle); diff --git a/src/ImageSharp/Processing/ColorMatrix/Polaroid.cs b/src/ImageSharp/Processing/ColorMatrix/Polaroid.cs index b2d8515d6c..bfbf6477b9 100644 --- a/src/ImageSharp/Processing/ColorMatrix/Polaroid.cs +++ b/src/ImageSharp/Processing/ColorMatrix/Polaroid.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Polaroid(this Image source) + public static IImageOperations Polaroid(this IImageOperations source) where TPixel : struct, IPixel { return Polaroid(source, GraphicsOptions.Default); @@ -39,7 +39,7 @@ public static Image Polaroid(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Polaroid(this Image source, Rectangle rectangle) + public static IImageOperations Polaroid(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { return Polaroid(source, rectangle, GraphicsOptions.Default); @@ -52,10 +52,11 @@ public static Image Polaroid(this Image source, Rectangl /// The image this method extends. /// The options effecting pixel blending. /// The . - public static Image Polaroid(this Image source, GraphicsOptions options) + public static IImageOperations Polaroid(this IImageOperations source, GraphicsOptions options) where TPixel : struct, IPixel { - return Polaroid(source, source.Bounds, options); + source.ApplyProcessor(new PolaroidProcessor(options)); + return source; } /// @@ -68,7 +69,7 @@ public static Image Polaroid(this Image source, Graphics /// /// The options effecting pixel blending. /// The . - public static Image Polaroid(this Image source, Rectangle rectangle, GraphicsOptions options) + public static IImageOperations Polaroid(this IImageOperations source, Rectangle rectangle, GraphicsOptions options) where TPixel : struct, IPixel { source.ApplyProcessor(new PolaroidProcessor(options), rectangle); diff --git a/src/ImageSharp/Processing/ColorMatrix/Saturation.cs b/src/ImageSharp/Processing/ColorMatrix/Saturation.cs index 88f3b15296..5a26505272 100644 --- a/src/ImageSharp/Processing/ColorMatrix/Saturation.cs +++ b/src/ImageSharp/Processing/ColorMatrix/Saturation.cs @@ -25,10 +25,11 @@ public static partial class ImageExtensions /// The image this method extends. /// The new saturation of the image. Must be between -100 and 100. /// The . - public static Image Saturation(this Image source, int amount) + public static IImageOperations Saturation(this IImageOperations source, int amount) where TPixel : struct, IPixel { - return Saturation(source, amount, source.Bounds); + source.ApplyProcessor(new SaturationProcessor(amount)); + return source; } /// @@ -41,7 +42,7 @@ public static Image Saturation(this Image source, int am /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Saturation(this Image source, int amount, Rectangle rectangle) + public static IImageOperations Saturation(this IImageOperations source, int amount, Rectangle rectangle) where TPixel : struct, IPixel { source.ApplyProcessor(new SaturationProcessor(amount), rectangle); diff --git a/src/ImageSharp/Processing/ColorMatrix/Sepia.cs b/src/ImageSharp/Processing/ColorMatrix/Sepia.cs index 000c0ffba8..f4dbb26c1a 100644 --- a/src/ImageSharp/Processing/ColorMatrix/Sepia.cs +++ b/src/ImageSharp/Processing/ColorMatrix/Sepia.cs @@ -24,11 +24,9 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Sepia(this Image source) + public static IImageOperations Sepia(this IImageOperations source) where TPixel : struct, IPixel - { - return Sepia(source, source.Bounds); - } + => source.ApplyProcessor(new SepiaProcessor()); /// /// Applies sepia toning to the image. @@ -39,11 +37,8 @@ public static Image Sepia(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Sepia(this Image source, Rectangle rectangle) + public static IImageOperations Sepia(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new SepiaProcessor(), rectangle); - return source; - } + => source.ApplyProcessor(new SepiaProcessor(), rectangle); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Convolution/BoxBlur.cs b/src/ImageSharp/Processing/Convolution/BoxBlur.cs index ad5e477dc9..f000a6aa4e 100644 --- a/src/ImageSharp/Processing/Convolution/BoxBlur.cs +++ b/src/ImageSharp/Processing/Convolution/BoxBlur.cs @@ -24,11 +24,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The 'radius' value representing the size of the area to sample. /// The . - public static Image BoxBlur(this Image source, int radius = 7) + public static IImageOperations BoxBlur(this IImageOperations source, int radius = 7) where TPixel : struct, IPixel - { - return BoxBlur(source, radius, source.Bounds); - } + => source.ApplyProcessor(new BoxBlurProcessor(radius)); /// /// Applies a box blur to the image. @@ -40,11 +38,8 @@ public static Image BoxBlur(this Image source, int radiu /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image BoxBlur(this Image source, int radius, Rectangle rectangle) + public static IImageOperations BoxBlur(this IImageOperations source, int radius, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new BoxBlurProcessor(radius), rectangle); - return source; - } + => source.ApplyProcessor(new BoxBlurProcessor(radius), rectangle); } } diff --git a/src/ImageSharp/Processing/Convolution/DetectEdges.cs b/src/ImageSharp/Processing/Convolution/DetectEdges.cs index 1cc8b693ff..14bcf20598 100644 --- a/src/ImageSharp/Processing/Convolution/DetectEdges.cs +++ b/src/ImageSharp/Processing/Convolution/DetectEdges.cs @@ -25,10 +25,10 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image DetectEdges(this Image source) + public static IImageOperations DetectEdges(this IImageOperations source) where TPixel : struct, IPixel { - return DetectEdges(source, source.Bounds, new SobelProcessor { Grayscale = true }); + return DetectEdges(source, new SobelProcessor { Grayscale = true }); } /// @@ -41,7 +41,7 @@ public static Image DetectEdges(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image DetectEdges(this Image source, Rectangle rectangle) + public static IImageOperations DetectEdges(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { return DetectEdges(source, rectangle, new SobelProcessor { Grayscale = true }); @@ -55,11 +55,9 @@ public static Image DetectEdges(this Image source, Recta /// The filter for detecting edges. /// Whether to convert the image to Grayscale first. Defaults to true. /// The . - public static Image DetectEdges(this Image source, EdgeDetection filter, bool grayscale = true) + public static IImageOperations DetectEdges(this IImageOperations source, EdgeDetection filter, bool grayscale = true) where TPixel : struct, IPixel - { - return DetectEdges(source, filter, source.Bounds, grayscale); - } + => DetectEdges(source, GetProcessor(filter, grayscale)); /// /// Detects any edges within the image. @@ -72,7 +70,41 @@ public static Image DetectEdges(this Image source, EdgeD /// /// Whether to convert the image to Grayscale first. Defaults to true. /// The . - public static Image DetectEdges(this Image source, EdgeDetection filter, Rectangle rectangle, bool grayscale = true) + public static IImageOperations DetectEdges(this IImageOperations source, EdgeDetection filter, Rectangle rectangle, bool grayscale = true) + where TPixel : struct, IPixel + => DetectEdges(source, rectangle, GetProcessor(filter, grayscale)); + + /// + /// Detects any edges within the image. + /// + /// The pixel format. + /// The image this method extends. + /// The filter for detecting edges. + /// The . + public static IImageOperations DetectEdges(this IImageOperations source, IEdgeDetectorProcessor filter) + where TPixel : struct, IPixel + { + return source.ApplyProcessor(filter); + } + + /// + /// Detects any edges within the image. + /// + /// The pixel format. + /// The image this method extends. + /// + /// The structure that specifies the portion of the image object to alter. + /// + /// The filter for detecting edges. + /// The . + public static IImageOperations DetectEdges(this IImageOperations source, Rectangle rectangle, IEdgeDetectorProcessor filter) + where TPixel : struct, IPixel + { + source.ApplyProcessor(filter, rectangle); + return source; + } + + private static IEdgeDetectorProcessor GetProcessor(EdgeDetection filter, bool grayscale) where TPixel : struct, IPixel { IEdgeDetectorProcessor processor; @@ -120,37 +152,7 @@ public static Image DetectEdges(this Image source, EdgeD break; } - return DetectEdges(source, rectangle, processor); - } - - /// - /// Detects any edges within the image. - /// - /// The pixel format. - /// The image this method extends. - /// The filter for detecting edges. - /// The . - public static Image DetectEdges(this Image source, IEdgeDetectorProcessor filter) - where TPixel : struct, IPixel - { - return DetectEdges(source, source.Bounds, filter); - } - - /// - /// Detects any edges within the image. - /// - /// The pixel format. - /// The image this method extends. - /// - /// The structure that specifies the portion of the image object to alter. - /// - /// The filter for detecting edges. - /// The . - public static Image DetectEdges(this Image source, Rectangle rectangle, IEdgeDetectorProcessor filter) - where TPixel : struct, IPixel - { - source.ApplyProcessor(filter, rectangle); - return source; + return processor; } } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Convolution/GaussianBlur.cs b/src/ImageSharp/Processing/Convolution/GaussianBlur.cs index f9658fcb5d..7d551ceb8d 100644 --- a/src/ImageSharp/Processing/Convolution/GaussianBlur.cs +++ b/src/ImageSharp/Processing/Convolution/GaussianBlur.cs @@ -25,11 +25,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The 'sigma' value representing the weight of the blur. /// The . - public static Image GaussianBlur(this Image source, float sigma = 3f) + public static IImageOperations GaussianBlur(this IImageOperations source, float sigma = 3f) where TPixel : struct, IPixel - { - return GaussianBlur(source, sigma, source.Bounds); - } + => source.ApplyProcessor(new GaussianBlurProcessor(sigma)); /// /// Applies a Gaussian blur to the image. @@ -41,11 +39,8 @@ public static Image GaussianBlur(this Image source, floa /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image GaussianBlur(this Image source, float sigma, Rectangle rectangle) + public static IImageOperations GaussianBlur(this IImageOperations source, float sigma, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new GaussianBlurProcessor(sigma), rectangle); - return source; - } + => source.ApplyProcessor(new GaussianBlurProcessor(sigma), rectangle); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Convolution/GaussianSharpen.cs b/src/ImageSharp/Processing/Convolution/GaussianSharpen.cs index bb616cc67e..58c5ad12ac 100644 --- a/src/ImageSharp/Processing/Convolution/GaussianSharpen.cs +++ b/src/ImageSharp/Processing/Convolution/GaussianSharpen.cs @@ -25,11 +25,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The 'sigma' value representing the weight of the blur. /// The . - public static Image GaussianSharpen(this Image source, float sigma = 3f) + public static IImageOperations GaussianSharpen(this IImageOperations source, float sigma = 3f) where TPixel : struct, IPixel - { - return GaussianSharpen(source, sigma, source.Bounds); - } + => source.ApplyProcessor(new GaussianSharpenProcessor(sigma)); /// /// Applies a Gaussian sharpening filter to the image. @@ -41,11 +39,8 @@ public static Image GaussianSharpen(this Image source, f /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image GaussianSharpen(this Image source, float sigma, Rectangle rectangle) + public static IImageOperations GaussianSharpen(this IImageOperations source, float sigma, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new GaussianSharpenProcessor(sigma), rectangle); - return source; - } + => source.ApplyProcessor(new GaussianSharpenProcessor(sigma), rectangle); } } diff --git a/src/ImageSharp/Processing/DelegateImageProcessor.cs b/src/ImageSharp/Processing/DelegateImageProcessor.cs new file mode 100644 index 0000000000..e1d1060c67 --- /dev/null +++ b/src/ImageSharp/Processing/DelegateImageProcessor.cs @@ -0,0 +1,44 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing +{ + using System; + using System.Threading.Tasks; + + using ImageSharp.PixelFormats; + using SixLabors.Primitives; + + /// + /// Allows the application of processors to images. + /// + /// The pixel format. + internal class DelegateImageProcessor : ImageProcessor + where TPixel : struct, IPixel + { + private readonly Action> action; + + /// + /// Initializes a new instance of the class. + /// + /// The action. + public DelegateImageProcessor(Action> action) + { + this.action = action; + } + + /// + protected override void BeforeImageApply(Image source, Rectangle sourceRectangle) + { + this.action?.Invoke((Image)source); + } + + /// + protected override void OnApply(ImageBase source, Rectangle sourceRectangle) + { + // no op, we did all we wanted to do inside BeforeImageApply + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Processing/Effects/Alpha.cs b/src/ImageSharp/Processing/Effects/Alpha.cs index a0d218651a..4978caf86c 100644 --- a/src/ImageSharp/Processing/Effects/Alpha.cs +++ b/src/ImageSharp/Processing/Effects/Alpha.cs @@ -24,11 +24,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The new opacity of the image. Must be between 0 and 1. /// The . - public static Image Alpha(this Image source, float percent) + public static IImageOperations Alpha(this IImageOperations source, float percent) where TPixel : struct, IPixel - { - return Alpha(source, percent, source.Bounds); - } + => source.ApplyProcessor(new AlphaProcessor(percent)); /// /// Alters the alpha component of the image. @@ -40,11 +38,8 @@ public static Image Alpha(this Image source, float perce /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Alpha(this Image source, float percent, Rectangle rectangle) + public static IImageOperations Alpha(this IImageOperations source, float percent, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new AlphaProcessor(percent), rectangle); - return source; - } + => source.ApplyProcessor(new AlphaProcessor(percent), rectangle); } } diff --git a/src/ImageSharp/Processing/Effects/BackgroundColor.cs b/src/ImageSharp/Processing/Effects/BackgroundColor.cs index a1e04c8a3d..276bfa2a72 100644 --- a/src/ImageSharp/Processing/Effects/BackgroundColor.cs +++ b/src/ImageSharp/Processing/Effects/BackgroundColor.cs @@ -25,11 +25,9 @@ public static partial class ImageExtensions /// The color to set as the background. /// The options effecting pixel blending. /// The . - public static Image BackgroundColor(this Image source, TPixel color, GraphicsOptions options) + public static IImageOperations BackgroundColor(this IImageOperations source, TPixel color, GraphicsOptions options) where TPixel : struct, IPixel - { - return BackgroundColor(source, color, source.Bounds, options); - } + => source.ApplyProcessor(new BackgroundColorProcessor(color, options)); /// /// Replaces the background color of image with the given one. @@ -42,12 +40,9 @@ public static Image BackgroundColor(this Image source, T /// /// The options effecting pixel blending. /// The . - public static Image BackgroundColor(this Image source, TPixel color, Rectangle rectangle, GraphicsOptions options) + public static IImageOperations BackgroundColor(this IImageOperations source, TPixel color, Rectangle rectangle, GraphicsOptions options) where TPixel : struct, IPixel - { - source.ApplyProcessor(new BackgroundColorProcessor(color, options), rectangle); - return source; - } + => source.ApplyProcessor(new BackgroundColorProcessor(color, options), rectangle); /// /// Replaces the background color of image with the given one. @@ -56,7 +51,7 @@ public static Image BackgroundColor(this Image source, T /// The image this method extends. /// The color to set as the background. /// The . - public static Image BackgroundColor(this Image source, TPixel color) + public static IImageOperations BackgroundColor(this IImageOperations source, TPixel color) where TPixel : struct, IPixel { return BackgroundColor(source, color, GraphicsOptions.Default); @@ -72,7 +67,7 @@ public static Image BackgroundColor(this Image source, T /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image BackgroundColor(this Image source, TPixel color, Rectangle rectangle) + public static IImageOperations BackgroundColor(this IImageOperations source, TPixel color, Rectangle rectangle) where TPixel : struct, IPixel { return BackgroundColor(source, color, rectangle, GraphicsOptions.Default); diff --git a/src/ImageSharp/Processing/Effects/Brightness.cs b/src/ImageSharp/Processing/Effects/Brightness.cs index 165f897b80..9bc27e75d7 100644 --- a/src/ImageSharp/Processing/Effects/Brightness.cs +++ b/src/ImageSharp/Processing/Effects/Brightness.cs @@ -24,11 +24,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The new brightness of the image. Must be between -100 and 100. /// The . - public static Image Brightness(this Image source, int amount) + public static IImageOperations Brightness(this IImageOperations source, int amount) where TPixel : struct, IPixel - { - return Brightness(source, amount, source.Bounds); - } + => source.ApplyProcessor(new BrightnessProcessor(amount)); /// /// Alters the brightness component of the image. @@ -40,11 +38,8 @@ public static Image Brightness(this Image source, int am /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Brightness(this Image source, int amount, Rectangle rectangle) + public static IImageOperations Brightness(this IImageOperations source, int amount, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new BrightnessProcessor(amount), rectangle); - return source; - } + => source.ApplyProcessor(new BrightnessProcessor(amount), rectangle); } } diff --git a/src/ImageSharp/Processing/Effects/Contrast.cs b/src/ImageSharp/Processing/Effects/Contrast.cs index 0a55fd067b..52eb0d5eca 100644 --- a/src/ImageSharp/Processing/Effects/Contrast.cs +++ b/src/ImageSharp/Processing/Effects/Contrast.cs @@ -24,11 +24,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The new contrast of the image. Must be between -100 and 100. /// The . - public static Image Contrast(this Image source, int amount) + public static IImageOperations Contrast(this IImageOperations source, int amount) where TPixel : struct, IPixel - { - return Contrast(source, amount, source.Bounds); - } + => source.ApplyProcessor(new ContrastProcessor(amount)); /// /// Alters the contrast component of the image. @@ -40,11 +38,8 @@ public static Image Contrast(this Image source, int amou /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Contrast(this Image source, int amount, Rectangle rectangle) + public static IImageOperations Contrast(this IImageOperations source, int amount, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new ContrastProcessor(amount), rectangle); - return source; - } + => source.ApplyProcessor(new ContrastProcessor(amount), rectangle); } } diff --git a/src/ImageSharp/Processing/Effects/Invert.cs b/src/ImageSharp/Processing/Effects/Invert.cs index d9a0695566..4f8c6a8864 100644 --- a/src/ImageSharp/Processing/Effects/Invert.cs +++ b/src/ImageSharp/Processing/Effects/Invert.cs @@ -23,11 +23,9 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Invert(this Image source) + public static IImageOperations Invert(this IImageOperations source) where TPixel : struct, IPixel - { - return Invert(source, source.Bounds); - } + => source.ApplyProcessor(new InvertProcessor()); /// /// Inverts the colors of the image. @@ -38,11 +36,8 @@ public static Image Invert(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Invert(this Image source, Rectangle rectangle) + public static IImageOperations Invert(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel - { - source.ApplyProcessor(new InvertProcessor(), rectangle); - return source; - } + => source.ApplyProcessor(new InvertProcessor(), rectangle); } } diff --git a/src/ImageSharp/Processing/Effects/OilPainting.cs b/src/ImageSharp/Processing/Effects/OilPainting.cs index 3b300e9197..23d5528856 100644 --- a/src/ImageSharp/Processing/Effects/OilPainting.cs +++ b/src/ImageSharp/Processing/Effects/OilPainting.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image OilPaint(this Image source) + public static IImageOperations OilPaint(this IImageOperations source) where TPixel : struct, IPixel { return OilPaint(source, 10, 15); @@ -40,7 +40,7 @@ public static Image OilPaint(this Image source) /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image OilPaint(this Image source, Rectangle rectangle) + public static IImageOperations OilPaint(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { return OilPaint(source, 10, 15, rectangle); @@ -54,11 +54,9 @@ public static Image OilPaint(this Image source, Rectangl /// The number of intensity levels. Higher values result in a broader range of color intensities forming part of the result image. /// The number of neighboring pixels used in calculating each individual pixel value. /// The . - public static Image OilPaint(this Image source, int levels, int brushSize) - where TPixel : struct, IPixel - { - return OilPaint(source, levels, brushSize, source.Bounds); - } + public static IImageOperations OilPaint(this IImageOperations source, int levels, int brushSize) + where TPixel : struct, IPixel + => source.ApplyProcessor(new OilPaintingProcessor(levels, brushSize)); /// /// Alters the colors of the image recreating an oil painting effect. @@ -71,18 +69,8 @@ public static Image OilPaint(this Image source, int leve /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image OilPaint(this Image source, int levels, int brushSize, Rectangle rectangle) + public static IImageOperations OilPaint(this IImageOperations source, int levels, int brushSize, Rectangle rectangle) where TPixel : struct, IPixel - { - Guard.MustBeGreaterThan(levels, 0, nameof(levels)); - - if (brushSize <= 0 || brushSize > source.Height || brushSize > source.Width) - { - throw new ArgumentOutOfRangeException(nameof(brushSize)); - } - - source.ApplyProcessor(new OilPaintingProcessor(levels, brushSize), rectangle); - return source; - } + => source.ApplyProcessor(new OilPaintingProcessor(levels, brushSize), rectangle); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Effects/Pixelate.cs b/src/ImageSharp/Processing/Effects/Pixelate.cs index 07fdd50a35..cd0551ad39 100644 --- a/src/ImageSharp/Processing/Effects/Pixelate.cs +++ b/src/ImageSharp/Processing/Effects/Pixelate.cs @@ -24,11 +24,9 @@ public static partial class ImageExtensions /// The image this method extends. /// The size of the pixels. /// The . - public static Image Pixelate(this Image source, int size = 4) + public static IImageOperations Pixelate(this IImageOperations source, int size = 4) where TPixel : struct, IPixel - { - return Pixelate(source, size, source.Bounds); - } + => source.ApplyProcessor(new PixelateProcessor(size)); /// /// Pixelates an image with the given pixel size. @@ -40,16 +38,8 @@ public static Image Pixelate(this Image source, int size /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Pixelate(this Image source, int size, Rectangle rectangle) + public static IImageOperations Pixelate(this IImageOperations source, int size, Rectangle rectangle) where TPixel : struct, IPixel - { - if (size <= 0 || size > source.Height || size > source.Width) - { - throw new ArgumentOutOfRangeException(nameof(size)); - } - - source.ApplyProcessor(new PixelateProcessor(size), rectangle); - return source; - } + => source.ApplyProcessor(new PixelateProcessor(size), rectangle); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/ImageProcessor.cs b/src/ImageSharp/Processing/ImageProcessor.cs index dd2a93bc52..bf88d5ff7b 100644 --- a/src/ImageSharp/Processing/ImageProcessor.cs +++ b/src/ImageSharp/Processing/ImageProcessor.cs @@ -25,7 +25,7 @@ internal abstract class ImageProcessor : IImageProcessor public virtual bool Compand { get; set; } = false; /// - public void Apply(ImageBase source, Rectangle sourceRectangle) + public void Apply(Image source, Rectangle sourceRectangle) { if (this.ParallelOptions == null) { @@ -34,10 +34,50 @@ public void Apply(ImageBase source, Rectangle sourceRectangle) try { - this.BeforeApply(source, sourceRectangle); + this.BeforeImageApply(source, sourceRectangle); + this.BeforeApply(source, sourceRectangle); this.OnApply(source, sourceRectangle); + this.AfterApply(source, sourceRectangle); + + foreach (ImageFrame sourceFrame in source.Frames) + { + this.BeforeApply(source, sourceRectangle); + + this.OnApply(source, sourceRectangle); + this.AfterApply(source, sourceRectangle); + } + + this.AfterImageApply(source, sourceRectangle); + } +#if DEBUG + catch (Exception) + { + throw; +#else + catch (Exception ex) + { + throw new ImageProcessingException($"An error occured when processing the image using {this.GetType().Name}. See the inner exception for more detail.", ex); +#endif + } + } + + /// + /// Applies the processor to just a single ImageBase + /// + /// the source image + /// the target + public void Apply(ImageBase source, Rectangle sourceRectangle) + { + if (this.ParallelOptions == null) + { + this.ParallelOptions = source.Configuration.ParallelOptions; + } + try + { + this.BeforeApply(source, sourceRectangle); + this.OnApply(source, sourceRectangle); this.AfterApply(source, sourceRectangle); } #if DEBUG @@ -52,6 +92,17 @@ public void Apply(ImageBase source, Rectangle sourceRectangle) } } + /// + /// This method is called before the process is applied to prepare the processor. + /// + /// The source image. Cannot be null. + /// + /// The structure that specifies the portion of the image object to draw. + /// + protected virtual void BeforeImageApply(Image source, Rectangle sourceRectangle) + { + } + /// /// This method is called before the process is applied to prepare the processor. /// @@ -83,5 +134,16 @@ protected virtual void BeforeApply(ImageBase source, Rectangle sourceRec protected virtual void AfterApply(ImageBase source, Rectangle sourceRectangle) { } + + /// + /// This method is called after the process is applied to prepare the processor. + /// + /// The source image. Cannot be null. + /// + /// The structure that specifies the portion of the image object to draw. + /// + protected virtual void AfterImageApply(Image source, Rectangle sourceRectangle) + { + } } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Overlays/Glow.cs b/src/ImageSharp/Processing/Overlays/Glow.cs index 84f6bf10ae..4c58a27d45 100644 --- a/src/ImageSharp/Processing/Overlays/Glow.cs +++ b/src/ImageSharp/Processing/Overlays/Glow.cs @@ -21,7 +21,7 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Glow(this Image source) + public static IImageOperations Glow(this IImageOperations source) where TPixel : struct, IPixel { return Glow(source, GraphicsOptions.Default); @@ -34,7 +34,7 @@ public static Image Glow(this Image source) /// The image this method extends. /// The color to set as the glow. /// The . - public static Image Glow(this Image source, TPixel color) + public static IImageOperations Glow(this IImageOperations source, TPixel color) where TPixel : struct, IPixel { return Glow(source, color, GraphicsOptions.Default); @@ -47,7 +47,7 @@ public static Image Glow(this Image source, TPixel color /// The image this method extends. /// The the radius. /// The . - public static Image Glow(this Image source, float radius) + public static IImageOperations Glow(this IImageOperations source, float radius) where TPixel : struct, IPixel { return Glow(source, radius, GraphicsOptions.Default); @@ -62,11 +62,9 @@ public static Image Glow(this Image source, float radius /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Glow(this Image source, Rectangle rectangle) + public static IImageOperations Glow(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel - { - return Glow(source, rectangle, GraphicsOptions.Default); - } + => source.Glow(rectangle, GraphicsOptions.Default); /// /// Applies a radial glow effect to an image. @@ -79,11 +77,9 @@ public static Image Glow(this Image source, Rectangle re /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Glow(this Image source, TPixel color, float radius, Rectangle rectangle) + public static IImageOperations Glow(this IImageOperations source, TPixel color, float radius, Rectangle rectangle) where TPixel : struct, IPixel - { - return Glow(source, color, radius, rectangle, GraphicsOptions.Default); - } + => source.Glow(color, ValueSize.Absolute(radius), rectangle, GraphicsOptions.Default); /// /// Applies a radial glow effect to an image. @@ -92,11 +88,9 @@ public static Image Glow(this Image source, TPixel color /// The image this method extends. /// The options effecting things like blending. /// The . - public static Image Glow(this Image source, GraphicsOptions options) + public static IImageOperations Glow(this IImageOperations source, GraphicsOptions options) where TPixel : struct, IPixel - { - return Glow(source, NamedColors.Black, source.Bounds.Width * .5F, source.Bounds, options); - } + => source.Glow(NamedColors.Black, ValueSize.PercentageOfWidth(0.5f), options); /// /// Applies a radial glow effect to an image. @@ -106,11 +100,9 @@ public static Image Glow(this Image source, GraphicsOpti /// The color to set as the glow. /// The options effecting things like blending. /// The . - public static Image Glow(this Image source, TPixel color, GraphicsOptions options) + public static IImageOperations Glow(this IImageOperations source, TPixel color, GraphicsOptions options) where TPixel : struct, IPixel - { - return Glow(source, color, source.Bounds.Width * .5F, source.Bounds, options); - } + => source.Glow(color, ValueSize.PercentageOfWidth(0.5f), options); /// /// Applies a radial glow effect to an image. @@ -120,11 +112,9 @@ public static Image Glow(this Image source, TPixel color /// The the radius. /// The options effecting things like blending. /// The . - public static Image Glow(this Image source, float radius, GraphicsOptions options) + public static IImageOperations Glow(this IImageOperations source, float radius, GraphicsOptions options) where TPixel : struct, IPixel - { - return Glow(source, NamedColors.Black, radius, source.Bounds, options); - } + => source.Glow(NamedColors.Black, ValueSize.Absolute(radius), options); /// /// Applies a radial glow effect to an image. @@ -136,11 +126,9 @@ public static Image Glow(this Image source, float radius /// /// The options effecting things like blending. /// The . - public static Image Glow(this Image source, Rectangle rectangle, GraphicsOptions options) + public static IImageOperations Glow(this IImageOperations source, Rectangle rectangle, GraphicsOptions options) where TPixel : struct, IPixel - { - return Glow(source, NamedColors.Black, 0, rectangle, options); - } + => source.Glow(NamedColors.Black, ValueSize.PercentageOfWidth(0.5f), rectangle, options); /// /// Applies a radial glow effect to an image. @@ -154,12 +142,37 @@ public static Image Glow(this Image source, Rectangle re /// /// The options effecting things like blending. /// The . - public static Image Glow(this Image source, TPixel color, float radius, Rectangle rectangle, GraphicsOptions options) + public static IImageOperations Glow(this IImageOperations source, TPixel color, float radius, Rectangle rectangle, GraphicsOptions options) where TPixel : struct, IPixel - { - var processor = new GlowProcessor(color, options) { Radius = radius, }; - source.ApplyProcessor(processor, rectangle); - return source; - } + => source.Glow(color, ValueSize.Absolute(radius), rectangle, options); + + /// + /// Applies a radial glow effect to an image. + /// + /// The pixel format. + /// The image this method extends. + /// The color to set as the glow. + /// The the radius. + /// + /// The structure that specifies the portion of the image object to alter. + /// + /// The options effecting things like blending. + /// The . + private static IImageOperations Glow(this IImageOperations source, TPixel color, ValueSize radius, Rectangle rectangle, GraphicsOptions options) + where TPixel : struct, IPixel + => source.ApplyProcessor(new GlowProcessor(color, radius, options), rectangle); + + /// + /// Applies a radial glow effect to an image. + /// + /// The pixel format. + /// The image this method extends. + /// The color to set as the glow. + /// The the radius. + /// The options effecting things like blending. + /// The . + private static IImageOperations Glow(this IImageOperations source, TPixel color, ValueSize radius, GraphicsOptions options) + where TPixel : struct, IPixel + => source.ApplyProcessor(new GlowProcessor(color, radius, options)); } } diff --git a/src/ImageSharp/Processing/Overlays/Vignette.cs b/src/ImageSharp/Processing/Overlays/Vignette.cs index 75c4611a1e..78060570c7 100644 --- a/src/ImageSharp/Processing/Overlays/Vignette.cs +++ b/src/ImageSharp/Processing/Overlays/Vignette.cs @@ -21,7 +21,7 @@ public static partial class ImageExtensions /// The pixel format. /// The image this method extends. /// The . - public static Image Vignette(this Image source) + public static IImageOperations Vignette(this IImageOperations source) where TPixel : struct, IPixel { return Vignette(source, GraphicsOptions.Default); @@ -34,7 +34,7 @@ public static Image Vignette(this Image source) /// The image this method extends. /// The color to set as the vignette. /// The . - public static Image Vignette(this Image source, TPixel color) + public static IImageOperations Vignette(this IImageOperations source, TPixel color) where TPixel : struct, IPixel { return Vignette(source, color, GraphicsOptions.Default); @@ -48,7 +48,7 @@ public static Image Vignette(this Image source, TPixel c /// The the x-radius. /// The the y-radius. /// The . - public static Image Vignette(this Image source, float radiusX, float radiusY) + public static IImageOperations Vignette(this IImageOperations source, float radiusX, float radiusY) where TPixel : struct, IPixel { return Vignette(source, radiusX, radiusY, GraphicsOptions.Default); @@ -63,7 +63,7 @@ public static Image Vignette(this Image source, float ra /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Vignette(this Image source, Rectangle rectangle) + public static IImageOperations Vignette(this IImageOperations source, Rectangle rectangle) where TPixel : struct, IPixel { return Vignette(source, rectangle, GraphicsOptions.Default); @@ -81,11 +81,9 @@ public static Image Vignette(this Image source, Rectangl /// The structure that specifies the portion of the image object to alter. /// /// The . - public static Image Vignette(this Image source, TPixel color, float radiusX, float radiusY, Rectangle rectangle) + public static IImageOperations Vignette(this IImageOperations source, TPixel color, float radiusX, float radiusY, Rectangle rectangle) where TPixel : struct, IPixel - { - return Vignette(source, color, radiusX, radiusY, rectangle, GraphicsOptions.Default); - } + => source.Vignette(color, radiusX, radiusY, rectangle, GraphicsOptions.Default); /// /// Applies a radial vignette effect to an image. @@ -94,11 +92,9 @@ public static Image Vignette(this Image source, TPixel c /// The image this method extends. /// The options effecting pixel blending. /// The . - public static Image Vignette(this Image source, GraphicsOptions options) + public static IImageOperations Vignette(this IImageOperations source, GraphicsOptions options) where TPixel : struct, IPixel - { - return Vignette(source, NamedColors.Black, source.Bounds.Width * .5F, source.Bounds.Height * .5F, source.Bounds, options); - } + => source.Vignette(NamedColors.Black, ValueSize.PercentageOfWidth(.5f), ValueSize.PercentageOfHeight(.5f), options); /// /// Applies a radial vignette effect to an image. @@ -108,11 +104,9 @@ public static Image Vignette(this Image source, Graphics /// The color to set as the vignette. /// The options effecting pixel blending. /// The . - public static Image Vignette(this Image source, TPixel color, GraphicsOptions options) + public static IImageOperations Vignette(this IImageOperations source, TPixel color, GraphicsOptions options) where TPixel : struct, IPixel - { - return Vignette(source, color, source.Bounds.Width * .5F, source.Bounds.Height * .5F, source.Bounds, options); - } + => source.Vignette(color, 0, 0, options); /// /// Applies a radial vignette effect to an image. @@ -123,11 +117,9 @@ public static Image Vignette(this Image source, TPixel c /// The the y-radius. /// The options effecting pixel blending. /// The . - public static Image Vignette(this Image source, float radiusX, float radiusY, GraphicsOptions options) + public static IImageOperations Vignette(this IImageOperations source, float radiusX, float radiusY, GraphicsOptions options) where TPixel : struct, IPixel - { - return Vignette(source, NamedColors.Black, radiusX, radiusY, source.Bounds, options); - } + => source.Vignette(NamedColors.Black, radiusX, radiusY, options); /// /// Applies a radial vignette effect to an image. @@ -139,11 +131,9 @@ public static Image Vignette(this Image source, float ra /// /// The options effecting pixel blending. /// The . - public static Image Vignette(this Image source, Rectangle rectangle, GraphicsOptions options) + public static IImageOperations Vignette(this IImageOperations source, Rectangle rectangle, GraphicsOptions options) where TPixel : struct, IPixel - { - return Vignette(source, NamedColors.Black, 0, 0, rectangle, options); - } + => source.Vignette(NamedColors.Black, 0, 0, rectangle, options); /// /// Applies a radial vignette effect to an image. @@ -158,12 +148,16 @@ public static Image Vignette(this Image source, Rectangl /// /// The options effecting pixel blending. /// The . - public static Image Vignette(this Image source, TPixel color, float radiusX, float radiusY, Rectangle rectangle, GraphicsOptions options) + public static IImageOperations Vignette(this IImageOperations source, TPixel color, float radiusX, float radiusY, Rectangle rectangle, GraphicsOptions options) where TPixel : struct, IPixel - { - var processor = new VignetteProcessor(color, options) { RadiusX = radiusX, RadiusY = radiusY }; - source.ApplyProcessor(processor, rectangle); - return source; - } + => source.Vignette(color, radiusX, radiusY, rectangle, options); + + private static IImageOperations Vignette(this IImageOperations source, TPixel color, ValueSize radiusX, ValueSize radiusY, Rectangle rectangle, GraphicsOptions options) + where TPixel : struct, IPixel + => source.ApplyProcessor(new VignetteProcessor(color, radiusX, radiusY, options), rectangle); + + private static IImageOperations Vignette(this IImageOperations source, TPixel color, ValueSize radiusX, ValueSize radiusY, GraphicsOptions options) + where TPixel : struct, IPixel + => source.ApplyProcessor(new VignetteProcessor(color, radiusX, radiusY, options)); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Processors/ColorMatrix/PolaroidProcessor.cs b/src/ImageSharp/Processing/Processors/ColorMatrix/PolaroidProcessor.cs index 9e54574df9..5c1bd20b16 100644 --- a/src/ImageSharp/Processing/Processors/ColorMatrix/PolaroidProcessor.cs +++ b/src/ImageSharp/Processing/Processors/ColorMatrix/PolaroidProcessor.cs @@ -53,7 +53,7 @@ public PolaroidProcessor(GraphicsOptions options) protected override void AfterApply(ImageBase source, Rectangle sourceRectangle) { new VignetteProcessor(veryDarkOrange, this.options).Apply(source, sourceRectangle); - new GlowProcessor(lightOrange, this.options) { Radius = source.Width / 4F }.Apply(source, sourceRectangle); + new GlowProcessor(lightOrange, source.Width / 4F, this.options).Apply(source, sourceRectangle); } } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Processors/Effects/OilPaintingProcessor.cs b/src/ImageSharp/Processing/Processors/Effects/OilPaintingProcessor.cs index f484c8eec8..383917c45f 100644 --- a/src/ImageSharp/Processing/Processors/Effects/OilPaintingProcessor.cs +++ b/src/ImageSharp/Processing/Processors/Effects/OilPaintingProcessor.cs @@ -51,6 +51,11 @@ public OilPaintingProcessor(int levels, int brushSize) /// protected override void OnApply(ImageBase source, Rectangle sourceRectangle) { + if (this.BrushSize <= 0 || this.BrushSize > source.Height || this.BrushSize > source.Width) + { + throw new ArgumentOutOfRangeException(nameof(this.BrushSize)); + } + int startY = sourceRectangle.Y; int endY = sourceRectangle.Bottom; int startX = sourceRectangle.X; diff --git a/src/ImageSharp/Processing/Processors/Effects/PixelateProcessor.cs b/src/ImageSharp/Processing/Processors/Effects/PixelateProcessor.cs index ff83117c5f..a44e85ef31 100644 --- a/src/ImageSharp/Processing/Processors/Effects/PixelateProcessor.cs +++ b/src/ImageSharp/Processing/Processors/Effects/PixelateProcessor.cs @@ -29,23 +29,28 @@ internal class PixelateProcessor : ImageProcessor public PixelateProcessor(int size) { Guard.MustBeGreaterThan(size, 0, nameof(size)); - this.Value = size; + this.Size = size; } /// /// Gets or the pixel size. /// - public int Value { get; } + public int Size { get; } /// protected override void OnApply(ImageBase source, Rectangle sourceRectangle) { + if (this.Size <= 0 || this.Size > source.Height || this.Size > source.Width) + { + throw new ArgumentOutOfRangeException(nameof(this.Size)); + } + int startY = sourceRectangle.Y; int endY = sourceRectangle.Bottom; int startX = sourceRectangle.X; int endX = sourceRectangle.Right; - int size = this.Value; - int offset = this.Value / 2; + int size = this.Size; + int offset = this.Size / 2; // Align start/end positions. int minX = Math.Max(0, startX); diff --git a/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor.cs b/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor.cs index 8a13eabca8..5a816da14d 100644 --- a/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor.cs +++ b/src/ImageSharp/Processing/Processors/Overlays/GlowProcessor.cs @@ -27,11 +27,13 @@ internal class GlowProcessor : ImageProcessor /// Initializes a new instance of the class. /// /// The color or the glow. + /// The radius of the glow. /// The options effecting blending and composition. - public GlowProcessor(TPixel color, GraphicsOptions options) + public GlowProcessor(TPixel color, ValueSize radius, GraphicsOptions options) { this.options = options; this.GlowColor = color; + this.Radius = radius; this.blender = PixelOperations.Instance.GetPixelBlender(this.options.BlenderMode); } @@ -43,7 +45,7 @@ public GlowProcessor(TPixel color, GraphicsOptions options) /// /// Gets or sets the the radius. /// - public float Radius { get; set; } + public ValueSize Radius { get; set; } /// protected override void OnApply(ImageBase source, Rectangle sourceRectangle) @@ -54,7 +56,10 @@ protected override void OnApply(ImageBase source, Rectangle sourceRectan int endX = sourceRectangle.Right; TPixel glowColor = this.GlowColor; Vector2 centre = Rectangle.Center(sourceRectangle); - float maxDistance = this.Radius > 0 ? MathF.Min(this.Radius, sourceRectangle.Width * .5F) : sourceRectangle.Width * .5F; + + var finalRadius = this.Radius.Calculate(source.Bounds.Size); + + float maxDistance = finalRadius > 0 ? MathF.Min(finalRadius, sourceRectangle.Width * .5F) : sourceRectangle.Width * .5F; // Align start/end positions. int minX = Math.Max(0, startX); diff --git a/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor.cs b/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor.cs index 8cb58739b0..6a46692d23 100644 --- a/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor.cs +++ b/src/ImageSharp/Processing/Processors/Overlays/VignetteProcessor.cs @@ -27,11 +27,26 @@ internal class VignetteProcessor : ImageProcessor /// Initializes a new instance of the class. /// /// The color of the vignette. + /// The x-radius. + /// The y-radius. /// The options effecting blending and composition. - public VignetteProcessor(TPixel color, GraphicsOptions options) + public VignetteProcessor(TPixel color, ValueSize radiusX, ValueSize radiusY, GraphicsOptions options) { this.VignetteColor = color; + this.RadiusX = radiusX; + this.RadiusY = radiusY; + this.options = options; + this.blender = PixelOperations.Instance.GetPixelBlender(this.options.BlenderMode); + } + /// + /// Initializes a new instance of the class. + /// + /// The color of the vignette. + /// The options effecting blending and composition. + public VignetteProcessor(TPixel color, GraphicsOptions options) + { + this.VignetteColor = color; this.options = options; this.blender = PixelOperations.Instance.GetPixelBlender(this.options.BlenderMode); } @@ -44,12 +59,12 @@ public VignetteProcessor(TPixel color, GraphicsOptions options) /// /// Gets or sets the the x-radius. /// - public float RadiusX { get; set; } + public ValueSize RadiusX { get; set; } /// /// Gets or sets the the y-radius. /// - public float RadiusY { get; set; } + public ValueSize RadiusY { get; set; } /// protected override void OnApply(ImageBase source, Rectangle sourceRectangle) @@ -60,8 +75,11 @@ protected override void OnApply(ImageBase source, Rectangle sourceRectan int endX = sourceRectangle.Right; TPixel vignetteColor = this.VignetteColor; Vector2 centre = Rectangle.Center(sourceRectangle); - float rX = this.RadiusX > 0 ? MathF.Min(this.RadiusX, sourceRectangle.Width * .5F) : sourceRectangle.Width * .5F; - float rY = this.RadiusY > 0 ? MathF.Min(this.RadiusY, sourceRectangle.Height * .5F) : sourceRectangle.Height * .5F; + + var finalradiusX = this.RadiusX.Calculate(source.Bounds.Size); + var finalradiusY = this.RadiusY.Calculate(source.Bounds.Size); + float rX = finalradiusX > 0 ? MathF.Min(finalradiusX, sourceRectangle.Width * .5F) : sourceRectangle.Width * .5F; + float rY = finalradiusY > 0 ? MathF.Min(finalradiusY, sourceRectangle.Height * .5F) : sourceRectangle.Height * .5F; float maxDistance = MathF.Sqrt((rX * rX) + (rY * rY)); // Align start/end positions. diff --git a/src/ImageSharp/Processing/Processors/Transforms/AutoRotateProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/AutoRotateProcessor.cs new file mode 100644 index 0000000000..f18eb80926 --- /dev/null +++ b/src/ImageSharp/Processing/Processors/Transforms/AutoRotateProcessor.cs @@ -0,0 +1,103 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing.Processors +{ + using System; + using System.Threading.Tasks; + + using ImageSharp.Memory; + using ImageSharp.PixelFormats; + using SixLabors.Primitives; + + /// + /// Adjusts an image so that its orientation is suitable for viewing. Adjustments are based on EXIF metadata embedded in the image. + /// + /// The pixel format. + internal class AutoRotateProcessor : ImageProcessor + where TPixel : struct, IPixel + { + /// + /// Initializes a new instance of the class. + /// + public AutoRotateProcessor() + { + } + + /// + protected override void OnApply(ImageBase sourceBase, Rectangle sourceRectangle) + { + // can only apply to the origional image + var source = sourceBase as Image; + if (source != null) + { + Orientation orientation = GetExifOrientation(source); + + switch (orientation) + { + case Orientation.TopRight: + new FlipProcessor(FlipType.Horizontal).Apply(source, sourceRectangle); + break; + + case Orientation.BottomRight: + new RotateProcessor() { Angle = (int)RotateType.Rotate180, Expand = false }.Apply(source, sourceRectangle); + break; + + case Orientation.BottomLeft: + new FlipProcessor(FlipType.Vertical).Apply(source, sourceRectangle); + break; + + case Orientation.LeftTop: + new RotateProcessor() { Angle = (int)RotateType.Rotate90, Expand = false }.Apply(source, sourceRectangle); + new FlipProcessor(FlipType.Horizontal).Apply(source, sourceRectangle); + break; + + case Orientation.RightTop: + new RotateProcessor() { Angle = (int)RotateType.Rotate90, Expand = false }.Apply(source, sourceRectangle); + break; + + case Orientation.RightBottom: + new FlipProcessor(FlipType.Vertical).Apply(source, sourceRectangle); + new RotateProcessor() { Angle = (int)RotateType.Rotate270, Expand = false }.Apply(source, sourceRectangle); + break; + + case Orientation.LeftBottom: + new RotateProcessor() { Angle = (int)RotateType.Rotate270, Expand = false }.Apply(source, sourceRectangle); + break; + + case Orientation.Unknown: + case Orientation.TopLeft: + default: + break; + } + } + } + + /// + /// Returns the current EXIF orientation + /// + /// The image to auto rotate. + /// The + private static Orientation GetExifOrientation(Image source) + { + if (source.MetaData.ExifProfile == null) + { + return Orientation.Unknown; + } + + ExifValue value = source.MetaData.ExifProfile.GetValue(ExifTag.Orientation); + if (value == null) + { + return Orientation.Unknown; + } + + var orientation = (Orientation)value.Value; + + source.MetaData.ExifProfile.SetValue(ExifTag.Orientation, (ushort)Orientation.TopLeft); + + return orientation; + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Processing/Processors/Transforms/ResamplingWeightedProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/ResamplingWeightedProcessor.cs index 0186a8fa8e..0f1e166fdc 100644 --- a/src/ImageSharp/Processing/Processors/Transforms/ResamplingWeightedProcessor.cs +++ b/src/ImageSharp/Processing/Processors/Transforms/ResamplingWeightedProcessor.cs @@ -46,19 +46,19 @@ protected ResamplingWeightedProcessor(IResampler sampler, int width, int height, public IResampler Sampler { get; } /// - /// Gets the width. + /// Gets or sets the width. /// - public int Width { get; } + public int Width { get; protected set; } /// - /// Gets the height. + /// Gets or sets the height. /// - public int Height { get; } + public int Height { get; protected set; } /// - /// Gets the resize rectangle. + /// Gets or sets the resize rectangle. /// - public Rectangle ResizeRectangle { get; } + public Rectangle ResizeRectangle { get; protected set; } /// /// Gets or sets the horizontal weights. diff --git a/src/ImageSharp/Processing/Transforms/AutoOrient.cs b/src/ImageSharp/Processing/Transforms/AutoOrient.cs index 07e5d5bc9a..fb7bfb4ac7 100644 --- a/src/ImageSharp/Processing/Transforms/AutoOrient.cs +++ b/src/ImageSharp/Processing/Transforms/AutoOrient.cs @@ -20,68 +20,8 @@ public static partial class ImageExtensions /// The pixel format. /// The image to auto rotate. /// The - public static Image AutoOrient(this Image source) + public static IImageOperations AutoOrient(this IImageOperations source) where TPixel : struct, IPixel - { - Orientation orientation = GetExifOrientation(source); - - switch (orientation) - { - case Orientation.TopRight: - return source.Flip(FlipType.Horizontal); - - case Orientation.BottomRight: - return source.Rotate(RotateType.Rotate180); - - case Orientation.BottomLeft: - return source.Flip(FlipType.Vertical); - - case Orientation.LeftTop: - return source.Rotate(RotateType.Rotate90) - .Flip(FlipType.Horizontal); - - case Orientation.RightTop: - return source.Rotate(RotateType.Rotate90); - - case Orientation.RightBottom: - return source.Flip(FlipType.Vertical) - .Rotate(RotateType.Rotate270); - - case Orientation.LeftBottom: - return source.Rotate(RotateType.Rotate270); - - case Orientation.Unknown: - case Orientation.TopLeft: - default: - return source; - } - } - - /// - /// Returns the current EXIF orientation - /// - /// The pixel format. - /// The image to auto rotate. - /// The - private static Orientation GetExifOrientation(Image source) - where TPixel : struct, IPixel - { - if (source.MetaData.ExifProfile == null) - { - return Orientation.Unknown; - } - - ExifValue value = source.MetaData.ExifProfile.GetValue(ExifTag.Orientation); - if (value == null) - { - return Orientation.Unknown; - } - - var orientation = (Orientation)value.Value; - - source.MetaData.ExifProfile.SetValue(ExifTag.Orientation, (ushort)Orientation.TopLeft); - - return orientation; - } + => source.ApplyProcessor(new Processing.Processors.AutoRotateProcessor()); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Transforms/Crop.cs b/src/ImageSharp/Processing/Transforms/Crop.cs index 94e9ba1f49..c518ac5ac1 100644 --- a/src/ImageSharp/Processing/Transforms/Crop.cs +++ b/src/ImageSharp/Processing/Transforms/Crop.cs @@ -25,11 +25,9 @@ public static partial class ImageExtensions /// The target image width. /// The target image height. /// The - public static Image Crop(this Image source, int width, int height) + public static IImageOperations Crop(this IImageOperations source, int width, int height) where TPixel : struct, IPixel - { - return Crop(source, new Rectangle(0, 0, width, height)); - } + => Crop(source, new Rectangle(0, 0, width, height)); /// /// Crops an image to the given rectangle. @@ -40,13 +38,8 @@ public static Image Crop(this Image source, int width, i /// The structure that specifies the portion of the image object to retain. /// /// The - public static Image Crop(this Image source, Rectangle cropRectangle) + public static IImageOperations Crop(this IImageOperations source, Rectangle cropRectangle) where TPixel : struct, IPixel - { - CropProcessor processor = new CropProcessor(cropRectangle); - - source.ApplyProcessor(processor, source.Bounds); - return source; - } + => source.ApplyProcessor(new CropProcessor(cropRectangle)); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Transforms/EntropyCrop.cs b/src/ImageSharp/Processing/Transforms/EntropyCrop.cs index 2f4a8e3833..00f4043215 100644 --- a/src/ImageSharp/Processing/Transforms/EntropyCrop.cs +++ b/src/ImageSharp/Processing/Transforms/EntropyCrop.cs @@ -23,13 +23,8 @@ public static partial class ImageExtensions /// The image to crop. /// The threshold for entropic density. /// The - public static Image EntropyCrop(this Image source, float threshold = .5f) + public static IImageOperations EntropyCrop(this IImageOperations source, float threshold = .5f) where TPixel : struct, IPixel - { - EntropyCropProcessor processor = new EntropyCropProcessor(threshold); - - source.ApplyProcessor(processor, source.Bounds); - return source; - } + => source.ApplyProcessor(new EntropyCropProcessor(threshold)); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Transforms/Flip.cs b/src/ImageSharp/Processing/Transforms/Flip.cs index 1c8baebf13..6cde1257c9 100644 --- a/src/ImageSharp/Processing/Transforms/Flip.cs +++ b/src/ImageSharp/Processing/Transforms/Flip.cs @@ -24,13 +24,8 @@ public static partial class ImageExtensions /// The image to rotate, flip, or both. /// The to perform the flip. /// The - public static Image Flip(this Image source, FlipType flipType) + public static IImageOperations Flip(this IImageOperations source, FlipType flipType) where TPixel : struct, IPixel - { - FlipProcessor processor = new FlipProcessor(flipType); - - source.ApplyProcessor(processor, source.Bounds); - return source; - } + => source.ApplyProcessor(new FlipProcessor(flipType)); } } \ No newline at end of file diff --git a/src/ImageSharp/Processing/Transforms/Pad.cs b/src/ImageSharp/Processing/Transforms/Pad.cs index 8138fd7654..fb064f5ce5 100644 --- a/src/ImageSharp/Processing/Transforms/Pad.cs +++ b/src/ImageSharp/Processing/Transforms/Pad.cs @@ -26,7 +26,7 @@ public static partial class ImageExtensions /// The new width. /// The new height. /// The . - public static Image Pad(this Image source, int width, int height) + public static IImageOperations Pad(this IImageOperations source, int width, int height) where TPixel : struct, IPixel { ResizeOptions options = new ResizeOptions diff --git a/src/ImageSharp/Processing/Transforms/Resize.cs b/src/ImageSharp/Processing/Transforms/Resize.cs index e00faf10ea..6ccea5f42d 100644 --- a/src/ImageSharp/Processing/Transforms/Resize.cs +++ b/src/ImageSharp/Processing/Transforms/Resize.cs @@ -24,23 +24,28 @@ public static partial class ImageExtensions /// The resize options. /// The /// Passing zero for one of height or width within the resize options will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, ResizeOptions options) + public static IImageOperations Resize(this IImageOperations source, ResizeOptions options) where TPixel : struct, IPixel { - // Ensure size is populated across both dimensions. - if (options.Size.Width == 0 && options.Size.Height > 0) + return source.Run(img => { - options.Size = new Size((int)MathF.Round(source.Width * options.Size.Height / (float)source.Height), options.Size.Height); - } + // cheat and bound through a run, inside here we should just be mutating, this reallt needs moving over to a processor - if (options.Size.Height == 0 && options.Size.Width > 0) - { - options.Size = new Size(options.Size.Width, (int)MathF.Round(source.Height * options.Size.Width / (float)source.Width)); - } + // Ensure size is populated across both dimensions. + if (options.Size.Width == 0 && options.Size.Height > 0) + { + options.Size = new Size((int)MathF.Round(img.Width * options.Size.Height / (float)img.Height), options.Size.Height); + } + + if (options.Size.Height == 0 && options.Size.Width > 0) + { + options.Size = new Size(options.Size.Width, (int)MathF.Round(img.Height * options.Size.Width / (float)img.Width)); + } - Rectangle targetRectangle = ResizeHelper.CalculateTargetLocationAndBounds(source, options); + Rectangle targetRectangle = ResizeHelper.CalculateTargetLocationAndBounds(img, options); - return Resize(source, options.Size.Width, options.Size.Height, options.Sampler, source.Bounds, targetRectangle, options.Compand); + img.Mutate(x => Resize(x, options.Size.Width, options.Size.Height, options.Sampler, targetRectangle, options.Compand)); + }); } /// @@ -51,7 +56,7 @@ public static Image Resize(this Image source, ResizeOpti /// The target image size. /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, Size size) + public static IImageOperations Resize(this IImageOperations source, Size size) where TPixel : struct, IPixel { return Resize(source, size.Width, size.Height, new BicubicResampler(), false); @@ -66,7 +71,7 @@ public static Image Resize(this Image source, Size size) /// Whether to compress and expand the image color-space to gamma correct the image during processing. /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, Size size, bool compand) + public static IImageOperations Resize(this IImageOperations source, Size size, bool compand) where TPixel : struct, IPixel { return Resize(source, size.Width, size.Height, new BicubicResampler(), compand); @@ -81,7 +86,7 @@ public static Image Resize(this Image source, Size size, /// The target image height. /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, int width, int height) + public static IImageOperations Resize(this IImageOperations source, int width, int height) where TPixel : struct, IPixel { return Resize(source, width, height, new BicubicResampler(), false); @@ -97,7 +102,7 @@ public static Image Resize(this Image source, int width, /// Whether to compress and expand the image color-space to gamma correct the image during processing. /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, int width, int height, bool compand) + public static IImageOperations Resize(this IImageOperations source, int width, int height, bool compand) where TPixel : struct, IPixel { return Resize(source, width, height, new BicubicResampler(), compand); @@ -113,7 +118,7 @@ public static Image Resize(this Image source, int width, /// The to perform the resampling. /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, int width, int height, IResampler sampler) + public static IImageOperations Resize(this IImageOperations source, int width, int height, IResampler sampler) where TPixel : struct, IPixel { return Resize(source, width, height, sampler, false); @@ -130,10 +135,10 @@ public static Image Resize(this Image source, int width, /// Whether to compress and expand the image color-space to gamma correct the image during processing. /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, int width, int height, IResampler sampler, bool compand) + public static IImageOperations Resize(this IImageOperations source, int width, int height, IResampler sampler, bool compand) where TPixel : struct, IPixel { - return Resize(source, width, height, sampler, source.Bounds, new Rectangle(0, 0, width, height), compand); + return Resize(source, width, height, sampler, new Rectangle(0, 0, width, height), compand); } /// @@ -154,28 +159,69 @@ public static Image Resize(this Image source, int width, /// Whether to compress and expand the image color-space to gamma correct the image during processing. /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image - public static Image Resize(this Image source, int width, int height, IResampler sampler, Rectangle sourceRectangle, Rectangle targetRectangle, bool compand) + public static IImageOperations Resize(this IImageOperations source, int width, int height, IResampler sampler, Rectangle sourceRectangle, Rectangle targetRectangle, bool compand) where TPixel : struct, IPixel { - if (width == 0 && height > 0) - { - width = (int)MathF.Round(source.Width * height / (float)source.Height); - targetRectangle.Width = width; - } + return source.Run(img => + { + // todo : stop cheeting here and move this stuff into the processors itself + if (width == 0 && height > 0) + { + width = (int)MathF.Round(img.Width * height / (float)img.Height); + targetRectangle.Width = width; + } + + if (height == 0 && width > 0) + { + height = (int)MathF.Round(img.Height * width / (float)img.Width); + targetRectangle.Height = height; + } + + Guard.MustBeGreaterThan(width, 0, nameof(width)); + Guard.MustBeGreaterThan(height, 0, nameof(height)); + + img.Mutate(x => x.ApplyProcessor(new ResizeProcessor(sampler, width, height, targetRectangle) { Compand = compand }, sourceRectangle)); + }); + } - if (height == 0 && width > 0) + /// + /// Resizes an image to the given width and height with the given sampler and + /// source rectangle. + /// + /// The pixel format. + /// The image to resize. + /// The target image width. + /// The target image height. + /// The to perform the resampling. + /// + /// The structure that specifies the portion of the target image object to draw to. + /// + /// Whether to compress and expand the image color-space to gamma correct the image during processing. + /// The + /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image + public static IImageOperations Resize(this IImageOperations source, int width, int height, IResampler sampler, Rectangle targetRectangle, bool compand) + where TPixel : struct, IPixel + { + return source.Run(img => { - height = (int)MathF.Round(source.Height * width / (float)source.Width); - targetRectangle.Height = height; - } - - Guard.MustBeGreaterThan(width, 0, nameof(width)); - Guard.MustBeGreaterThan(height, 0, nameof(height)); - - var processor = new ResizeProcessor(sampler, width, height, targetRectangle) { Compand = compand }; - - source.ApplyProcessor(processor, sourceRectangle); - return source; + // todo : stop cheeting here and move this stuff into the processors itself + if (width == 0 && height > 0) + { + width = (int)MathF.Round(img.Width * height / (float)img.Height); + targetRectangle.Width = width; + } + + if (height == 0 && width > 0) + { + height = (int)MathF.Round(img.Height * width / (float)img.Width); + targetRectangle.Height = height; + } + + Guard.MustBeGreaterThan(width, 0, nameof(width)); + Guard.MustBeGreaterThan(height, 0, nameof(height)); + + img.Mutate(x => x.ApplyProcessor(new ResizeProcessor(sampler, width, height, targetRectangle) { Compand = compand })); + }); } } } diff --git a/src/ImageSharp/Processing/Transforms/Rotate.cs b/src/ImageSharp/Processing/Transforms/Rotate.cs index af7c06a27e..92349dba37 100644 --- a/src/ImageSharp/Processing/Transforms/Rotate.cs +++ b/src/ImageSharp/Processing/Transforms/Rotate.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The image to rotate. /// The angle in degrees to perform the rotation. /// The - public static Image Rotate(this Image source, float degrees) + public static IImageOperations Rotate(this IImageOperations source, float degrees) where TPixel : struct, IPixel { return Rotate(source, degrees, true); @@ -37,11 +37,9 @@ public static Image Rotate(this Image source, float degr /// The image to rotate. /// The to perform the rotation. /// The - public static Image Rotate(this Image source, RotateType rotateType) + public static IImageOperations Rotate(this IImageOperations source, RotateType rotateType) where TPixel : struct, IPixel - { - return Rotate(source, (float)rotateType, false); - } + => Rotate(source, (float)rotateType, false); /// /// Rotates an image by the given angle in degrees. @@ -51,13 +49,8 @@ public static Image Rotate(this Image source, RotateType /// The angle in degrees to perform the rotation. /// Whether to expand the image to fit the rotated result. /// The - public static Image Rotate(this Image source, float degrees, bool expand) + public static IImageOperations Rotate(this IImageOperations source, float degrees, bool expand) where TPixel : struct, IPixel - { - RotateProcessor processor = new RotateProcessor { Angle = degrees, Expand = expand }; - - source.ApplyProcessor(processor, source.Bounds); - return source; - } + => source.ApplyProcessor(new RotateProcessor { Angle = degrees, Expand = expand }); } } diff --git a/src/ImageSharp/Processing/Transforms/RotateFlip.cs b/src/ImageSharp/Processing/Transforms/RotateFlip.cs index 805deb8d16..fda11d8338 100644 --- a/src/ImageSharp/Processing/Transforms/RotateFlip.cs +++ b/src/ImageSharp/Processing/Transforms/RotateFlip.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The to perform the rotation. /// The to perform the flip. /// The - public static Image RotateFlip(this Image source, RotateType rotateType, FlipType flipType) + public static IImageOperations RotateFlip(this IImageOperations source, RotateType rotateType, FlipType flipType) where TPixel : struct, IPixel { return source.Rotate(rotateType).Flip(flipType); diff --git a/src/ImageSharp/Processing/Transforms/Skew.cs b/src/ImageSharp/Processing/Transforms/Skew.cs index d42d79225b..f38606eda1 100644 --- a/src/ImageSharp/Processing/Transforms/Skew.cs +++ b/src/ImageSharp/Processing/Transforms/Skew.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The angle in degrees to perform the rotation along the x-axis. /// The angle in degrees to perform the rotation along the y-axis. /// The - public static Image Skew(this Image source, float degreesX, float degreesY) + public static IImageOperations Skew(this IImageOperations source, float degreesX, float degreesY) where TPixel : struct, IPixel { return Skew(source, degreesX, degreesY, true); @@ -39,13 +39,8 @@ public static Image Skew(this Image source, float degree /// The angle in degrees to perform the rotation along the y-axis. /// Whether to expand the image to fit the skewed result. /// The - public static Image Skew(this Image source, float degreesX, float degreesY, bool expand) + public static IImageOperations Skew(this IImageOperations source, float degreesX, float degreesY, bool expand) where TPixel : struct, IPixel - { - SkewProcessor processor = new SkewProcessor { AngleX = degreesX, AngleY = degreesY, Expand = expand }; - - source.ApplyProcessor(processor, source.Bounds); - return source; - } + => source.ApplyProcessor(new SkewProcessor { AngleX = degreesX, AngleY = degreesY, Expand = expand }); } } diff --git a/src/ImageSharp/Quantizers/Quantize.cs b/src/ImageSharp/Quantizers/Quantize.cs index a235092787..2b5130f8c1 100644 --- a/src/ImageSharp/Quantizers/Quantize.cs +++ b/src/ImageSharp/Quantizers/Quantize.cs @@ -24,7 +24,7 @@ public static partial class ImageExtensions /// The quantization mode to apply to perform the operation. /// The maximum number of colors to return. Defaults to 256. /// The . - public static Image Quantize(this Image source, Quantization mode = Quantization.Octree, int maxColors = 256) + public static IImageOperations Quantize(this IImageOperations source, Quantization mode = Quantization.Octree, int maxColors = 256) where TPixel : struct, IPixel { IQuantizer quantizer; @@ -54,31 +54,34 @@ public static Image Quantize(this Image source, Quantiza /// The quantizer to apply to perform the operation. /// The maximum number of colors to return. /// The . - public static Image Quantize(this Image source, IQuantizer quantizer, int maxColors) + public static IImageOperations Quantize(this IImageOperations source, IQuantizer quantizer, int maxColors) where TPixel : struct, IPixel { - QuantizedImage quantized = quantizer.Quantize(source, maxColors); - int palleteCount = quantized.Palette.Length - 1; - - using (PixelAccessor pixels = new PixelAccessor(quantized.Width, quantized.Height)) + return source.Run(img => { - Parallel.For( - 0, - pixels.Height, - source.Configuration.ParallelOptions, - y => - { - for (int x = 0; x < pixels.Width; x++) + // TODO : move helper logic into the processor + QuantizedImage quantized = quantizer.Quantize(img, maxColors); + int palleteCount = quantized.Palette.Length - 1; + + using (PixelAccessor pixels = new PixelAccessor(quantized.Width, quantized.Height)) + { + Parallel.For( + 0, + pixels.Height, + img.Configuration.ParallelOptions, + y => { - int i = x + (y * pixels.Width); - TPixel color = quantized.Palette[Math.Min(palleteCount, quantized.Pixels[i])]; - pixels[x, y] = color; - } - }); + for (int x = 0; x < pixels.Width; x++) + { + int i = x + (y * pixels.Width); + TPixel color = quantized.Palette[Math.Min(palleteCount, quantized.Pixels[i])]; + pixels[x, y] = color; + } + }); - source.SwapPixelsBuffers(pixels); - return source; - } + img.SwapPixelsBuffers(pixels); + } + }); } } } \ No newline at end of file diff --git a/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs b/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs index 66104944ea..0a5750fe93 100644 --- a/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs +++ b/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs @@ -47,7 +47,7 @@ public void DrawLinesCore() { using (Image image = new Image(800, 800)) { - image.DrawBeziers( + image.Mutate(x => x.DrawBeziers( Rgba32.HotPink, 10, new SixLabors.Primitives.PointF[] { @@ -55,7 +55,7 @@ public void DrawLinesCore() new Vector2(30, 10), new Vector2(240, 30), new Vector2(300, 500) - }); + })); using (MemoryStream ms = new MemoryStream()) { diff --git a/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs b/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs index a6af5a9769..3a3b5f30db 100644 --- a/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs +++ b/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs @@ -45,14 +45,14 @@ public void DrawLinesCore() { using (Image image = new Image(800, 800)) { - image.DrawLines( + image.Mutate(x => x.DrawLines( Rgba32.HotPink, 10, new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(550, 50), new Vector2(200, 400) - }); + })); using (MemoryStream ms = new MemoryStream()) { diff --git a/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs b/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs index 3abd3b889d..b9a9605898 100644 --- a/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs +++ b/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs @@ -47,14 +47,14 @@ public void DrawPolygonCore() { using (Image image = new Image(800, 800)) { - image.DrawPolygon( + image.Mutate(x => x.DrawPolygon( Rgba32.HotPink, 10, new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(550, 50), new Vector2(200, 400) - }); + })); using (MemoryStream ms = new MemoryStream()) { diff --git a/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs b/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs index b7d1b96b74..b0981b94d5 100644 --- a/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs +++ b/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs @@ -55,13 +55,13 @@ public void DrawSolidPolygonCore() { using (Image image = new Image(800, 800)) { - image.FillPolygon( + image.Mutate(x => x.FillPolygon( Rgba32.HotPink, new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(550, 50), new Vector2(200, 400) - }); + })); using (MemoryStream ms = new MemoryStream()) { @@ -75,9 +75,9 @@ public void DrawSolidPolygonCoreCahced() { using (Image image = new Image(800, 800)) { - image.Fill( + image.Mutate(x => x.Fill( Rgba32.HotPink, - this.shape); + this.shape)); using (MemoryStream ms = new MemoryStream()) { diff --git a/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs b/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs index 0738812a1c..6219a97f68 100644 --- a/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs +++ b/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs @@ -39,7 +39,7 @@ public CoreSize FillRactangleCore() { using (Image image = new Image(800, 800)) { - image.Fill(Rgba32.HotPink, new CoreRectangle(10, 10, 190, 140)); + image.Mutate(x => x.Fill(Rgba32.HotPink, new CoreRectangle(10, 10, 190, 140))); return new CoreSize(image.Width, image.Height); } @@ -50,13 +50,13 @@ public CoreSize FillPolygonCore() { using (Image image = new Image(800, 800)) { - image.FillPolygon( + image.Mutate(x => x.FillPolygon( Rgba32.HotPink, new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 10), new Vector2(200, 150), - new Vector2(10, 150) }); + new Vector2(10, 150) })); return new CoreSize(image.Width, image.Height); } diff --git a/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs b/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs index aa97efe00b..fec6332d25 100644 --- a/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs +++ b/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs @@ -40,7 +40,7 @@ public void DrawPatternPolygon3Core() { using (Image image = new Image(800, 800)) { - image.Fill(CoreBrushes.BackwardDiagonal(Rgba32.HotPink)); + image.Mutate(x => x.Fill(CoreBrushes.BackwardDiagonal(Rgba32.HotPink))); using (MemoryStream ms = new MemoryStream()) { diff --git a/tests/ImageSharp.Benchmarks/Samplers/Crop.cs b/tests/ImageSharp.Benchmarks/Samplers/Crop.cs index cb13378a13..ee8fdcf250 100644 --- a/tests/ImageSharp.Benchmarks/Samplers/Crop.cs +++ b/tests/ImageSharp.Benchmarks/Samplers/Crop.cs @@ -41,7 +41,7 @@ public CoreSize CropResizeCore() { using (Image image = new Image(800, 800)) { - image.Crop(100, 100); + image.Mutate(x => x.Crop(100, 100)); return new CoreSize(image.Width, image.Height); } } diff --git a/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs b/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs index 1f69030a00..380a0abb03 100644 --- a/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs +++ b/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs @@ -38,17 +38,17 @@ public void Cleanup() [Benchmark(Description = "ImageSharp DetectEdges")] public void ImageProcessorCoreDetectEdges() { - this.image.DetectEdges(EdgeDetection.Kayyali); - this.image.DetectEdges(EdgeDetection.Kayyali); - this.image.DetectEdges(EdgeDetection.Kirsch); - this.image.DetectEdges(EdgeDetection.Lapacian3X3); - this.image.DetectEdges(EdgeDetection.Lapacian5X5); - this.image.DetectEdges(EdgeDetection.LaplacianOfGaussian); - this.image.DetectEdges(EdgeDetection.Prewitt); - this.image.DetectEdges(EdgeDetection.RobertsCross); - this.image.DetectEdges(EdgeDetection.Robinson); - this.image.DetectEdges(EdgeDetection.Scharr); - this.image.DetectEdges(EdgeDetection.Sobel); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Kayyali)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Kayyali)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Kirsch)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Lapacian3X3)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Lapacian5X5)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.LaplacianOfGaussian)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Prewitt)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.RobertsCross)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Robinson)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Scharr)); + this.image.Mutate(x => x.DetectEdges(EdgeDetection.Sobel)); } } } diff --git a/tests/ImageSharp.Benchmarks/Samplers/Glow.cs b/tests/ImageSharp.Benchmarks/Samplers/Glow.cs index 2aa8df96ca..53cdb1b93e 100644 --- a/tests/ImageSharp.Benchmarks/Samplers/Glow.cs +++ b/tests/ImageSharp.Benchmarks/Samplers/Glow.cs @@ -26,7 +26,7 @@ public class Glow : BenchmarkBase [GlobalSetup] public void Setup() { - this.bulk = new GlowProcessor(NamedColors.Beige, GraphicsOptions.Default) { Radius = 800 * .5f, }; + this.bulk = new GlowProcessor(NamedColors.Beige, 800 * .5f, GraphicsOptions.Default); this.parallel = new GlowProcessorParallel(NamedColors.Beige) { Radius = 800 * .5f, }; } diff --git a/tests/ImageSharp.Benchmarks/Samplers/Resize.cs b/tests/ImageSharp.Benchmarks/Samplers/Resize.cs index 3873400698..db22167704 100644 --- a/tests/ImageSharp.Benchmarks/Samplers/Resize.cs +++ b/tests/ImageSharp.Benchmarks/Samplers/Resize.cs @@ -41,7 +41,7 @@ public CoreSize ResizeCore() { using (Image image = new Image(2000, 2000)) { - image.Resize(400, 400); + image.Mutate(x => x.Resize(400, 400)); return new CoreSize(image.Width, image.Height); } } diff --git a/tests/ImageSharp.Tests/Drawing/BeziersTests.cs b/tests/ImageSharp.Tests/Drawing/BeziersTests.cs index 7ddc2de5a4..1b3aeacb15 100644 --- a/tests/ImageSharp.Tests/Drawing/BeziersTests.cs +++ b/tests/ImageSharp.Tests/Drawing/BeziersTests.cs @@ -24,15 +24,15 @@ public void ImageShouldBeOverlayedByBezierLine() string path = this.CreateOutputDirectory("Drawing", "BezierLine"); using (Image image = new Image(500, 500)) { - image.BackgroundColor(Rgba32.Blue) + image.Mutate(x => x.BackgroundColor(Rgba32.Blue) .DrawBeziers(Rgba32.HotPink, 5, new SixLabors.Primitives.PointF[] { new Vector2(10, 400), new Vector2(30, 10), new Vector2(240, 30), new Vector2(300, 400) - }) - .Save($"{path}/Simple.png"); + })); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -63,7 +63,7 @@ public void ImageShouldBeOverlayedBezierLineWithOpacity() using (Image image = new Image(500, 500)) { - image.BackgroundColor(Rgba32.Blue) + image.Mutate(x => x.BackgroundColor(Rgba32.Blue) .DrawBeziers(color, 10, new SixLabors.Primitives.PointF[]{ @@ -71,8 +71,8 @@ public void ImageShouldBeOverlayedBezierLineWithOpacity() new Vector2(30, 10), new Vector2(240, 30), new Vector2(300, 400) - }) - .Save($"{path}/Opacity.png"); + })); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); diff --git a/tests/ImageSharp.Tests/Drawing/BlendedShapes.cs b/tests/ImageSharp.Tests/Drawing/BlendedShapes.cs index 40a1cb3d3c..e1ff00ca23 100644 --- a/tests/ImageSharp.Tests/Drawing/BlendedShapes.cs +++ b/tests/ImageSharp.Tests/Drawing/BlendedShapes.cs @@ -27,11 +27,12 @@ public void DrawBlendedValues(TestImageProvider provider, PixelB { var scaleX = (img.Width / 100); var scaleY = (img.Height / 100); - img.Fill(NamedColors.DarkBlue, new Rectangle(0 * scaleX, 40 * scaleY, 100 * scaleX, 20 * scaleY)); - img.Fill(NamedColors.HotPink, new Rectangle(20 * scaleX, 0 * scaleY, 30 * scaleX, 100 * scaleY), new ImageSharp.GraphicsOptions(true) - { - BlenderMode = mode - }); + img.Mutate(x=>x + .Fill(NamedColors.DarkBlue, new Rectangle(0 * scaleX, 40 * scaleY, 100 * scaleX, 20 * scaleY)) + .Fill(NamedColors.HotPink, new Rectangle(20 * scaleX, 0 * scaleY, 30 * scaleX, 100 * scaleY), new ImageSharp.GraphicsOptions(true) + { + BlenderMode = mode + })); img.DebugSave(provider, new { mode }); } } @@ -45,15 +46,15 @@ public void DrawBlendedValues_transparent(TestImageProvider prov { var scaleX = (img.Width / 100); var scaleY = (img.Height / 100); - img.Fill(NamedColors.DarkBlue, new Rectangle(0* scaleX, 40 * scaleY, 100 * scaleX, 20 * scaleY)); - img.Fill(NamedColors.HotPink, new Rectangle(20 * scaleX, 0 * scaleY, 30 * scaleX, 100 * scaleY), new ImageSharp.GraphicsOptions(true) + img.Mutate(x=>x.Fill(NamedColors.DarkBlue, new Rectangle(0* scaleX, 40 * scaleY, 100 * scaleX, 20 * scaleY))); + img.Mutate(x => x.Fill(NamedColors.HotPink, new Rectangle(20 * scaleX, 0 * scaleY, 30 * scaleX, 100 * scaleY), new ImageSharp.GraphicsOptions(true) { BlenderMode = mode - }); - img.Fill(NamedColors.Transparent, new SixLabors.Shapes.EllipsePolygon(40 * scaleX, 50 * scaleY, 50 * scaleX, 50 * scaleY), new ImageSharp.GraphicsOptions(true) + })); + img.Mutate(x => x.Fill(NamedColors.Transparent, new SixLabors.Shapes.EllipsePolygon(40 * scaleX, 50 * scaleY, 50 * scaleX, 50 * scaleY), new ImageSharp.GraphicsOptions(true) { BlenderMode = mode - }); + })); img.DebugSave(provider, new { mode }); } } @@ -67,20 +68,20 @@ public void DrawBlendedValues_transparent50Percent(TestImageProvider.DarkBlue, new Rectangle(0 * scaleX, 40, 100 * scaleX, 20* scaleY)); - img.Fill(NamedColors.HotPink, new Rectangle(20 * scaleX, 0, 30 * scaleX, 100 * scaleY), new ImageSharp.GraphicsOptions(true) + img.Mutate(x=>x.Fill(NamedColors.DarkBlue, new Rectangle(0 * scaleX, 40, 100 * scaleX, 20* scaleY))); + img.Mutate(x => x.Fill(NamedColors.HotPink, new Rectangle(20 * scaleX, 0, 30 * scaleX, 100 * scaleY), new ImageSharp.GraphicsOptions(true) { BlenderMode = mode - }); + })); var c = NamedColors.Red.ToVector4(); c.W *= 0.5f; TPixel pixel = default(TPixel); pixel.PackFromVector4(c); - img.Fill(pixel, new SixLabors.Shapes.EllipsePolygon(40 * scaleX, 50 * scaleY, 50 * scaleX, 50 * scaleY), new ImageSharp.GraphicsOptions(true) + img.Mutate(x => x.Fill(pixel, new SixLabors.Shapes.EllipsePolygon(40 * scaleX, 50 * scaleY, 50 * scaleX, 50 * scaleY), new ImageSharp.GraphicsOptions(true) { BlenderMode = mode - }); + })); img.DebugSave(provider, new { mode }); } } @@ -96,16 +97,11 @@ public void DrawBlendedValues_doldidEllips(TestImageProvider pro { var scaleX = (img.Width / 100); var scaleY = (img.Height / 100); - img.Fill(NamedColors.DarkBlue, new Rectangle(0 * scaleX, 40* scaleY, 100 * scaleX, 20 * scaleY)); - //img.Fill(NamedColors.HotPink, new Rectangle(20 * scaleX, 0 * scaleY, 30 * scaleX, 100 * scaleY), new ImageSharp.GraphicsOptions(true) - //{ - // BlenderMode = mode - //}); - - img.Fill(NamedColors.Black, new SixLabors.Shapes.EllipsePolygon(40 * scaleX, 50 * scaleY, 50 * scaleX, 50 * scaleY), new ImageSharp.GraphicsOptions(true) + img.Mutate(x => x.Fill(NamedColors.DarkBlue, new Rectangle(0 * scaleX, 40* scaleY, 100 * scaleX, 20 * scaleY))); + img.Mutate(x => x.Fill(NamedColors.Black, new SixLabors.Shapes.EllipsePolygon(40 * scaleX, 50 * scaleY, 50 * scaleX, 50 * scaleY), new ImageSharp.GraphicsOptions(true) { BlenderMode = mode - }); + })); img.DebugSave(provider, new { mode }); } } diff --git a/tests/ImageSharp.Tests/Drawing/DrawImageTest.cs b/tests/ImageSharp.Tests/Drawing/DrawImageTest.cs index 728ed749a2..29e3d94fb3 100644 --- a/tests/ImageSharp.Tests/Drawing/DrawImageTest.cs +++ b/tests/ImageSharp.Tests/Drawing/DrawImageTest.cs @@ -40,8 +40,8 @@ public void ImageShouldApplyDrawImage(TestImageProvider provider using (Image image = provider.GetImage()) using (Image blend = Image.Load(TestFile.Create(TestImages.Bmp.Car).Bytes)) { - image.DrawImage(blend, mode, .75f, new Size(image.Width / 2, image.Height / 2), new Point(image.Width / 4, image.Height / 4)) - .DebugSave(provider, new { mode }); + image.Mutate(x => x.DrawImage(blend, mode, .75f, new Size(image.Width / 2, image.Height / 2), new Point(image.Width / 4, image.Height / 4))); + image.DebugSave(provider, new { mode }); } } } diff --git a/tests/ImageSharp.Tests/Drawing/DrawPathTests.cs b/tests/ImageSharp.Tests/Drawing/DrawPathTests.cs index da5028f04f..c609aa9918 100644 --- a/tests/ImageSharp.Tests/Drawing/DrawPathTests.cs +++ b/tests/ImageSharp.Tests/Drawing/DrawPathTests.cs @@ -34,10 +34,10 @@ public void ImageShouldBeOverlayedByPath() ShapePath p = new ShapePath(linerSegemnt, bazierSegment); - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Draw(Rgba32.HotPink, 5, p) - .Save($"{path}/Simple.png"); + .Draw(Rgba32.HotPink, 5, p)); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -74,10 +74,10 @@ public void ImageShouldBeOverlayedPathWithOpacity() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Draw(color, 10, p) - .Save($"{path}/Opacity.png"); + .Draw(color, 10, p)); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); @@ -101,12 +101,12 @@ public void PathExtendingOffEdgeOfImageShouldNotBeCropped() string path = this.CreateOutputDirectory("Drawing", "Path"); using (var image = new Image(256, 256)) { - image.Fill(Rgba32.Black); + image.Mutate(x => x.Fill(Rgba32.Black)); var pen = Pens.Solid(Rgba32.White, 5f); for (int i = 0; i < 300; i += 20) { - image.DrawLines(pen, new SixLabors.Primitives.PointF[] { new Vector2(100, 2), new Vector2(-10, i) }); + image.Mutate(x => x.DrawLines(pen, new SixLabors.Primitives.PointF[] { new Vector2(100, 2), new Vector2(-10, i) })); } image diff --git a/tests/ImageSharp.Tests/Drawing/FillPatternTests.cs b/tests/ImageSharp.Tests/Drawing/FillPatternTests.cs index bbabdf0ea6..5dd7c55211 100644 --- a/tests/ImageSharp.Tests/Drawing/FillPatternTests.cs +++ b/tests/ImageSharp.Tests/Drawing/FillPatternTests.cs @@ -21,9 +21,9 @@ private void Test(string name, Rgba32 background, IBrush brush, Rgba32[, string path = this.CreateOutputDirectory("Fill", "PatternBrush"); using (Image image = new Image(20, 20)) { - image + image.Mutate(x => x .Fill(background) - .Fill(brush); + .Fill(brush)); image.Save($"{path}/{name}.png"); @@ -51,7 +51,8 @@ private void Test(string name, Rgba32 background, IBrush brush, Rgba32[, } } } - image.Resize(80, 80).Save($"{path}/{name}x4.png"); + image.Mutate(x => x.Resize(80, 80)); + image.Save($"{path}/{name}x4.png"); } } diff --git a/tests/ImageSharp.Tests/Drawing/FillRegionProcessorTests.cs b/tests/ImageSharp.Tests/Drawing/FillRegionProcessorTests.cs index b04a413857..d0e93e7343 100644 --- a/tests/ImageSharp.Tests/Drawing/FillRegionProcessorTests.cs +++ b/tests/ImageSharp.Tests/Drawing/FillRegionProcessorTests.cs @@ -71,18 +71,16 @@ public void FillOffCanvas() processor.Apply(img, bounds); } - - [Fact] public void DrawOffCanvas() { using (var img = new Image(10, 10)) { - img.DrawLines(new Pen(Rgba32.Black, 10), new SixLabors.Primitives.PointF[] { + img.Mutate(x => x.DrawLines(new Pen(Rgba32.Black, 10), new SixLabors.Primitives.PointF[] { new Vector2(-10, 5), new Vector2(20, 5), - }); + })); } } } diff --git a/tests/ImageSharp.Tests/Drawing/FillSolidBrushTests.cs b/tests/ImageSharp.Tests/Drawing/FillSolidBrushTests.cs index ce127cfe03..f2f6ad06a4 100644 --- a/tests/ImageSharp.Tests/Drawing/FillSolidBrushTests.cs +++ b/tests/ImageSharp.Tests/Drawing/FillSolidBrushTests.cs @@ -24,8 +24,9 @@ public void ImageShouldBeFloodFilledWithColorOnDefaultBackground() string path = this.CreateOutputDirectory("Fill", "SolidBrush"); using (Image image = new Image(500, 500)) { + image.Mutate(x => x + .Fill(Rgba32.HotPink)); image - .Fill(Rgba32.HotPink) .Save($"{path}/DefaultBack.png"); using (PixelAccessor sourcePixels = image.Lock()) @@ -43,10 +44,10 @@ public void ImageShouldBeFloodFilledWithColor() string path = this.CreateOutputDirectory("Fill", "SolidBrush"); using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(Rgba32.HotPink) - .Save($"{path}/Simple.png"); + .Fill(Rgba32.HotPink)); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -65,10 +66,10 @@ public void ImageShouldBeFloodFilledWithColorOpacity() { Rgba32 color = new Rgba32(Rgba32.HotPink.R, Rgba32.HotPink.G, Rgba32.HotPink.B, 150); - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(color) - .Save($"{path}/Opacity.png"); + .Fill(color)); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); diff --git a/tests/ImageSharp.Tests/Drawing/LineComplexPolygonTests.cs b/tests/ImageSharp.Tests/Drawing/LineComplexPolygonTests.cs index e058572fb3..fea7ee8183 100644 --- a/tests/ImageSharp.Tests/Drawing/LineComplexPolygonTests.cs +++ b/tests/ImageSharp.Tests/Drawing/LineComplexPolygonTests.cs @@ -34,10 +34,10 @@ public void ImageShouldBeOverlayedByPolygonOutline() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Draw(Rgba32.HotPink, 5, simplePath.Clip(hole1)) - .Save($"{path}/Simple.png"); + .Draw(Rgba32.HotPink, 5, simplePath.Clip(hole1))); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -81,10 +81,10 @@ public void ImageShouldBeOverlayedByPolygonOutlineNoOverlapping() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Draw(Rgba32.HotPink, 5, simplePath.Clip(hole1)) - .Save($"{path}/SimpleVanishHole.png"); + .Draw(Rgba32.HotPink, 5, simplePath.Clip(hole1))); + image.Save($"{path}/SimpleVanishHole.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -129,10 +129,10 @@ public void ImageShouldBeOverlayedByPolygonOutlineOverlapping() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Draw(Rgba32.HotPink, 5, simplePath.Clip(hole1)) - .Save($"{path}/SimpleOverlapping.png"); + .Draw(Rgba32.HotPink, 5, simplePath.Clip(hole1))); + image.Save($"{path}/SimpleOverlapping.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -172,10 +172,10 @@ public void ImageShouldBeOverlayedByPolygonOutlineDashed() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Draw(Pens.Dash(Rgba32.HotPink, 5), simplePath.Clip(hole1)) - .Save($"{path}/Dashed.png"); + .Draw(Pens.Dash(Rgba32.HotPink, 5), simplePath.Clip(hole1))); + image.Save($"{path}/Dashed.png"); } } @@ -197,10 +197,10 @@ public void ImageShouldBeOverlayedPolygonOutlineWithOpacity() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Draw(color, 5, simplePath.Clip(hole1)) - .Save($"{path}/Opacity.png"); + .Draw(color, 5, simplePath.Clip(hole1))); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); diff --git a/tests/ImageSharp.Tests/Drawing/LineTests.cs b/tests/ImageSharp.Tests/Drawing/LineTests.cs index f47d566967..693bbc28fb 100644 --- a/tests/ImageSharp.Tests/Drawing/LineTests.cs +++ b/tests/ImageSharp.Tests/Drawing/LineTests.cs @@ -23,15 +23,15 @@ public void ImageShouldBeOverlayedByPath() string path = this.CreateOutputDirectory("Drawing", "Lines"); using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(Rgba32.HotPink, 5, new SixLabors.Primitives.PointF[]{ new Vector2(10, 10), new Vector2(200, 150), new Vector2(50, 300) - }) - .Save($"{path}/Simple.png"); + })); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -50,7 +50,7 @@ public void ImageShouldBeOverlayedByPath_NoAntialias() string path = this.CreateOutputDirectory("Drawing", "Lines"); using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(Rgba32.HotPink, 5, new SixLabors.Primitives.PointF[] { @@ -58,8 +58,8 @@ public void ImageShouldBeOverlayedByPath_NoAntialias() new Vector2(200, 150), new Vector2(50, 300) }, - new GraphicsOptions(false)) - .Save($"{path}/Simple_noantialias.png"); + new GraphicsOptions(false))); + image.Save($"{path}/Simple_noantialias.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -78,17 +78,17 @@ public void ImageShouldBeOverlayedByPathDashed() string path = this.CreateOutputDirectory("Drawing", "Lines"); using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(Pens.Dash(Rgba32.HotPink, 5), new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 150), new Vector2(50, 300) - }) - .Save($"{path}/Dashed.png"); - } + })); + image.Save($"{path}/Dashed.png"); } + } [Fact] public void ImageShouldBeOverlayedByPathDotted() @@ -96,17 +96,17 @@ public void ImageShouldBeOverlayedByPathDotted() string path = this.CreateOutputDirectory("Drawing", "Lines"); using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(Pens.Dot(Rgba32.HotPink, 5), new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 150), new Vector2(50, 300) - }) - .Save($"{path}/Dot.png"); - } + })); + image.Save($"{path}/Dot.png"); } + } [Fact] public void ImageShouldBeOverlayedByPathDashDot() @@ -114,17 +114,17 @@ public void ImageShouldBeOverlayedByPathDashDot() string path = this.CreateOutputDirectory("Drawing", "Lines"); using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(Pens.DashDot(Rgba32.HotPink, 5), new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 150), new Vector2(50, 300) - }) - .Save($"{path}/DashDot.png"); - } + })); + image.Save($"{path}/DashDot.png"); } + } [Fact] public void ImageShouldBeOverlayedByPathDashDotDot() @@ -132,15 +132,15 @@ public void ImageShouldBeOverlayedByPathDashDotDot() string path = this.CreateOutputDirectory("Drawing", "Lines"); Image image = new Image(500, 500); - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(Pens.DashDotDot(Rgba32.HotPink, 5), new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 150), new Vector2(50, 300) - }) - .Save($"{path}/DashDotDot.png"); - } + })); + image.Save($"{path}/DashDotDot.png"); + } [Fact] public void ImageShouldBeOverlayedPathWithOpacity() @@ -151,27 +151,27 @@ public void ImageShouldBeOverlayedPathWithOpacity() Image image = new Image(500, 500); - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(color, 10, new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 150), new Vector2(50, 300) - }) - .Save($"{path}/Opacity.png"); + })); + image.Save($"{path}/Opacity.png"); - //shift background color towards forground color by the opacity amount - Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); + //shift background color towards forground color by the opacity amount + Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); - using (PixelAccessor sourcePixels = image.Lock()) - { - Assert.Equal(mergedColor, sourcePixels[11, 11]); + using (PixelAccessor sourcePixels = image.Lock()) + { + Assert.Equal(mergedColor, sourcePixels[11, 11]); - Assert.Equal(mergedColor, sourcePixels[199, 149]); + Assert.Equal(mergedColor, sourcePixels[199, 149]); - Assert.Equal(Rgba32.Blue, sourcePixels[50, 50]); - } + Assert.Equal(Rgba32.Blue, sourcePixels[50, 50]); } + } [Fact] public void ImageShouldBeOverlayedByPathOutline() @@ -180,27 +180,27 @@ public void ImageShouldBeOverlayedByPathOutline() Image image = new Image(500, 500); - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .DrawLines(Rgba32.HotPink, 10, new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 10), new Vector2(200, 150), new Vector2(10, 150) - }) - .Save($"{path}/Rectangle.png"); + })); + image.Save($"{path}/Rectangle.png"); - using (PixelAccessor sourcePixels = image.Lock()) - { - Assert.Equal(Rgba32.HotPink, sourcePixels[11, 11]); + using (PixelAccessor sourcePixels = image.Lock()) + { + Assert.Equal(Rgba32.HotPink, sourcePixels[11, 11]); - Assert.Equal(Rgba32.HotPink, sourcePixels[198, 10]); + Assert.Equal(Rgba32.HotPink, sourcePixels[198, 10]); - Assert.Equal(Rgba32.Blue, sourcePixels[10, 50]); + Assert.Equal(Rgba32.Blue, sourcePixels[10, 50]); - Assert.Equal(Rgba32.Blue, sourcePixels[50, 50]); - } + Assert.Equal(Rgba32.Blue, sourcePixels[50, 50]); } - } + } +} diff --git a/tests/ImageSharp.Tests/Drawing/Paths/FillPath.cs b/tests/ImageSharp.Tests/Drawing/Paths/FillPath.cs index 3a2b66c3c2..b80173bcf8 100644 --- a/tests/ImageSharp.Tests/Drawing/Paths/FillPath.cs +++ b/tests/ImageSharp.Tests/Drawing/Paths/FillPath.cs @@ -37,7 +37,7 @@ public void Dispose() [Fact] public void CorrectlySetsBrushAndPath() { - img.Fill(brush, path); + img.Mutate(x => x.Fill(brush, path)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -56,7 +56,7 @@ public void CorrectlySetsBrushAndPath() [Fact] public void CorrectlySetsBrushPathOptions() { - img.Fill(brush, path, noneDefault); + img.Mutate(x => x.Fill(brush, path, noneDefault)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -73,7 +73,7 @@ public void CorrectlySetsBrushPathOptions() [Fact] public void CorrectlySetsColorAndPath() { - img.Fill(color, path); + img.Mutate(x => x.Fill(color, path)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -91,7 +91,7 @@ public void CorrectlySetsColorAndPath() [Fact] public void CorrectlySetsColorPathAndOptions() { - img.Fill(color, path, noneDefault); + img.Mutate(x => x.Fill(color, path, noneDefault)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); diff --git a/tests/ImageSharp.Tests/Drawing/Paths/FillPathCollection.cs b/tests/ImageSharp.Tests/Drawing/Paths/FillPathCollection.cs index 24efa976e8..8fe18713d8 100644 --- a/tests/ImageSharp.Tests/Drawing/Paths/FillPathCollection.cs +++ b/tests/ImageSharp.Tests/Drawing/Paths/FillPathCollection.cs @@ -47,7 +47,7 @@ public void Dispose() [Fact] public void CorrectlySetsBrushAndPath() { - img.Fill(brush, pathCollection); + img.Mutate(x => x.Fill(brush, pathCollection)); Assert.Equal(2, img.ProcessorApplications.Count); for (var i = 0; i < 2; i++) @@ -69,7 +69,7 @@ public void CorrectlySetsBrushAndPath() [Fact] public void CorrectlySetsBrushPathOptions() { - img.Fill(brush, pathCollection, noneDefault); + img.Mutate(x => x.Fill(brush, pathCollection, noneDefault)); Assert.Equal(2, img.ProcessorApplications.Count); for (var i = 0; i < 2; i++) @@ -89,7 +89,7 @@ public void CorrectlySetsBrushPathOptions() [Fact] public void CorrectlySetsColorAndPath() { - img.Fill(color, pathCollection); + img.Mutate(x => x.Fill(color, pathCollection)); Assert.Equal(2, img.ProcessorApplications.Count); for (var i = 0; i < 2; i++) @@ -110,7 +110,7 @@ public void CorrectlySetsColorAndPath() [Fact] public void CorrectlySetsColorPathAndOptions() { - img.Fill(color, pathCollection, noneDefault); + img.Mutate(x => x.Fill(color, pathCollection, noneDefault)); Assert.Equal(2, img.ProcessorApplications.Count); for (var i = 0; i < 2; i++) diff --git a/tests/ImageSharp.Tests/Drawing/Paths/FillPolygon.cs b/tests/ImageSharp.Tests/Drawing/Paths/FillPolygon.cs index b46d3d0d9c..2fd9a89b3c 100644 --- a/tests/ImageSharp.Tests/Drawing/Paths/FillPolygon.cs +++ b/tests/ImageSharp.Tests/Drawing/Paths/FillPolygon.cs @@ -37,7 +37,7 @@ public void Dispose() [Fact] public void CorrectlySetsBrushAndPath() { - img.FillPolygon(brush, path); + img.Mutate(x => x.FillPolygon(brush, path)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -54,7 +54,7 @@ public void CorrectlySetsBrushAndPath() [Fact] public void CorrectlySetsBrushPathAndOptions() { - img.FillPolygon(brush, path, noneDefault); + img.Mutate(x => x.FillPolygon(brush, path, noneDefault)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -71,7 +71,7 @@ public void CorrectlySetsBrushPathAndOptions() [Fact] public void CorrectlySetsColorAndPath() { - img.FillPolygon(color, path); + img.Mutate(x => x.FillPolygon(color, path)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -89,7 +89,7 @@ public void CorrectlySetsColorAndPath() [Fact] public void CorrectlySetsColorPathAndOptions() { - img.FillPolygon(color, path, noneDefault); + img.Mutate(x => x.FillPolygon(color, path, noneDefault)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); diff --git a/tests/ImageSharp.Tests/Drawing/Paths/FillRectangle.cs b/tests/ImageSharp.Tests/Drawing/Paths/FillRectangle.cs index 7e6a3deee5..56c7d51093 100644 --- a/tests/ImageSharp.Tests/Drawing/Paths/FillRectangle.cs +++ b/tests/ImageSharp.Tests/Drawing/Paths/FillRectangle.cs @@ -32,7 +32,7 @@ public void Dispose() [Fact] public void CorrectlySetsBrushAndRectangle() { - img.Fill(brush, rectangle); + img.Mutate(x => x.Fill(brush, rectangle)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -52,7 +52,7 @@ public void CorrectlySetsBrushAndRectangle() [Fact] public void CorrectlySetsBrushRectangleAndOptions() { - img.Fill(brush, rectangle, noneDefault); + img.Mutate(x => x.Fill(brush, rectangle, noneDefault)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -72,7 +72,7 @@ public void CorrectlySetsBrushRectangleAndOptions() [Fact] public void CorrectlySetsColorAndRectangle() { - img.Fill(color, rectangle); + img.Mutate(x => x.Fill(color, rectangle)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); @@ -93,7 +93,7 @@ public void CorrectlySetsColorAndRectangle() [Fact] public void CorrectlySetsColorRectangleAndOptions() { - img.Fill(color, rectangle, noneDefault); + img.Mutate(x => x.Fill(color, rectangle, noneDefault)); Assert.NotEmpty(img.ProcessorApplications); FillRegionProcessor processor = Assert.IsType>(img.ProcessorApplications[0].processor); diff --git a/tests/ImageSharp.Tests/Drawing/PolygonTests.cs b/tests/ImageSharp.Tests/Drawing/PolygonTests.cs index 501b10e4af..827cde5a85 100644 --- a/tests/ImageSharp.Tests/Drawing/PolygonTests.cs +++ b/tests/ImageSharp.Tests/Drawing/PolygonTests.cs @@ -25,15 +25,15 @@ public void ImageShouldBeOverlayedByPolygonOutline() using (Image image = new Image(500, 500)) { - image - .BackgroundColor(Rgba32.Blue) - .DrawPolygon(Rgba32.HotPink, 5, - new SixLabors.Primitives.PointF[] { + image.Mutate(x => x + .BackgroundColor(Rgba32.Blue) + .DrawPolygon(Rgba32.HotPink, 5, + new SixLabors.Primitives.PointF[] { new Vector2(10, 10), new Vector2(200, 150), new Vector2(50, 300) - }) - .Save($"{path}/Simple.png"); + })); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -62,10 +62,10 @@ public void ImageShouldBeOverlayedPolygonOutlineWithOpacity() using (Image image = new Image(500, 500)) { - image - .BackgroundColor(Rgba32.Blue) - .DrawPolygon(color, 10, simplePath) - .Save($"{path}/Opacity.png"); + image.Mutate(x => x + .BackgroundColor(Rgba32.Blue) + .DrawPolygon(color, 10, simplePath)); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); @@ -90,10 +90,10 @@ public void ImageShouldBeOverlayedByRectangleOutline() using (Image image = new Image(500, 500)) { - image - .BackgroundColor(Rgba32.Blue) - .Draw(Rgba32.HotPink, 10, new Rectangle(10, 10, 190, 140)) - .Save($"{path}/Rectangle.png"); + image.Mutate(x => x + .BackgroundColor(Rgba32.Blue) + .Draw(Rgba32.HotPink, 10, new Rectangle(10, 10, 190, 140))); + image.Save($"{path}/Rectangle.png"); using (PixelAccessor sourcePixels = image.Lock()) { diff --git a/tests/ImageSharp.Tests/Drawing/RecolorImageTest.cs b/tests/ImageSharp.Tests/Drawing/RecolorImageTest.cs index 9c62e860a8..53b7d950f4 100644 --- a/tests/ImageSharp.Tests/Drawing/RecolorImageTest.cs +++ b/tests/ImageSharp.Tests/Drawing/RecolorImageTest.cs @@ -27,8 +27,8 @@ public void ImageShouldRecolorYellowToHotPink() { using (Image image = file.CreateImage()) { - image.Fill(brush) - .Save($"{path}/{file.FileName}"); + image.Mutate(x => x.Fill(brush)); + image.Save($"{path}/{file.FileName}"); } } } @@ -45,8 +45,8 @@ public void ImageShouldRecolorYellowToHotPinkInARectangle() using (Image image = file.CreateImage()) { int imageHeight = image.Height; - image.Fill(brush, new Rectangle(0, imageHeight / 2 - imageHeight / 4, image.Width, imageHeight / 2)) - .Save($"{path}/Shaped_{file.FileName}"); + image.Mutate(x => x.Fill(brush, new Rectangle(0, imageHeight / 2 - imageHeight / 4, image.Width, imageHeight / 2))); + image.Save($"{path}/Shaped_{file.FileName}"); } } } diff --git a/tests/ImageSharp.Tests/Drawing/SolidBezierTests.cs b/tests/ImageSharp.Tests/Drawing/SolidBezierTests.cs index ba904cb3f2..aa9ffb1877 100644 --- a/tests/ImageSharp.Tests/Drawing/SolidBezierTests.cs +++ b/tests/ImageSharp.Tests/Drawing/SolidBezierTests.cs @@ -28,10 +28,10 @@ public void ImageShouldBeOverlayedByFilledPolygon() }; using (Image image = new Image(500, 500)) { - image - .BackgroundColor(Rgba32.Blue) - .Fill(Rgba32.HotPink, new Polygon(new CubicBezierLineSegment(simplePath))) - .Save($"{path}/Simple.png"); + image.Mutate(x => x + .BackgroundColor(Rgba32.Blue) + .Fill(Rgba32.HotPink, new Polygon(new CubicBezierLineSegment(simplePath)))); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -60,10 +60,10 @@ public void ImageShouldBeOverlayedByFilledPolygonOpacity() using (Image image = new Image(500, 500)) { - image - .BackgroundColor(Rgba32.Blue) - .Fill(color, new Polygon(new CubicBezierLineSegment(simplePath))) - .Save($"{path}/Opacity.png"); + image.Mutate(x => x + .BackgroundColor(Rgba32.Blue) + .Fill(color, new Polygon(new CubicBezierLineSegment(simplePath)))); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); diff --git a/tests/ImageSharp.Tests/Drawing/SolidComplexPolygonTests.cs b/tests/ImageSharp.Tests/Drawing/SolidComplexPolygonTests.cs index c3af3d5c28..70369a6a8c 100644 --- a/tests/ImageSharp.Tests/Drawing/SolidComplexPolygonTests.cs +++ b/tests/ImageSharp.Tests/Drawing/SolidComplexPolygonTests.cs @@ -34,10 +34,10 @@ public void ImageShouldBeOverlayedByPolygonOutline() // var clipped = new Rectangle(10, 10, 100, 100).Clip(new Rectangle(20, 0, 20, 20)); using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(Rgba32.HotPink, clipped) - .Save($"{path}/Simple.png"); + .Fill(Rgba32.HotPink, clipped)); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -66,10 +66,10 @@ public void ImageShouldBeOverlayedPolygonOutlineWithOverlap() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(Rgba32.HotPink, simplePath.Clip(hole1)) - .Save($"{path}/SimpleOverlapping.png"); + .Fill(Rgba32.HotPink, simplePath.Clip(hole1))); + image.Save($"{path}/SimpleOverlapping.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -98,10 +98,10 @@ public void ImageShouldBeOverlayedPolygonOutlineWithOpacity() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(color, simplePath.Clip(hole1)) - .Save($"{path}/Opacity.png"); + .Fill(color, simplePath.Clip(hole1))); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); diff --git a/tests/ImageSharp.Tests/Drawing/SolidPolygonTests.cs b/tests/ImageSharp.Tests/Drawing/SolidPolygonTests.cs index 793bcfc9f0..469669acf2 100644 --- a/tests/ImageSharp.Tests/Drawing/SolidPolygonTests.cs +++ b/tests/ImageSharp.Tests/Drawing/SolidPolygonTests.cs @@ -31,9 +31,9 @@ public void ImageShouldBeOverlayedByFilledPolygon() using (Image image = new Image(500, 500)) { - image - .FillPolygon(Rgba32.HotPink, simplePath, new GraphicsOptions(true)) - .Save($"{path}/Simple.png"); + image.Mutate(x => x + .FillPolygon(Rgba32.HotPink, simplePath, new GraphicsOptions(true))); + image.Save($"{path}/Simple.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -54,9 +54,9 @@ public void ImageShouldBeOverlayedByFilledPolygonWithPattern() using (Image image = new Image(500, 500)) { - image - .FillPolygon(Brushes.Horizontal(Rgba32.HotPink), simplePath, new GraphicsOptions(true)) - .Save($"{path}/Pattern.png"); + image.Mutate(x => x + .FillPolygon(Brushes.Horizontal(Rgba32.HotPink), simplePath, new GraphicsOptions(true))); + image.Save($"{path}/Pattern.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -77,10 +77,10 @@ public void ImageShouldBeOverlayedByFilledPolygonNoAntialias() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .FillPolygon(Rgba32.HotPink, simplePath, new GraphicsOptions(false)) - .Save($"{path}/Simple_NoAntialias.png"); + .FillPolygon(Rgba32.HotPink, simplePath, new GraphicsOptions(false))); + image.Save($"{path}/Simple_NoAntialias.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -110,10 +110,10 @@ public void ImageShouldBeOverlayedByFilledPolygonImage() { ImageBrush brush = new ImageBrush(brushImage); - image - .BackgroundColor(Rgba32.Blue) - .FillPolygon(brush, simplePath) - .Save($"{path}/Image.png"); + image.Mutate(x => x + .BackgroundColor(Rgba32.Blue) + .FillPolygon(brush, simplePath)); + image.Save($"{path}/Image.png"); } } @@ -130,10 +130,10 @@ public void ImageShouldBeOverlayedByFilledPolygonOpacity() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .FillPolygon(color, simplePath) - .Save($"{path}/Opacity.png"); + .FillPolygon(color, simplePath)); + image.Save($"{path}/Opacity.png"); //shift background color towards forground color by the opacity amount Rgba32 mergedColor = new Rgba32(Vector4.Lerp(Rgba32.Blue.ToVector4(), Rgba32.HotPink.ToVector4(), 150f / 255f)); @@ -152,10 +152,10 @@ public void ImageShouldBeOverlayedByFilledRectangle() using (Image image = new Image(500, 500)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(Rgba32.HotPink, new SixLabors.Shapes.RectangularePolygon(10, 10, 190, 140)) - .Save($"{path}/Rectangle.png"); + .Fill(Rgba32.HotPink, new SixLabors.Shapes.RectangularePolygon(10, 10, 190, 140))); + image.Save($"{path}/Rectangle.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -179,10 +179,10 @@ public void ImageShouldBeOverlayedByFilledTriangle() using (Image image = new Image(100, 100)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(Rgba32.HotPink, new RegularPolygon(50, 50, 3, 30)) - .Save($"{path}/Triangle.png"); + .Fill(Rgba32.HotPink, new RegularPolygon(50, 50, 3, 30))); + image.Save($"{path}/Triangle.png"); using (PixelAccessor sourcePixels = image.Lock()) { @@ -202,10 +202,10 @@ public void ImageShouldBeOverlayedByFilledSeptagon() config.ParallelOptions.MaxDegreeOfParallelism = 1; using (Image image = new Image(config, 100, 100)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) - .Fill(Rgba32.HotPink, new RegularPolygon(50, 50, 7, 30, -(float)Math.PI)) - .Save($"{path}/Septagon.png"); + .Fill(Rgba32.HotPink, new RegularPolygon(50, 50, 7, 30, -(float)Math.PI))); + image.Save($"{path}/Septagon.png"); } } @@ -218,11 +218,11 @@ public void ImageShouldBeOverlayedByFilledEllipse() config.ParallelOptions.MaxDegreeOfParallelism = 1; using (Image image = new Image(config, 100, 100)) { - image + image.Mutate(x => x .BackgroundColor(Rgba32.Blue) .Fill(Rgba32.HotPink, new EllipsePolygon(50, 50, 30, 50) - .Rotate((float)(Math.PI / 3))) - .Save($"{path}/ellipse.png"); + .Rotate((float)(Math.PI / 3)))); + image.Save($"{path}/ellipse.png"); } } @@ -235,7 +235,7 @@ public void ImageShouldBeOverlayedBySquareWithCornerClipped() config.ParallelOptions.MaxDegreeOfParallelism = 1; using (Image image = new Image(config, 200, 200)) { - image + image.Mutate(x => x .Fill(Rgba32.Blue) .FillPolygon(Rgba32.HotPink, new SixLabors.Primitives.PointF[] { @@ -245,8 +245,8 @@ public void ImageShouldBeOverlayedBySquareWithCornerClipped() new Vector2( 120, 64 ), new Vector2( 120, 120 ), new Vector2( 8, 120 ) - }) - .Save($"{path}/clipped-corner.png"); + })); + image.Save($"{path}/clipped-corner.png"); } } } diff --git a/tests/ImageSharp.Tests/Drawing/Text/DrawText.Path.cs b/tests/ImageSharp.Tests/Drawing/Text/DrawText.Path.cs index 05a1f1e363..067ea122d8 100644 --- a/tests/ImageSharp.Tests/Drawing/Text/DrawText.Path.cs +++ b/tests/ImageSharp.Tests/Drawing/Text/DrawText.Path.cs @@ -51,13 +51,13 @@ public void Dispose() [Fact] public void FillsForEachACharachterWhenBrushSetAndNotPen() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "123", this.Font, Brushes.Solid(Rgba32.Red), null, path, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -67,7 +67,7 @@ public void FillsForEachACharachterWhenBrushSetAndNotPen() [Fact] public void FillsForEachACharachterWhenBrushSetAndNotPenDefaultOptions() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), null, path); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), null, path)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -77,7 +77,7 @@ public void FillsForEachACharachterWhenBrushSetAndNotPenDefaultOptions() [Fact] public void FillsForEachACharachterWhenBrushSet() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), path, new TextGraphicsOptions(true)); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), path, new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -87,7 +87,7 @@ public void FillsForEachACharachterWhenBrushSet() [Fact] public void FillsForEachACharachterWhenBrushSetDefaultOptions() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), path); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), path)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -97,7 +97,7 @@ public void FillsForEachACharachterWhenBrushSetDefaultOptions() [Fact] public void FillsForEachACharachterWhenColorSet() { - this.img.DrawText("123", this.Font, Rgba32.Red, path, new TextGraphicsOptions(true)); + this.img.Mutate(x => x.DrawText("123", this.Font, Rgba32.Red, path, new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); @@ -111,7 +111,7 @@ public void FillsForEachACharachterWhenColorSet() [Fact] public void FillsForEachACharachterWhenColorSetDefaultOptions() { - this.img.DrawText("123", this.Font, Rgba32.Red, path); + this.img.Mutate(x => x.DrawText("123", this.Font, Rgba32.Red, path)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); @@ -126,13 +126,13 @@ public void FillsForEachACharachterWhenColorSetDefaultOptions() [Fact] public void DrawForEachACharachterWhenPenSetAndNotBrush() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "123", this.Font, null, Pens.Dash(Rgba32.Red, 1), path, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -142,7 +142,7 @@ public void DrawForEachACharachterWhenPenSetAndNotBrush() [Fact] public void DrawForEachACharachterWhenPenSetAndNotBrushDefaultOptions() { - this.img.DrawText("123", this.Font, null, Pens.Dash(Rgba32.Red, 1), path); + this.img.Mutate(x => x.DrawText("123", this.Font, null, Pens.Dash(Rgba32.Red, 1), path)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -152,7 +152,7 @@ public void DrawForEachACharachterWhenPenSetAndNotBrushDefaultOptions() [Fact] public void DrawForEachACharachterWhenPenSet() { - this.img.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), path, new TextGraphicsOptions(true)); + this.img.Mutate(x => x.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), path, new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -162,7 +162,7 @@ public void DrawForEachACharachterWhenPenSet() [Fact] public void DrawForEachACharachterWhenPenSetDefaultOptions() { - this.img.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), path); + this.img.Mutate(x => x.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), path)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -172,13 +172,13 @@ public void DrawForEachACharachterWhenPenSetDefaultOptions() [Fact] public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSet() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "123", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), path, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(6, this.img.ProcessorApplications.Count); @@ -187,7 +187,7 @@ public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSet() [Fact] public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSetDefaultOptions() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), path); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), path)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(6, this.img.ProcessorApplications.Count); @@ -196,13 +196,13 @@ public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSetDefaultOpt [Fact] public void BrushAppliesBeforPen() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "1", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), path, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(2, this.img.ProcessorApplications.Count); @@ -213,39 +213,12 @@ public void BrushAppliesBeforPen() [Fact] public void BrushAppliesBeforPenDefaultOptions() { - this.img.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), path); + this.img.Mutate(x => x.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), path)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(2, this.img.ProcessorApplications.Count); Assert.IsType>(this.img.ProcessorApplications[0].processor); Assert.IsType>(this.img.ProcessorApplications[1].processor); } - - [Fact] - public void GlyphHeightChangesBasedOnuseImageResolutionFlag() - { - this.img.MetaData.VerticalResolution = 1; - this.img.MetaData.HorizontalResolution = 1; - this.img.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), path, new TextGraphicsOptions(true) { - UseImageResolution = false - }); - - this.img.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), path, new TextGraphicsOptions(true) - { - UseImageResolution = true - }); - - Assert.NotEmpty(this.img.ProcessorApplications); - Assert.Equal(2, this.img.ProcessorApplications.Count); - FillRegionProcessor ownResolution = Assert.IsType>(this.img.ProcessorApplications[0].processor); - FillRegionProcessor imgResolution = Assert.IsType>(this.img.ProcessorApplications[1].processor); - - ShapeRegion ownRegion = Assert.IsType(ownResolution.Region); - ShapeRegion imgRegion = Assert.IsType(imgResolution.Region); - - // magic numbers based on the font used at well known resolutions - Assert.Equal(7.44, ownRegion.Shape.Bounds.Height, 2); - Assert.Equal(0.1, imgRegion.Shape.Bounds.Height, 2); - } } } diff --git a/tests/ImageSharp.Tests/Drawing/Text/DrawText.cs b/tests/ImageSharp.Tests/Drawing/Text/DrawText.cs index 1c8c9f1d16..d03af54562 100644 --- a/tests/ImageSharp.Tests/Drawing/Text/DrawText.cs +++ b/tests/ImageSharp.Tests/Drawing/Text/DrawText.cs @@ -51,13 +51,13 @@ public void Dispose() [Fact] public void FillsForEachACharachterWhenBrushSetAndNotPen() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "123", this.Font, Brushes.Solid(Rgba32.Red), null, Vector2.Zero, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -67,7 +67,7 @@ public void FillsForEachACharachterWhenBrushSetAndNotPen() [Fact] public void FillsForEachACharachterWhenBrushSetAndNotPenDefaultOptions() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), null, Vector2.Zero); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), null, Vector2.Zero)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -77,7 +77,7 @@ public void FillsForEachACharachterWhenBrushSetAndNotPenDefaultOptions() [Fact] public void FillsForEachACharachterWhenBrushSet() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Vector2.Zero, new TextGraphicsOptions(true)); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Vector2.Zero, new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -87,7 +87,7 @@ public void FillsForEachACharachterWhenBrushSet() [Fact] public void FillsForEachACharachterWhenBrushSetDefaultOptions() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Vector2.Zero); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Vector2.Zero)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -97,7 +97,7 @@ public void FillsForEachACharachterWhenBrushSetDefaultOptions() [Fact] public void FillsForEachACharachterWhenColorSet() { - this.img.DrawText("123", this.Font, Rgba32.Red, Vector2.Zero, new TextGraphicsOptions(true)); + this.img.Mutate(x => x.DrawText("123", this.Font, Rgba32.Red, Vector2.Zero, new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); @@ -111,7 +111,7 @@ public void FillsForEachACharachterWhenColorSet() [Fact] public void FillsForEachACharachterWhenColorSetDefaultOptions() { - this.img.DrawText("123", this.Font, Rgba32.Red, Vector2.Zero); + this.img.Mutate(x => x.DrawText("123", this.Font, Rgba32.Red, Vector2.Zero)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); @@ -126,13 +126,13 @@ public void FillsForEachACharachterWhenColorSetDefaultOptions() [Fact] public void DrawForEachACharachterWhenPenSetAndNotBrush() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "123", this.Font, null, Pens.Dash(Rgba32.Red, 1), Vector2.Zero, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -142,7 +142,7 @@ public void DrawForEachACharachterWhenPenSetAndNotBrush() [Fact] public void DrawForEachACharachterWhenPenSetAndNotBrushDefaultOptions() { - this.img.DrawText("123", this.Font, null, Pens.Dash(Rgba32.Red, 1), Vector2.Zero); + this.img.Mutate(x => x.DrawText("123", this.Font, null, Pens.Dash(Rgba32.Red, 1), Vector2.Zero)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -152,7 +152,7 @@ public void DrawForEachACharachterWhenPenSetAndNotBrushDefaultOptions() [Fact] public void DrawForEachACharachterWhenPenSet() { - this.img.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), Vector2.Zero, new TextGraphicsOptions(true)); + this.img.Mutate(x => x.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), Vector2.Zero, new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -162,7 +162,7 @@ public void DrawForEachACharachterWhenPenSet() [Fact] public void DrawForEachACharachterWhenPenSetDefaultOptions() { - this.img.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), Vector2.Zero); + this.img.Mutate(x => x.DrawText("123", this.Font, Pens.Dash(Rgba32.Red, 1), Vector2.Zero)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(3, this.img.ProcessorApplications.Count); // 3 fills where applied @@ -172,13 +172,13 @@ public void DrawForEachACharachterWhenPenSetDefaultOptions() [Fact] public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSet() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "123", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), Vector2.Zero, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(6, this.img.ProcessorApplications.Count); @@ -187,7 +187,7 @@ public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSet() [Fact] public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSetDefaultOptions() { - this.img.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), Vector2.Zero); + this.img.Mutate(x => x.DrawText("123", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), Vector2.Zero)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(6, this.img.ProcessorApplications.Count); @@ -196,13 +196,13 @@ public void DrawForEachACharachterWhenPenSetAndFillFroEachWhenBrushSetDefaultOpt [Fact] public void BrushAppliesBeforPen() { - this.img.DrawText( + this.img.Mutate(x => x.DrawText( "1", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), Vector2.Zero, - new TextGraphicsOptions(true)); + new TextGraphicsOptions(true))); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(2, this.img.ProcessorApplications.Count); @@ -213,39 +213,12 @@ public void BrushAppliesBeforPen() [Fact] public void BrushAppliesBeforPenDefaultOptions() { - this.img.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), Vector2.Zero); + this.img.Mutate(x => x.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), Pens.Dash(Rgba32.Red, 1), Vector2.Zero)); Assert.NotEmpty(this.img.ProcessorApplications); Assert.Equal(2, this.img.ProcessorApplications.Count); Assert.IsType>(this.img.ProcessorApplications[0].processor); Assert.IsType>(this.img.ProcessorApplications[1].processor); } - - [Fact] - public void GlyphHeightChangesBasedOnuseImageResolutionFlag() - { - this.img.MetaData.VerticalResolution = 1; - this.img.MetaData.HorizontalResolution = 1; - this.img.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), Vector2.Zero, new TextGraphicsOptions(true) { - UseImageResolution = false - }); - - this.img.DrawText("1", this.Font, Brushes.Solid(Rgba32.Red), Vector2.Zero, new TextGraphicsOptions(true) - { - UseImageResolution = true - }); - - Assert.NotEmpty(this.img.ProcessorApplications); - Assert.Equal(2, this.img.ProcessorApplications.Count); - FillRegionProcessor ownResolution = Assert.IsType>(this.img.ProcessorApplications[0].processor); - FillRegionProcessor imgResolution = Assert.IsType>(this.img.ProcessorApplications[1].processor); - - ShapeRegion ownRegion = Assert.IsType(ownResolution.Region); - ShapeRegion imgRegion = Assert.IsType(imgResolution.Region); - - // magic numbers based on the font used at well known resolutions - Assert.Equal(7.44, ownRegion.Shape.Bounds.Height, 2); - Assert.Equal(0.1, imgRegion.Shape.Bounds.Height, 2); - } } } diff --git a/tests/ImageSharp.Tests/Drawing/Text/OutputText.cs b/tests/ImageSharp.Tests/Drawing/Text/OutputText.cs index ce2a5becf9..af401264dc 100644 --- a/tests/ImageSharp.Tests/Drawing/Text/OutputText.cs +++ b/tests/ImageSharp.Tests/Drawing/Text/OutputText.cs @@ -34,8 +34,8 @@ public void DrawAB() //draws 2 overlapping triangle glyphs twice 1 set on each line using (Image img = new Image(100, 200)) { - img.Fill(Rgba32.DarkBlue) - .DrawText("AB\nAB", new Font(this.Font, 50), Rgba32.Red, new Vector2(0, 0)); + img.Mutate(x => x.Fill(Rgba32.DarkBlue) + .DrawText("AB\nAB", new Font(this.Font, 50), Rgba32.Red, new Vector2(0, 0))); img.Save($"{this.CreateOutputDirectory("Drawing", "Text")}/AB.png"); } } diff --git a/tests/ImageSharp.Tests/Formats/GeneralFormatTests.cs b/tests/ImageSharp.Tests/Formats/GeneralFormatTests.cs index 4ef8fe0612..1f669ba240 100644 --- a/tests/ImageSharp.Tests/Formats/GeneralFormatTests.cs +++ b/tests/ImageSharp.Tests/Formats/GeneralFormatTests.cs @@ -50,7 +50,7 @@ public void DecodeThenEncodeImageFromStreamShouldSucceed() { using (Image image = file.CreateImage()) { - image.Save($"{path}/{file.FileName}"); + image.Save($"{path}/{file.FileName}"); } } } @@ -68,8 +68,8 @@ public void QuantizeImageShouldPreserveMaximumColorPrecision() { using (FileStream output = File.OpenWrite($"{path}/Octree-{file.FileName}")) { - image.Quantize(Quantization.Octree) - .Save(output, mimeType); + image.Mutate(x => x.Quantize(Quantization.Octree)); + image.Save(output, mimeType); } } @@ -78,8 +78,8 @@ public void QuantizeImageShouldPreserveMaximumColorPrecision() { using (FileStream output = File.OpenWrite($"{path}/Wu-{file.FileName}")) { - image.Quantize(Quantization.Wu) - .Save(output, mimeType); + image.Mutate(x => x.Quantize(Quantization.Wu)); + image.Save(output, mimeType); } } @@ -87,8 +87,8 @@ public void QuantizeImageShouldPreserveMaximumColorPrecision() { using (FileStream output = File.OpenWrite($"{path}/Palette-{file.FileName}")) { - image.Quantize(Quantization.Palette) - .Save(output, mimeType); + image.Mutate(x => x.Quantize(Quantization.Palette)); + image.Save(output, mimeType); } } } diff --git a/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs b/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs index 86faeee232..49802a8d23 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs @@ -36,8 +36,9 @@ public JpegEncoderTests(ITestOutputHelper output) public void LoadResizeSave(TestImageProvider provider, int quality, JpegSubsample subsample) where TPixel : struct, IPixel { - using (Image image = provider.GetImage().Resize(new ResizeOptions { Size = new Size(150, 100), Mode = ResizeMode.Max })) + using (Image image = provider.GetImage(x=>x.Resize(new ResizeOptions { Size = new Size(150, 100), Mode = ResizeMode.Max }))) { + image.MetaData.ExifProfile = null; // Reduce the size of the file JpegEncoder options = new JpegEncoder { Subsample = subsample, Quality = quality }; diff --git a/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs index bac340a71c..43ca2a1b6d 100644 --- a/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs +++ b/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs @@ -113,7 +113,7 @@ public void Resize(TestImageProvider provider) using (MemoryStream ms = new MemoryStream()) { // image.Save(provider.Utility.GetTestOutputFileName("png")); - image.Resize(100, 100); + image.Mutate(x=>x.Resize(100, 100)); // image.Save(provider.Utility.GetTestOutputFileName("png", "resize")); image.Save(ms, new PngEncoder()); diff --git a/tests/ImageSharp.Tests/Image/PixelAccessorTests.cs b/tests/ImageSharp.Tests/Image/PixelAccessorTests.cs index b59023340b..4ffc33580a 100644 --- a/tests/ImageSharp.Tests/Image/PixelAccessorTests.cs +++ b/tests/ImageSharp.Tests/Image/PixelAccessorTests.cs @@ -82,7 +82,7 @@ public void CopyToThenCopyFromWithOffset(TestImageProvider provi { using (Image srcImage = provider.GetImage()) { - srcImage.Fill(NamedColors.Red, new Rectangle(4, 4, 8, 8)); + srcImage.Mutate(x => x.Fill(NamedColors.Red, new Rectangle(4, 4, 8, 8))); using (PixelAccessor srcPixels = srcImage.Lock()) { using (PixelArea area = new PixelArea(8, 8, order)) @@ -100,8 +100,9 @@ public void CopyToThenCopyFromWithOffset(TestImageProvider provi provider.Utility.SourceFileOrDescription = order.ToString(); provider.Utility.SaveTestOutputFile(destImage, "bmp"); - using (Image expectedImage = new Image(8, 8).Fill(NamedColors.Red)) + using (Image expectedImage = new Image(8, 8)) { + expectedImage.Mutate(x => x.Fill(NamedColors.Red)); Assert.True(destImage.IsEquivalentTo(expectedImage)); } } diff --git a/tests/ImageSharp.Tests/ImageComparer.cs b/tests/ImageSharp.Tests/ImageComparer.cs index 6cd80e9e83..46d4351ded 100644 --- a/tests/ImageSharp.Tests/ImageComparer.cs +++ b/tests/ImageSharp.Tests/ImageComparer.cs @@ -47,8 +47,8 @@ public static void EnsureProcessorChangesAreConstrained(Image< where TPixelB : struct, IPixel { // Draw identical shapes over the bounded and compare to ensure changes are constrained. - expected.Fill(NamedColors.HotPink, bounds); - actual.Fill(NamedColors.HotPink, bounds); + expected.Mutate(x => x.Fill(NamedColors.HotPink, bounds)); + actual.Mutate(x => x.Fill(NamedColors.HotPink, bounds)); CheckSimilarity(expected, actual, imageTheshold, segmentThreshold, scalingFactor); } @@ -138,7 +138,7 @@ private static Fast2DArray GetGrayScaleValues(this Image where TPixelA : struct, IPixel { byte[] buffer = new byte[3]; - using (Image img = new Image(source).Resize(scalingFactor, scalingFactor).Grayscale()) + using (Image img = source.Generate(x => x.Resize(scalingFactor, scalingFactor).Grayscale())) { using (PixelAccessor pixels = img.Lock()) { diff --git a/tests/ImageSharp.Tests/Processing/Binarization/BinaryThresholdTest.cs b/tests/ImageSharp.Tests/Processing/Binarization/BinaryThresholdTest.cs index 642df598a3..a8140aac71 100644 --- a/tests/ImageSharp.Tests/Processing/Binarization/BinaryThresholdTest.cs +++ b/tests/ImageSharp.Tests/Processing/Binarization/BinaryThresholdTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyBinaryThresholdFilter(TestImageProvider image = provider.GetImage()) { - image.BinaryThreshold(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.BinaryThreshold(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -41,8 +41,8 @@ public void ImageShouldApplyBinaryThresholdInBox(TestImageProvider x.BinaryThreshold(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Binarization/DitherTest.cs b/tests/ImageSharp.Tests/Processing/Binarization/DitherTest.cs index a06397c864..25b34bfe4e 100644 --- a/tests/ImageSharp.Tests/Processing/Binarization/DitherTest.cs +++ b/tests/ImageSharp.Tests/Processing/Binarization/DitherTest.cs @@ -38,8 +38,8 @@ public void ImageShouldApplyDitherFilter(TestImageProvider provi { using (Image image = provider.GetImage()) { - image.Dither(ditherer) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Dither(ditherer)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -53,8 +53,8 @@ public void ImageShouldApplyDitherFilterInBox(TestImageProvider { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.Dither(ditherer, bounds) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Dither(ditherer, bounds)); + image.DebugSave(provider, name, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } @@ -67,8 +67,8 @@ public void ImageShouldApplyDiffusionFilter(TestImageProvider pr { using (Image image = provider.GetImage()) { - image.Dither(diffuser, .5F) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Dither(diffuser, .5F)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -82,8 +82,8 @@ public void ImageShouldApplyDiffusionFilterInBox(TestImageProvider x.Dither(diffuser, .5F, bounds)); + image.DebugSave(provider, name, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/BlackWhiteTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/BlackWhiteTest.cs index 4dc70fb0f5..90c02be197 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/BlackWhiteTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/BlackWhiteTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplyBlackWhiteFilter(TestImageProvider p { using (Image image = provider.GetImage()) { - image.BlackWhite() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.BlackWhite()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -33,8 +33,8 @@ public void ImageShouldApplyBlackWhiteFilterInBox(TestImageProvider x.BlackWhite(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/ColorBlindnessTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/ColorBlindnessTest.cs index bc1c8ad226..9006e3e33d 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/ColorBlindnessTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/ColorBlindnessTest.cs @@ -32,8 +32,8 @@ public void ImageShouldApplyColorBlindnessFilter(TestImageProvider image = provider.GetImage()) { - image.ColorBlindness(colorBlindness) - .DebugSave(provider, colorBlindness.ToString(), Extensions.Bmp); + image.Mutate(x => x.ColorBlindness(colorBlindness)); + image.DebugSave(provider, colorBlindness.ToString(), Extensions.Bmp); } } @@ -47,8 +47,8 @@ public void ImageShouldApplyColorBlindnessFilterInBox(TestImageProvider< { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.ColorBlindness(colorBlindness, bounds) - .DebugSave(provider, colorBlindness.ToString(), Extensions.Bmp); + image.Mutate(x => x.ColorBlindness(colorBlindness, bounds)); + image.DebugSave(provider, colorBlindness.ToString(), Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/GrayscaleTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/GrayscaleTest.cs index 9bf55a6d25..6dd0e82488 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/GrayscaleTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/GrayscaleTest.cs @@ -29,7 +29,7 @@ public void ImageShouldApplyGrayscaleFilterAll(TestImageProvider { using (Image image = provider.GetImage()) { - image.Grayscale(value); + image.Mutate(x => x.Grayscale(value)); byte[] data = new byte[3]; for (int i = 0; i < image.Pixels.Length; i++) { @@ -51,8 +51,8 @@ public void ImageShouldApplyGrayscaleFilterInBox(TestImageProvider(source)) { var bounds = new Rectangle(image.Width / 4, image.Height / 4, image.Width / 2, image.Height / 2); - image.Grayscale(value, bounds) - .DebugSave(provider, value.ToString()); + image.Mutate(x => x.Grayscale(value, bounds)); + image.DebugSave(provider, value.ToString()); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/HueTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/HueTest.cs index ba1cf2b8f7..1fe56a8be9 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/HueTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/HueTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyHueFilter(TestImageProvider provider { using (Image image = provider.GetImage()) { - image.Hue(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Hue(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyHueFilterInBox(TestImageProvider pro { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.Hue(value, bounds) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Hue(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/KodachromeTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/KodachromeTest.cs index 971cdb6d81..779ca0f6b2 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/KodachromeTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/KodachromeTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplyKodachromeFilter(TestImageProvider p { using (Image image = provider.GetImage()) { - image.Kodachrome() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Kodachrome()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -33,8 +33,8 @@ public void ImageShouldApplyKodachromeFilterInBox(TestImageProvider x.Kodachrome(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/LomographTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/LomographTest.cs index 5b41cdb3b7..ebfacb7203 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/LomographTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/LomographTest.cs @@ -20,8 +20,8 @@ public void ImageShouldApplyLomographFilter(TestImageProvider pr { using (Image image = provider.GetImage()) { - image.Lomograph() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Lomograph()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -35,8 +35,8 @@ public void ImageShouldApplyLomographFilterInBox(TestImageProvider x.Lomograph(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/PolaroidTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/PolaroidTest.cs index 48f7a6c0a8..54836cedfa 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/PolaroidTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/PolaroidTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplyPolaroidFilter(TestImageProvider pro { using (Image image = provider.GetImage()) { - image.Polaroid() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Polaroid()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -33,8 +33,8 @@ public void ImageShouldApplyPolaroidFilterInBox(TestImageProvider x.Polaroid(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/SaturationTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/SaturationTest.cs index a4a4f3bb51..73c3f98b53 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/SaturationTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/SaturationTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplySaturationFilter(TestImageProvider p { using (Image image = provider.GetImage()) { - image.Saturation(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Saturation(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplySaturationFilterInBox(TestImageProvider x.Saturation(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/ColorMatrix/SepiaTest.cs b/tests/ImageSharp.Tests/Processing/ColorMatrix/SepiaTest.cs index af554e30d8..ae7865c11a 100644 --- a/tests/ImageSharp.Tests/Processing/ColorMatrix/SepiaTest.cs +++ b/tests/ImageSharp.Tests/Processing/ColorMatrix/SepiaTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplySepiaFilter(TestImageProvider provid { using (Image image = provider.GetImage()) { - image.Sepia() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Sepia()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -33,8 +33,8 @@ public void ImageShouldApplySepiaFilterInBox(TestImageProvider p { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.Sepia(bounds) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Sepia(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Convolution/BoxBlurTest.cs b/tests/ImageSharp.Tests/Processing/Convolution/BoxBlurTest.cs index ef049a539a..58a2665d0d 100644 --- a/tests/ImageSharp.Tests/Processing/Convolution/BoxBlurTest.cs +++ b/tests/ImageSharp.Tests/Processing/Convolution/BoxBlurTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyBoxBlurFilter(TestImageProvider prov { using (Image image = provider.GetImage()) { - image.BoxBlur(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.BoxBlur(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyBoxBlurFilterInBox(TestImageProvider { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.BoxBlur(value, bounds) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.BoxBlur(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Convolution/DetectEdgesTest.cs b/tests/ImageSharp.Tests/Processing/Convolution/DetectEdgesTest.cs index d5817ab14f..9f3a2d79a6 100644 --- a/tests/ImageSharp.Tests/Processing/Convolution/DetectEdgesTest.cs +++ b/tests/ImageSharp.Tests/Processing/Convolution/DetectEdgesTest.cs @@ -34,8 +34,8 @@ public void ImageShouldApplyDetectEdgesFilter(TestImageProvider { using (Image image = provider.GetImage()) { - image.DetectEdges(detector) - .DebugSave(provider, detector.ToString(), Extensions.Bmp); + image.Mutate(x => x.DetectEdges(detector)); + image.DebugSave(provider, detector.ToString(), Extensions.Bmp); } } @@ -49,8 +49,8 @@ public void ImageShouldApplyDetectEdgesFilterInBox(TestImageProvider x.DetectEdges(detector, bounds)); + image.DebugSave(provider, detector.ToString(), Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Convolution/GaussianBlurTest.cs b/tests/ImageSharp.Tests/Processing/Convolution/GaussianBlurTest.cs index fa4e4b0b6b..763e806af9 100644 --- a/tests/ImageSharp.Tests/Processing/Convolution/GaussianBlurTest.cs +++ b/tests/ImageSharp.Tests/Processing/Convolution/GaussianBlurTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyGaussianBlurFilter(TestImageProvider { using (Image image = provider.GetImage()) { - image.GaussianBlur(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.GaussianBlur(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyGaussianBlurFilterInBox(TestImageProvider x.GaussianBlur(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Convolution/GaussianSharpenTest.cs b/tests/ImageSharp.Tests/Processing/Convolution/GaussianSharpenTest.cs index d15042ee69..6313bc72aa 100644 --- a/tests/ImageSharp.Tests/Processing/Convolution/GaussianSharpenTest.cs +++ b/tests/ImageSharp.Tests/Processing/Convolution/GaussianSharpenTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyGaussianSharpenFilter(TestImageProvider image = provider.GetImage()) { - image.GaussianSharpen(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.GaussianSharpen(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyGaussianSharpenFilterInBox(TestImageProvider { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.GaussianSharpen(value, bounds) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.GaussianSharpen(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Effects/AlphaTest.cs b/tests/ImageSharp.Tests/Processing/Effects/AlphaTest.cs index 34a24e70be..e01e67e181 100644 --- a/tests/ImageSharp.Tests/Processing/Effects/AlphaTest.cs +++ b/tests/ImageSharp.Tests/Processing/Effects/AlphaTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyAlphaFilter(TestImageProvider provid { using (Image image = provider.GetImage()) { - image.Alpha(value) - .DebugSave(provider, value, Extensions.Png); + image.Mutate(x => x.Alpha(value)); + image.DebugSave(provider, value, Extensions.Png); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyAlphaFilterInBox(TestImageProvider p { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.Alpha(value, bounds) - .DebugSave(provider, value, Extensions.Png); + image.Mutate(x => x.Alpha(value, bounds)); + image.DebugSave(provider, value, Extensions.Png); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Effects/BackgroundColorTest.cs b/tests/ImageSharp.Tests/Processing/Effects/BackgroundColorTest.cs index 63efbf3e73..55f11b8b54 100644 --- a/tests/ImageSharp.Tests/Processing/Effects/BackgroundColorTest.cs +++ b/tests/ImageSharp.Tests/Processing/Effects/BackgroundColorTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplyBackgroundColorFilter(TestImageProvider image = provider.GetImage()) { - image.BackgroundColor(NamedColors.HotPink) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.BackgroundColor(NamedColors.HotPink)); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -33,8 +33,8 @@ public void ImageShouldApplyBackgroundColorFilterInBox(TestImageProvider { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.BackgroundColor(NamedColors.HotPink, bounds) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.BackgroundColor(NamedColors.HotPink, bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Effects/BrightnessTest.cs b/tests/ImageSharp.Tests/Processing/Effects/BrightnessTest.cs index c3b37705a9..081fdf319c 100644 --- a/tests/ImageSharp.Tests/Processing/Effects/BrightnessTest.cs +++ b/tests/ImageSharp.Tests/Processing/Effects/BrightnessTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyBrightnessFilter(TestImageProvider p { using (Image image = provider.GetImage()) { - image.Brightness(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Brightness(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyBrightnessFilterInBox(TestImageProvider x.Brightness(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); ; } diff --git a/tests/ImageSharp.Tests/Processing/Effects/ContrastTest.cs b/tests/ImageSharp.Tests/Processing/Effects/ContrastTest.cs index 892eb93622..2c2ef1403a 100644 --- a/tests/ImageSharp.Tests/Processing/Effects/ContrastTest.cs +++ b/tests/ImageSharp.Tests/Processing/Effects/ContrastTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyContrastFilter(TestImageProvider pro { using (Image image = provider.GetImage()) { - image.Contrast(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Contrast(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyContrastFilterInBox(TestImageProvider x.Contrast(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Effects/InvertTest.cs b/tests/ImageSharp.Tests/Processing/Effects/InvertTest.cs index 3d8b3d1a1f..7d79517bc9 100644 --- a/tests/ImageSharp.Tests/Processing/Effects/InvertTest.cs +++ b/tests/ImageSharp.Tests/Processing/Effects/InvertTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplyInvertFilter(TestImageProvider provi { using (Image image = provider.GetImage()) { - image.Invert() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Invert()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -33,8 +33,8 @@ public void ImageShouldApplyInvertFilterInBox(TestImageProvider { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.Invert(bounds) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Invert(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Effects/OilPaintTest.cs b/tests/ImageSharp.Tests/Processing/Effects/OilPaintTest.cs index 3d0e8f1177..002d57d847 100644 --- a/tests/ImageSharp.Tests/Processing/Effects/OilPaintTest.cs +++ b/tests/ImageSharp.Tests/Processing/Effects/OilPaintTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyOilPaintFilter(TestImageProvider pro { using (Image image = provider.GetImage()) { - image.OilPaint(levels, brushSize) - .DebugSave(provider, string.Join("-", levels, brushSize), Extensions.Bmp); + image.Mutate(x => x.OilPaint(levels, brushSize)); + image.DebugSave(provider, string.Join("-", levels, brushSize), Extensions.Bmp); } } @@ -40,8 +40,8 @@ public void ImageShouldApplyOilPaintFilterInBox(TestImageProvider x.OilPaint(levels, brushSize, bounds)); + image.DebugSave(provider, string.Join("-", levels, brushSize), Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds, 0.001F); } diff --git a/tests/ImageSharp.Tests/Processing/Effects/PixelateTest.cs b/tests/ImageSharp.Tests/Processing/Effects/PixelateTest.cs index 253f1f4598..3a6e273d00 100644 --- a/tests/ImageSharp.Tests/Processing/Effects/PixelateTest.cs +++ b/tests/ImageSharp.Tests/Processing/Effects/PixelateTest.cs @@ -25,8 +25,8 @@ public void ImageShouldApplyPixelateFilter(TestImageProvider pro { using (Image image = provider.GetImage()) { - image.Pixelate(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Pixelate(value)); + image.DebugSave(provider, value, Extensions.Bmp); // Test the neigbouring pixels for (int y = 0; y < image.Height; y += value) @@ -56,8 +56,8 @@ public void ImageShouldApplyPixelateFilterInBox(TestImageProvider x.Pixelate(value, bounds)); + image.DebugSave(provider, value, Extensions.Bmp); for (int y = 0; y < image.Height; y++) { diff --git a/tests/ImageSharp.Tests/Processing/Overlays/GlowTest.cs b/tests/ImageSharp.Tests/Processing/Overlays/GlowTest.cs index d0633dca59..20e521c8d9 100644 --- a/tests/ImageSharp.Tests/Processing/Overlays/GlowTest.cs +++ b/tests/ImageSharp.Tests/Processing/Overlays/GlowTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplyGlowFilter(TestImageProvider provide { using (Image image = provider.GetImage()) { - image.Glow() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Glow()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -30,8 +30,8 @@ public void ImageShouldApplyGlowFilterColor(TestImageProvider pr { using (Image image = provider.GetImage()) { - image.Glow(NamedColors.Orange) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Glow(NamedColors.Orange)); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -42,8 +42,8 @@ public void ImageShouldApplyGlowFilterRadius(TestImageProvider p { using (Image image = provider.GetImage()) { - image.Glow(image.Width / 4F) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Glow(image.Width / 4F)); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -57,8 +57,8 @@ public void ImageShouldApplyGlowFilterInBox(TestImageProvider pr { var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2); - image.Glow(bounds) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Glow(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Overlays/VignetteTest.cs b/tests/ImageSharp.Tests/Processing/Overlays/VignetteTest.cs index 56fcf0ee0d..74c5296fa3 100644 --- a/tests/ImageSharp.Tests/Processing/Overlays/VignetteTest.cs +++ b/tests/ImageSharp.Tests/Processing/Overlays/VignetteTest.cs @@ -18,8 +18,8 @@ public void ImageShouldApplyVignetteFilter(TestImageProvider pro { using (Image image = provider.GetImage()) { - image.Vignette() - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Vignette()); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -30,8 +30,8 @@ public void ImageShouldApplyVignetteFilterColor(TestImageProvider image = provider.GetImage()) { - image.Vignette(NamedColors.Orange) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Vignette(NamedColors.Orange)); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -42,8 +42,8 @@ public void ImageShouldApplyVignetteFilterRadius(TestImageProvider image = provider.GetImage()) { - image.Vignette(image.Width / 4F, image.Height / 4F) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Vignette(image.Width / 4F, image.Height / 4F)); + image.DebugSave(provider, null, Extensions.Bmp); } } @@ -57,8 +57,8 @@ public void ImageShouldApplyVignetteFilterInBox(TestImageProvider x.Vignette(bounds)); + image.DebugSave(provider, null, Extensions.Bmp); ImageComparer.EnsureProcessorChangesAreConstrained(source, image, bounds); } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/AutoOrientTests.cs b/tests/ImageSharp.Tests/Processing/Transforms/AutoOrientTests.cs index 7bc0c8bb52..6c1d32b337 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/AutoOrientTests.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/AutoOrientTests.cs @@ -38,10 +38,11 @@ public void ImageShouldAutoRotate(TestImageProvider provider, Ro image.MetaData.ExifProfile = new ExifProfile(); image.MetaData.ExifProfile.SetValue(ExifTag.Orientation, orientation); - image.RotateFlip(rotateType, flipType) - .DebugSave(provider, string.Join("_", rotateType, flipType, orientation, "1_before"), Extensions.Bmp) - .AutoOrient() - .DebugSave(provider, string.Join("_", rotateType, flipType, orientation, "2_after"), Extensions.Bmp); + image.Mutate(x => x.RotateFlip(rotateType, flipType)); + image.DebugSave(provider, string.Join("_", rotateType, flipType, orientation, "1_before"), Extensions.Bmp); + + image.Mutate(x => x.AutoOrient()); + image.DebugSave(provider, string.Join("_", rotateType, flipType, orientation, "2_after"), Extensions.Bmp); } } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/CropTest.cs b/tests/ImageSharp.Tests/Processing/Transforms/CropTest.cs index ca20abf790..b95c9d82ae 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/CropTest.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/CropTest.cs @@ -18,8 +18,8 @@ public void ImageShouldCrop(TestImageProvider provider) { using (Image image = provider.GetImage()) { - image.Crop(image.Width / 2, image.Height / 2) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Crop(image.Width / 2, image.Height / 2)); + image.DebugSave(provider, null, Extensions.Bmp); } } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/EntropyCropTest.cs b/tests/ImageSharp.Tests/Processing/Transforms/EntropyCropTest.cs index 24febd5b2f..1c97c70ad0 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/EntropyCropTest.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/EntropyCropTest.cs @@ -25,8 +25,8 @@ public void ImageShouldEntropyCrop(TestImageProvider provider, f { using (Image image = provider.GetImage()) { - image.EntropyCrop(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.EntropyCrop(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/FlipTests.cs b/tests/ImageSharp.Tests/Processing/Transforms/FlipTests.cs index 45ab1e5f8b..8e048ae04e 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/FlipTests.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/FlipTests.cs @@ -29,8 +29,8 @@ public void ImageShouldFlip(TestImageProvider provider, FlipType { using (Image image = provider.GetImage()) { - image.Flip(flipType) - .DebugSave(provider, flipType, Extensions.Bmp); + image.Mutate(x => x.Flip(flipType)); + image.DebugSave(provider, flipType, Extensions.Bmp); } } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/PadTest.cs b/tests/ImageSharp.Tests/Processing/Transforms/PadTest.cs index 7caa1e7c0e..7471330bea 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/PadTest.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/PadTest.cs @@ -18,8 +18,8 @@ public void ImageShouldPad(TestImageProvider provider) { using (Image image = provider.GetImage()) { - image.Pad(image.Width + 50, image.Height + 50) - .DebugSave(provider, null, Extensions.Bmp); + image.Mutate(x => x.Pad(image.Width + 50, image.Height + 50)); + image.DebugSave(provider, null, Extensions.Bmp); // Check pixels are empty for (int y = 0; y < 25; y++) diff --git a/tests/ImageSharp.Tests/Processing/Transforms/ResizeProfilingBenchmarks.cs b/tests/ImageSharp.Tests/Processing/Transforms/ResizeProfilingBenchmarks.cs index a300672e85..7b83f0a8e2 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/ResizeProfilingBenchmarks.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/ResizeProfilingBenchmarks.cs @@ -34,7 +34,7 @@ public void ResizeBicubic(int width, int height) { using (var image = new Image(width, height)) { - image.Resize(width / 4, height / 4); + image.Mutate(x => x.Resize(width / 4, height / 4)); } }); } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs b/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs index fb195254e3..0092ae9da6 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs @@ -39,8 +39,8 @@ public void ImageShouldResize(TestImageProvider provider, string { using (Image image = provider.GetImage()) { - image.Resize(image.Width / 2, image.Height / 2, sampler, true) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2, sampler, true)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -54,8 +54,8 @@ public void ImageShouldResizeFromSourceRectangle(TestImageProvider x.Resize(image.Width, image.Height, sampler, sourceRectangle, destRectangle, false)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -66,8 +66,8 @@ public void ImageShouldResizeWidthAndKeepAspect(TestImageProvider image = provider.GetImage()) { - image.Resize(image.Width / 3, 0, sampler, false) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(image.Width / 3, 0, sampler, false)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -78,8 +78,8 @@ public void ImageShouldResizeHeightAndKeepAspect(TestImageProvider image = provider.GetImage()) { - image.Resize(0, image.Height / 3, sampler, false) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(0, image.Height / 3, sampler, false)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -96,8 +96,8 @@ public void ImageShouldResizeWithCropWidthMode(TestImageProvider Size = new Size(image.Width / 2, image.Height) }; - image.Resize(options) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(options)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -114,8 +114,8 @@ public void ImageShouldResizeWithCropHeightMode(TestImageProvider x.Resize(options)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -133,8 +133,8 @@ public void ImageShouldResizeWithPadMode(TestImageProvider provi Mode = ResizeMode.Pad }; - image.Resize(options) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(options)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -152,8 +152,8 @@ public void ImageShouldResizeWithBoxPadMode(TestImageProvider pr Mode = ResizeMode.BoxPad }; - image.Resize(options) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(options)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -171,8 +171,8 @@ public void ImageShouldResizeWithMaxMode(TestImageProvider provi Mode = ResizeMode.Max }; - image.Resize(options) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(options)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -190,8 +190,8 @@ public void ImageShouldResizeWithMinMode(TestImageProvider provi Mode = ResizeMode.Min }; - image.Resize(options) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(options)); + image.DebugSave(provider, name, Extensions.Bmp); } } @@ -209,8 +209,8 @@ public void ImageShouldResizeWithStretchMode(TestImageProvider p Mode = ResizeMode.Stretch }; - image.Resize(options) - .DebugSave(provider, name, Extensions.Bmp); + image.Mutate(x => x.Resize(options)); + image.DebugSave(provider, name, Extensions.Bmp); } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/RotateFlipTests.cs b/tests/ImageSharp.Tests/Processing/Transforms/RotateFlipTests.cs index f85ef6f13a..432b2549bb 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/RotateFlipTests.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/RotateFlipTests.cs @@ -31,8 +31,8 @@ public void ImageShouldRotateFlip(TestImageProvider provider, Ro { using (Image image = provider.GetImage()) { - image.RotateFlip(rotateType, flipType) - .DebugSave(provider, string.Join("_", rotateType, flipType), Extensions.Bmp); + image.Mutate(x => x.RotateFlip(rotateType, flipType)); + image.DebugSave(provider, string.Join("_", rotateType, flipType), Extensions.Bmp); } } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/RotateTests.cs b/tests/ImageSharp.Tests/Processing/Transforms/RotateTests.cs index 1f18564290..2db86390de 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/RotateTests.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/RotateTests.cs @@ -35,8 +35,8 @@ public void ImageShouldRotate(TestImageProvider provider, float { using (Image image = provider.GetImage()) { - image.Rotate(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Rotate(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } @@ -47,8 +47,8 @@ public void ImageShouldRotateEnum(TestImageProvider provider, Ro { using (Image image = provider.GetImage()) { - image.Rotate(value) - .DebugSave(provider, value, Extensions.Bmp); + image.Mutate(x => x.Rotate(value)); + image.DebugSave(provider, value, Extensions.Bmp); } } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/SkewTest.cs b/tests/ImageSharp.Tests/Processing/Transforms/SkewTest.cs index f2c2d7cbd2..63924c535f 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/SkewTest.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/SkewTest.cs @@ -25,8 +25,8 @@ public void ImageShouldSkew(TestImageProvider provider, float x, { using (Image image = provider.GetImage()) { - image.Skew(x, y) - .DebugSave(provider, string.Join("_", x, y), Extensions.Bmp); + image.Mutate(i => i.Skew(x, y)); + image.DebugSave(provider, string.Join("_", x, y), Extensions.Bmp); } } } diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/SolidProvider.cs b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/SolidProvider.cs index 0caded4201..08e3e1054d 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/SolidProvider.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/SolidProvider.cs @@ -55,7 +55,8 @@ public override Image GetImage() TPixel color = default(TPixel); color.PackFromRgba32(new Rgba32(this.r, this.g, this.b, this.a)); - return image.Fill(color); + image.Mutate(x => x.Fill(color)); + return image; } public override void Serialize(IXunitSerializationInfo info) diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestImageProvider.cs b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestImageProvider.cs index 03a685d34f..e939d78bba 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestImageProvider.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestImageProvider.cs @@ -82,6 +82,16 @@ public static TestImageProvider Solid( /// public abstract Image GetImage(); + /// + /// Returns an instance to the test case with the necessary traits. + /// + public Image GetImage(Action> operationsToApply) + { + var img = GetImage(); + img.Mutate(operationsToApply); + return img; + } + public virtual void Deserialize(IXunitSerializationInfo info) { PixelTypes pixelType = info.GetValue("PixelType"); diff --git a/tests/ImageSharp.Tests/TestUtilities/Tests/TestUtilityExtensionsTests.cs b/tests/ImageSharp.Tests/TestUtilities/Tests/TestUtilityExtensionsTests.cs index 437c295b9c..88ab987ed8 100644 --- a/tests/ImageSharp.Tests/TestUtilities/Tests/TestUtilityExtensionsTests.cs +++ b/tests/ImageSharp.Tests/TestUtilities/Tests/TestUtilityExtensionsTests.cs @@ -67,8 +67,7 @@ public void IsEquivalentTo_WhenFalse(TestImageProvider provider, where TPixel : struct, IPixel { Image a = provider.GetImage(); - Image b = provider.GetImage(); - b = b.OilPaint(3, 2); + Image b = provider.GetImage(x=>x.OilPaint(3, 2)); Assert.False(a.IsEquivalentTo(b, compareAlpha)); } From 24433e999fb647860957d13822a85f84ef978526 Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Sun, 2 Jul 2017 02:44:01 +0200 Subject: [PATCH 034/135] ReferenceOutput + ResizeTests prototype --- .../Formats/Png/PngSmokeTests.cs | 6 +- tests/ImageSharp.Tests/ImageComparer.cs | 13 ++-- .../Processing/Transforms/ResizeTests.cs | 2 +- ...ShouldResize_Rgba32_Calliphora_Bicubic.png | Bin 0 -> 447170 bytes ...mageShouldResize_Rgba32_Calliphora_Box.png | Bin 0 -> 450534 bytes ...ShouldResize_Rgba32_Calliphora_Hermite.png | Bin 0 -> 431023 bytes ...houldResize_Rgba32_Calliphora_Lanczos3.png | Bin 0 -> 458942 bytes ...houldResize_Rgba32_Calliphora_Lanczos5.png | Bin 0 -> 464896 bytes ...houldResize_Rgba32_Calliphora_Lanczos8.png | Bin 0 -> 469121 bytes ...ze_Rgba32_Calliphora_MitchellNetravali.png | Bin 0 -> 429460 bytes ...size_Rgba32_Calliphora_NearestNeighbor.png | Bin 0 -> 467253 bytes ...houldResize_Rgba32_Calliphora_Robidoux.png | Bin 0 -> 426904 bytes ...Resize_Rgba32_Calliphora_RobidouxSharp.png | Bin 0 -> 432999 bytes ...eShouldResize_Rgba32_Calliphora_Spline.png | Bin 0 -> 390539 bytes ...houldResize_Rgba32_Calliphora_Triangle.png | Bin 0 -> 418080 bytes ...geShouldResize_Rgba32_Calliphora_Welch.png | Bin 0 -> 460956 bytes .../TestUtilities/ImagingTestCaseUtility.cs | 3 + .../Integration/IntegrationTestUtils.cs | 5 ++ .../Integration/ReferenceDecoder.cs | 40 ++++++++++++ .../Integration/ReferencePngDecoder.cs | 31 ---------- .../TestUtilities/TestImageExtensions.cs | 57 ++++++++++++++++++ .../Tests/IntegrationTestUtilsTests.cs | 2 +- 22 files changed, 118 insertions(+), 41 deletions(-) create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Bicubic.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Box.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Hermite.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Lanczos3.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Lanczos5.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Lanczos8.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_MitchellNetravali.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_NearestNeighbor.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Robidoux.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_RobidouxSharp.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Spline.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Triangle.png create mode 100644 tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Welch.png create mode 100644 tests/ImageSharp.Tests/TestUtilities/Integration/ReferenceDecoder.cs delete mode 100644 tests/ImageSharp.Tests/TestUtilities/Integration/ReferencePngDecoder.cs diff --git a/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs index 90f994f366..05aa3c2d35 100644 --- a/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs +++ b/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs @@ -35,7 +35,7 @@ public void GeneralTest(TestImageProvider provider) using (Image img2 = Image.Load(ms, new PngDecoder())) { // img2.Save(provider.Utility.GetTestOutputFileName("bmp", "_loaded"), new BmpEncoder()); - ImageComparer.CheckSimilarity(image, img2); + ImageComparer.VerifySimilarity(image, img2); } } } @@ -56,7 +56,7 @@ public void CanSaveIndexedPng(TestImageProvider provider) using (Image img2 = Image.Load(ms, new PngDecoder())) { // img2.Save(provider.Utility.GetTestOutputFileName("bmp", "_loaded"), new BmpEncoder()); - ImageComparer.CheckSimilarity(image, img2, 0.03f); + ImageComparer.VerifySimilarity(image, img2, 0.03f); } } } @@ -121,7 +121,7 @@ public void Resize(TestImageProvider provider) ms.Position = 0; using (Image img2 = Image.Load(ms, new PngDecoder())) { - ImageComparer.CheckSimilarity(image, img2); + ImageComparer.VerifySimilarity(image, img2); } } } diff --git a/tests/ImageSharp.Tests/ImageComparer.cs b/tests/ImageSharp.Tests/ImageComparer.cs index 4a37c6c459..30e89918c0 100644 --- a/tests/ImageSharp.Tests/ImageComparer.cs +++ b/tests/ImageSharp.Tests/ImageComparer.cs @@ -17,9 +17,9 @@ namespace ImageSharp.Tests /// public static class ImageComparer { - const int DefaultScalingFactor = 32; // This is means the images get scaled into a 32x32 image to sample pixels - const int DefaultSegmentThreshold = 3; // The greyscale difference between 2 segements my be > 3 before it influences the overall difference - const float DefaultImageThreshold = 0.000F; // After segment thresholds the images must have no differences + internal const int DefaultScalingFactor = 32; // This is means the images get scaled into a 32x32 image to sample pixels + internal const int DefaultSegmentThreshold = 3; // The greyscale difference between 2 segements my be > 3 before it influences the overall difference + internal const float DefaultImageThreshold = 0.000F; // After segment thresholds the images must have no differences /// /// Fills the bounded area with a solid color and does a visual comparison between 2 images asserting the difference outwith @@ -50,7 +50,7 @@ public static void EnsureProcessorChangesAreConstrained(Image< expected.Fill(NamedColors.HotPink, bounds); actual.Fill(NamedColors.HotPink, bounds); - CheckSimilarity(expected, actual, imageTheshold, segmentThreshold, scalingFactor); + VerifySimilarity(expected, actual, imageTheshold, segmentThreshold, scalingFactor); } /// @@ -72,7 +72,7 @@ public static void EnsureProcessorChangesAreConstrained(Image< /// This is a sampling factor we sample a grid of average pixels width by high /// The default undefined value is /// - public static void CheckSimilarity( + public static void VerifySimilarity( Image expected, Image actual, float imageTheshold = DefaultImageThreshold, @@ -80,6 +80,9 @@ public static void CheckSimilarity( int scalingFactor = DefaultScalingFactor) where TPixelA : struct, IPixel where TPixelB : struct, IPixel { + Assert.Equal(expected.Width, actual.Width); + Assert.Equal(expected.Height, actual.Height); + float percentage = expected.PercentageDifference(actual, segmentThreshold, scalingFactor); Assert.InRange(percentage, 0, imageTheshold); diff --git a/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs b/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs index fb195254e3..9835a3e3aa 100644 --- a/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs +++ b/tests/ImageSharp.Tests/Processing/Transforms/ResizeTests.cs @@ -40,7 +40,7 @@ public void ImageShouldResize(TestImageProvider provider, string using (Image image = provider.GetImage()) { image.Resize(image.Width / 2, image.Height / 2, sampler, true) - .DebugSave(provider, name, Extensions.Bmp); + .CompareToReferenceOutput(provider, name); } } diff --git a/tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Bicubic.png b/tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Bicubic.png new file mode 100644 index 0000000000000000000000000000000000000000..026630f3fc2695230bf80a833b6b17828974579a GIT binary patch literal 447170 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ªpXvU?>O$Gn^(bPsj?RC*v#aR)pb9^ zvn%q-a&r@jFY1qMpq5>N|27FFM9aRtI%BD{-r11qn_6tMIcJ*$m2`;Py-*>1PNl<7 zCGa{MT;kl?3Y(jnw>&Pd_>PAolh)o+lF+$>P*V)s$XWZMx`JhyM(qoS?xuO$m~k?$f{HOnDEg#v|wqZB~u5R{xGzEB00 z1(B}~Ck?(rCW<=4k7viY7peB2{nLMDfAPmZuyfBm1Kd>yWXf||-*n@{){b`IJ57-T zyKx>DfMjIjJ*vGcyhkT*-9!=yh}R^!eK90)4(~CK^O^!=L=Ts^wDRKG4Auk?0L9(8 zXaLTIFJmoD4OE|D__$q*(5~`bK1F1 zLXu+7xAyV5sl$==$|^8URb{CgfT~-SI70BHibt6Qx`>6Yzm^27PE=fdKHQEJQYEMt zD=O<8g-8WXN+&tWa8Olty7t~=1_>!AJLC#56#?qDr1o<75(vBbNQ*`?KS~^ z)P}}Z-3lcPlqKj(ZSTQ>3TCMkb4elF(IS*JYmphDrVh6~2RlA8G(^n=zXqJ)p?pkc)z?xbsEQ+`&lf?SrwI18c%(EBH zw)5xafzDQtBa_&9KT^+$N6|dhuO<>7Ow{n9ph-!d`Js5M_0!3%h)MLxJLKf@E0tmn zD+W+k+P7am6|CA#BoNJw1OtjsEl+glp%eViq@^ZRSO;HHXa(OuNhtU={dhW!?sDKK zc~7<`vU?zT09`2v375^{0Hy&i?P#}wlR>hvrjOS2tP&FyT8s?IZ45XZsV8_S6B8q@ zldgi4m5o9w7s|(%2{@C3!#1;s?i+piH~-N$ZJq;?npJJXVCLJ~s4gJG8mjB;`jyXV zIUC_C!eE|NHZ*wOM*4g0?#(L@!Pk-A4%pJfux-vyqEy*(bF{YZV|M)X8M=~LyYkMD zthOQo*}rAoCtA6P#cpvz)U|y+ybw@PF?eq}yn)ttUit8^?5!UU*tfp-pF?yK@TuJT z2FL7>WO(ZP|BYkf=@|v~>Dxc@y#UQsT|gsQ^E)^Ele_`us`?G)h-`kP;N-F}R z&jwd5p+ehS9N}5<^r=8Hxct$kZrdangrvyh0^IG6EulSkcPJ!TSV~$ zG;nYT-vVJ6r?bfc?#c#>FQ`0bIi(Sc@pa|mto`S@uv%D^N+l#YueysYIwnB~6OX4z z(2spEad~OQ&xL}#4p?hjn@=ipT3i*Asenue8ZD_HK}vp%+!Nw+j?P8Iyog-|=xlK~ zvI8N&4f1tURICs%Wx6L)UrVQST6N|_bO#EU`8mZ7j}8ysv(A&}s8EaS^G~nZ4wqkn zudKA#e*Uw+=lfOJEa$CG1i0odDCckAyXOH(>s7T{z?F@>2k~#2RITOU+p>&Lr6p0o zO0H>8M-)H``|xLb@BtNkro0xqw-Wdmt^aM~`)EBu%Ko~a8SQ=HjZvWj#Q~AY`Bee8 zrk)NDxpO8(TRt6hO-;M|Y-MF2JXl?HRaH)Ip1+qZo|O`xBCd=k^TT|GbTG0#iLY%1 zQ}MvKnc(gkIQHpww@;_rqPW@6ZUkO)V^fn2jm}tQQJI}Q)^1ZX6Hd6#&C-Ptv}FPr zru*0DBq4;zY;~PV@QN`j3h2crwS5VprTx0o0Wwb&Wn;T&#|J~n!Anz zJx}?lf^1W?CR`P^AY}1kO5l?H>$xhC3F?-`yN?%ew)FkuaCaJpm3Ngmur0d1eLm-n zl|{IyKA_bIpI^2oIyqEp#cy}_SM#K`6$~%5Oc`# ziwdY{=O6`_>_|hcE2&&sOoEXpfCkKX)ucCq7}r4^Q1 zIfpup1gfuNWgP?-y0~oM8HiVz017^ma&4DDl0)^fz6mxC2^gnR%;q4>&fleKZw6zh z`pqoxq@ra=J8R28gBg~C0%de)+~%idtg5xm-u&}Fu~(lbITqBwG2QddFbZZnJ-2C5 z63seQ@y@PftLCudBnp)bl4_{9(gy@3?Nxx5^gukj0xty*lSVO=kt&OpJWs&+B)KIzXvy8h0ZQ7cVOv2rat1B~ zQq;07?V?a&DXvi6fWsKvm6-1c4`lb^v!rm-o)UHA+99GUUw2f0M$&5)dlD_Qb#!?5 za*&bhTS&)7N35x?${HGL;bvB?sih6*E!U9;+0W>j%h5pM1NlLf^4V!VgHOSSP&FT< zK|rmJ$kVVWiAugy5eRg_ViL@(P}sGDNk zvd2+z;Cq}BL*$|wI5}kLwU)t!UDKPF|AqWi(j+K zqt9F2i8H(hT1^7t#DhoHb)lOBQDS5F@4}lvbk}6U&w%4ni7bMTrdc8U!mAc8Mya$3 z-&5RdS3meuJNN8w*}cB^?bPXS+EjeO3OOiy;d(fuJ`O(@EM=amX3F;CsImAuy9fl* zz>U`w0C-Lz+H6f0Z$WB@g$J+mno`z~mL5Zgj(ik(XEqRr$W5(9PUGUu4&4XVDzUj~ z4k_nge|p58Jr$GL$k~8&siamGM14zjn>B-l7tztI|A4NX;XMR_!zCAL#ePuA8X!0&aoAIn5K<&WG=~ zepxBOuFg3$B_CD2lPIU8K+(lg;A)_XR8gRzECs-d%4&zs1fyvGdue&03juV)Vn8OR zkJIIG21UxJ2`Y7m;XJoVdG)o|2!Q2w0xhj>;rVK|YY^LKmd;lE^{i^yo0>U#uC@FGU#e~kG913JFQiupc9(YVIK zu?g=ZvB4JN9Kmn{!*kZ$a-42yo4cD23Q+-)Fiw{k;Wcc7Ts*Q;3cDrXw8}ER2g*!6 z)6I<(tEp^(+I5TV0fi#t&4&|FA}uZk3WJ)E4Oc}`mgVPa?J{S0VaMLPvS6)s zxsGJ?jnRFVRr0-~6fN_%jsR!|=>4Dk)Bnoy>2CA$5S?&lRfwpg4Z4M3P+Z?fiDW17 zJd*pK(mmOTzX>|^q*?Bltx&%F@26gkDPQ8ti4))b$|+y9t0W@w*+o?eBHefS%Kysu zlmvrNR{kAVoj>dJCUS73yEbqIh5Bl2sKByg|yp5U)?Jw-eu?zO#%Fk@F_ewA{ z#-(j*skVmazirD9=YzLz+7wm#OJDoPNO2+RXm|hJzxhLZ=GEtHb@*eeXg+7teRu6I zfA9zPjaR;F5AM80mvj{FX3UySf8XY39@##xaU(_rcJXyvg>=uW0H({UK;lb94RN`; z1{6Rgmy@bRPE`3jR5c`tiT)2QBV58IrsAgZidHvrkv9nGS$cqZSgp&Ydc@Y`nU0x-d%AJEvUmUHQ1n-7UC@T@ebs68)*C6$&Ik=bCDALvb< zLl&R?T8!j9Gvx#1$#JWqgVg|71BCL2@4jmdx4b3Gtmm(pmX1F5@g;)4ZOY4&h+HDZQsXWK`2fD=jndwUVyqX0!fy1(2O4mr1JHno&tHBrPs z1;w6NzIeP#VS~yrK2EU&WJO|;QDa+EHOPyK#0>5MTpykH^B2z3`2~&&dVayub3svo zKcTPXP#l)ayM|7aiNl>rf-dAA4j?{NWc_MV`3LU5NoecaFCBCDU++eoBMJVkHc(i! z9 zrhmlFbT=7AfqnS?$G*$Br;jR{2Ys})#@qd-_IAWk1iR7#izvZ#pCR}G2WVR)2RTg} z=6HW)kgM9)UJPE{s=q_f67hKqGCjY5YG`@F3Dx?Rqt?=K(%Sf1py5Da4G`0rwlX_p z)yGa)T5*HzjNP%rFfB0E-7Bwu&DIw-XoI)x!@v81b)EYToz^tLzXEYiwe=6)w1EeM z7AXl^2{OObTu9#Z0{h>7_qXlXi58zf$U|DVy*y^2yej@~45_ay;322CmOU_LQ0;DU z$WtM7Gr}4=Kz5l6mQGa|mpNWZ6(4qyql1NWk7zT;M?U*opu8? zQt!h)JJ}!=%Pa|FoyuI>-9lDaL7;_a3KN)XfcuJpAv3IkOFK+~P~@MfP<2fUJA{eK zPSQ&S;)SIJw{DRgh>C-J0%uMRkR&|AI6T+kfvh03ep!>!nrk@lHN%3OL=K-gdD;i? zv>8L*)eL(->iYcm$Ov+5aWP)}xhz8@V4IRyDSFi}H!EdlJ%&Rl-Z z2Kf5<**kC<8aB&B%1m(Q3rR(!eJ%2jl1fV|F>z)YbmN)XboPm5Un?lbT(QPw*081m zP7(Z`NN{;^sVb;!>Xns(1?NL2%Nfrvt|oI;aeQ~9zB=Z}vdZb+C+wN7di&tkgbmDy3rizuZjsz0bY~kb zVtLfJZ7oL*-N<#0XZF@d8`eo-whg?i;%ILD&~k}?^-aLpy!JE_&M@cd``>$mqJyrG z?n>4#Uf9c9%ejVN`dmL%;z&yr?E%*z4}@U0PtPp5N+fVdPOcV73a0{*mHhSs_CoFj zf%C6-B;WbUNlzp}$C0pkPpGn7HRJf%msjyV%}V-v?ysfqoFLQ#jwZ>G1QkH?oB4#e zlZhfbL*9bQtWSqt_^uP{T%0%uK-Ge@`XMeusRp7v=p1_G7T8A|x~+p&wJyV#6az2i zYw+;#gdM+l!mj-61J`P|)Rx%ohr_-#t*N;MQuG7+weLJ<&Gn@yleA8E4W&*5l2P0^ zWGzxesX+vn6_L0~slf9IC<+c)Tz+k@lRb;3hvh(;C6ba4d1`#jZhiilYx8Rw&j2r> zsCw{IJ9hF7ORqjK z=~cF~G)Yi|Jf+f0i4qvVXJz5O4SAPJRi)2#hbs1f`o=gd5u&Vt*gJf56^eE-bOo;>4_ z&J6GS%!yM#JVVye)@mPq@|lymBEyw3w8gFnnX?9BBP4ZU^0EpEEQNp{`4D#CF>IZ`%|m(MXxaXM0GlQe9=h*ASpNBa%4#?rkLp_yr9!=9AcK zkwUAGOA^d}za*EXQuTf7Kub$YsGFz-1-EI~u&wJP9o48Ut9#>~$(}~rFt>Np33_ez z|FiX;L6WA|mEJ9Hvb^`+x3|;NJu~R>zyJf1AP52^s3oP)N?2)SVngPKevBk4LZRiZ z_RlIL#qLrxlE7UW0E8J}Opj~tO?8*|-kZ$IESq}H{W80oBMzh4gX!w3%rD>fnsd%Q zw+LD8~@$L%W1tK_n6&~CQ^906J3 z=Va{9TT^X`ecC(8o#(x#N9;leVg*f{!*OkFry_F(ek{qfYB~~m1um|~Y;Y`YM>{L& zR8W$IDcI9WIsd74i1?#nwlfv2w}kKvwuD$f~Nt+#;vZ0xIJ9iFs)#|3*y3=dl zehcYdc)?$HRb88HfZ6=fKl|s_+TLzO9OQ|y5nsflVX9puvKn~PeuFd)XnwwUn{=vP zk`^6+4y=Ziu6%mQB9c z{8zuQKmS+%r)2^&eDl|S10~nzjG&twkVywsxmxz^CuO;X%&GPkPysEw>m0!y}tPIbN@lS8f< z4^_Xi_AVostU~VU!x2X^JuzX|=>~>JM%^Yu=OqgqK9I-;OV6?i5ZaNWecV-a8ybof z2Cma5Qgs11R2C6ykf|zmw6ndCig<)eD40lzBccg=0=4EDbRM;1TRenta?J|dzj?z8 z9=(sFCr+XWLYc$s4$--60Ee77dCYfe?30w_AJ#%3eEj5z4Z-Vtdie_HV$b29xF()? zWjUPTqC9!O5$t#xvaXOQBG@BG5TJM{gx3>)1R6y`M@>fJlTC?&ye6F&H+QX$&TnD# zzIPkhd|p~^w6MHxHFeE4IW!ApJsQJrTG?%eTd{Jwz! z7trWA>wC*I^6`^lS76T3d5C|J<8m>dx#YHkJS%ZsBDqJ0`s|A@KD8UbiLsp})RUh8 zNB7y65IdaIMvnilw1!hTnB~#X1OSblsC}6m+R-TJaG>okAfNbuu zoPWgu`Ez%N@pO1Vo*UIj70~FMly(~{bQV0{%u?Unn3fR)JHT|HwshxxD*3ExOL+eL zsIr`x)s?4NRcS8wIZTY&u_->sTQ_#?`xh(i`lBg(^^nF2i~?FN0Gw0Qs`rOB=rnh% z6cI)`Md9Quv4`X-54J0hNcfqB@N^&%6cM#>ijR1|HBGH{;n-n^R<)v9ZV53J;dI}M zpN=4DKuOUv!HWnLdcLst4YlsC^>_J@Xa5ArB2aB5kf*y*l0a3w{$yzc8=Zu*qYnAtgPy=%?{kQrVB4y zR#BHd_~rj)|Ifer6FYhSbvsste0Foz?%fg z&{g07h--qnNZEhRYZxP)6y3UWMGBc>I|almz7P4g{>^%9;q? zoCC+Lr$g8rbr>=$wbIhGiEwGnvLmy0P~2=;C`uGyG#?;Iu9Pz_yUr;gIjxfjOTqgW zt*HztZ0mO{ZT~jaJ{?XRSU^x3im})(M5z_HBvG$>n#w&RJ8rFqE?9r>ZTOOEK7Xn| z&O;6y&D`eEz(hP?_&nzzx=HYhK^?v=Gw}Dd@ zfL&^+!guZD*>foI?zn)U4ymu6%^H_@Wqkpa7^*uu>!$Wjd-$ZEKve6h!h)g-TSd?y zr(+G!=8=@EfNIJLWrdGQ#;v_&n-cS1dwZy+_}Qr>_Coj#xs>}V2YFfT!CM?`atD!; z7Bs>$t=P&092s(Osh;)`j}(+tLSk1rr?SVr*&x9st%vpxw(RKP!_M(ZVWl}2Db3W0 z_~4+cH1i2e8$J~-4q|+u*F^+dI|p{=-0Sw?rOznV%)8#| z9FC^Onwy*W{z%0USf~ptDN|9Vdr#03tj7D5s7I6R<1-UBGcyS~upanqai=1Yb)T-z z&`xqXg%|L_=}E4&fU{ld{^JASCf`Y8@?+!!OFb8bl< zQ4(e<^5cOCc&ZFkR$04NnuAzHl7Bd+{1C8bPmMjgvS%U4^+~#v(;a-KvM?`=S*Z#@ zzR%}(xx+P?)?FnqX_r_M<_>}^@L33|8k|R=#j~ufLZ|`~66TyNap&GS^&&+SN<;pe zK0{5^OZg}jp*RwqtNnxE&ty#NbcOTMi5(*PJwduZ-=+NBVMDnrJR3qximj4gm;5_v zzwzoZR9i_$U-2PL)=wz zF=IebTDCJug_OcUEG(;X@^@XNS)30O^~ow&xF(;YWPBOOT?DtzO(n^tMJ=nm%V!1l zsMha%ant_fU;ek&ed-;1_doi9E#Lac9u7UU6A(g z|B+@@B0H%rNtOSRI)WT3(~+S8x+A(10!%Rqo-0?bxPW40WXwAN5zm4re4sTsSu0M? zC$dwWvr-UAK^3KnQ~0?1q)EUb#Say1lrAHipQWL-2X`Ox*<=Q`-;n!Kaz&9#$6~0R z2twjS76_7Wzy2y!>J;+OMX$|Lv-1d|T|V1z2qO5rs=70a+?7QFj4VN>^|0{>HAZ)$>Vm3s@tS(EN_H;FT1uBV-^bdzYp@r~9{^ zUGl6FnY_J|ZqazTFG9=CjoYK%F{lxFI%S~fX@W0Ig}8=mA}DJ;Z)PT)Wt{33SWFzq z797kH1%Xsj^APn}8Sr>OXo9**iW}%);hyC01+1qouC}3>%DIp(V%>iHlONf_QiQM9 z3V<=IN10cHs&NNiWP6iy%Fn8;l3`{V9MLq&r9x1Ja^Hi_#q+%=XGz9U2>%s|6HUIC z0F~wfL-|HVe#zQKYAF?p%Y0_qHKXm2xm4KgU0v`Hnq`4Q&Gs^NovRWGK#SeRvbKVjf9=_%}AXX{881vbfJH zC^a{Ee=iuE$lfK17~q2okG5)Tw#W z6`!r;SBV57&ou3tNg8Sf$z%T+>XbmGT$m-*mTztIT_Z{;iHzk&i~$_wgi9i@CzDFh zFeO<1#5aAOS4ood()}mfsAt?tT0$v6G9h~hYjqQ=bv*-W1*phjVVA)=M=2?^gIOe; z_Clyl7r|D=XsgbFEt+JQ*D)uuWKNRRIT{1i;VK1=%H#UB30$j=%A` zJ%0GeUOV37o=NLeP(S+V&+OEh<5Y$alpBkDAK|bflFRuJQShW@1qO8-L_uqzTzxp{ zHbncb?&RCQ_O?}ZoUnBcZ%$FV%_Hl*a_P_Q$}fLtwTEA~H|a`hP`m5^I}BX;(9WNK z!HOE_Sf-xX8{hlB%?yp(K8N~W|F8dx9e?e0w^3iEz3w>ol8pl=6%r&g*wLa*cS8d+88(AypqhbhN)~bXuASP7|?7g4(0{%FC?elJ-M# zBNaszQczLPp&_W#3TJW<;{?3}T5iE(*(ouL zxw5k6l2QfPQRKfm2Z5QVW>ZKG$#bZ)!o?Rk+H>@%4{x@#w0f1TeK86UIj-!H1QX?! z#3P(D83?XYaSJaNtRpB)aEYp52{vTdC$dEeNfPr$FzLsS9#Nch*!-XkxxJ^Ocm^;cf~fA-nuK7gq^P=X{jALvxh!g0C| z-`C@NeG&`ZD5L}+gd^g8Q1g%^_2&{1M70;ja_!%Kde^<5>PR4Qq}$?oih&%t^E_H5 zoj_`zPEg4YRq)NV4O8;?pfHfQMHhH(eg>Ye-nl0w9NFARETZqd#AguRS|FhX3LiOL z*Ee?9+4Ha1z1vs#np_e_+*ce+4*amUpRTVN7_#3+fF!*$1Oi)LUH5KEiCSlKg?oGG zP!C-MXO|ALT9z{uKkA^$%SuUjB!2h4it)Kf-mI0qK#3$rO^AoIGe^UZz_Woo7$F7f zK0RLzA*(P6#tk%&qHTqNv7k6F4J2;wt`m5X{PN#6D7IuCSwd%4$a|Pp!NB{J41QVn zo`O}@CgWq%d}~>yl<@arRt@i3R$gd>k7wL?G@mo9jwdCR*bqam9bKg$0`?k(cwa*n zUcY0D+bFV1;?`KWXEmiM*50ybjr{jeVV2!}v}+g7X1Qn}Bc;MF^^s^IYd)+fudbO@ z;I34}A8<;m3o9;J?`UZzS>;-o&r53<28V_`@N3znI&_^Yp%-#wkj;xMUUXkXsy`J& zC6u(!^CHQl;lsOfkfvKtCW~ju;~7VioOn~QDieQW4$wLK1PTT@*iL*{!dQ_S4HKVZjCpR(&W?%SI$ z9)*L^;vMwq1eJ9HPghq56_Ym2%_9SzvRVR#T0~uh5U_^;eYKnNEV_5^A-K8JJt6CE zZ$fo4k3PKsNMqCPU;U-^e()ozqFk##_L}X?jrl-e5lL>b@2A!cY*ldVyS@}DL+d$F zHr>2*&F+8pw|4r>d88Bz?~^4u)O%w2P!zLxJ)9a-ge9+d`pLT+u@tJYX5p$m{b#>KYGq z(wbdjMVW+ z-YJQ?4!^#4;CmEE8l#+rE|hw;O)b8WauWzll3sN?6%{~td~PcQAz5HFBFU9qgs#La zu$JH}1xd+^)wR@WB33?j8j~+&nz6u|A z&VKgSe_=1Z`Z9qx%caHQd?t{9%i2Xt)1-DOr4Y&{Nak{;CD)Y#ZI>=7SlJNwgeizk zGE_khGH~35>{T~z83lBrFIr#!ICAkVd+E$Mcq)R$4umtXQ)86~d2v*l;149k`rf%z z=?iqP3Mfieh51No30Rw)aVemLrz^39D3k*AWUv`jt3eJN5=-|5P|YOhQ4)lN4}u08 zfcs`=X5ld4e|YA@W1}b&^=v81cz$ZJ^ggB+<^xoM&u@zWuB71VDPZdP*%@nTYH)5P zoi{9!dwF@@AxwGbrD{5xLem#8NnAsdEa)bS_g7aFSiGpy*4M047>KvphW8SzB?kyC zanf_pxe+I%fjy%QlDtY$PzpBMKym5Hu+2=L`;uyFW`5hI<~FUMblWyiY26r1x9`3j zw^h!#K5r$tJyeLhBKU#8it{MeB55``w_?A%J!d`jIlOjY)3t3Yt36Bs%V&VJJe^{( z88J!~a%_E`8<8Cw7#i_GO>ldzZ{+D(a@`r7cMT>giRg1zA+E+j&nPn?T5;6LW$4d- zSJKery9%r4JC85(C`ouLkw^mKBT1SEgNVoFT2ssz5I%ue&wRY=SQrh?uacFaPk5tntKg8ygt2i)W75m4|oiE3bdk^0TBciCdI_yG0_|9e%*4&=UYRjAHF zRU}XO81a2lAnW(ST%bs%HJ2XPFbO4$f@FSl*2=(yXD3N7K!A%J=#7oQNYT###H7gc z%)Bzo66s%5Ma5p>#efd4FkiX&X7lf=ci&t3cwn<6#$25FS|~i5{Y0SZA%n4B6)~- z10@t{dSDL7Ql3G5O_?Vkk^fS2m7)TZSRsR;8=<0=Y*Uf6)5m1ECkmHr{3{T*K? z{DAu>p6zH?yA5#9YToe3YRWdlvVn4y9Ng}h#2Pmh@Vx}tl;Oy zjNFS;r_R_Y$yx`ht)^46NVdJ+YRgRW<4Y9e76 zx#tOHaS6_oA}?E}l)DsLJQFEJmAL0n-_0*-TcU#Yo~sI_VAHd&uPp;U27cm<-n`w9 z{J8>HPstdS9g4`DoDIY{5czbjJKU9#nLV3bgx^iq=LvEW&IdY&yCsJG_G#I}Q|KzgF;Z5>cNHd|#GafeJ=hX|m8?x~pj zqnPt(VAO47@^dKw5E|@Cvadpr+Czy#_si$4h-3Oai`Xi0hpz>3j4R-~lg+_XXA+P9 zYEhnbBmOHvdM9Igl0QlN_M0c)bL)l#tFGN7&#SVMi>Cs3E9fwM9d3fhaQ(45nxqx6 zR95tC|mh9=vFqz&%^ z5v4TP=%b%m+nHBv_|YY+?>cPv9}n2k4lZKqrtP5|xj(*&WHcW+W}A)NzC$&;=av(> zC_F|cM(h|w_AY$S=E|;>96e+E;L9ruk1TC%(Xt8T`drt>Z}NU1Wq~;Iic#JOhu0d; z)e%c66S+OZJuJY_> z{m`v#L0(cJr+^c00AHm8MYu>oyO~g^X%k^)KI$j}Ll*MyJS`b=l^B;7xTLnZ6^U($ zP0AvLWa9SdTnZ_F(g=(x+Ulr9R zKmDo&)9@O?%jS+17D&-0cVhlK7d=EbdHU3OI_cZCfb_KINQX_254i7CoP?A|aLdoi zLn1DL20Vou5JGt8l@f%3I7nF0?F}FL(`<#DZC6+6$|RB1)=@!WycX?V85-@i67GYR zy|r?N9}f0fDm+a&uVH3Zn+Chx>3SC#@Md(AWTX3-L#Kbzowk+iW%{|gvS6X~Y@TbO z&Ct~pQrL7Jdx1{=j(z>jH;qQz)_HC1+}&C3i*~>lQcwueEUjzjxmN?fPPoULVnitr z_1y3v>Pk9~C*P*3*S-EB2Sys~3i{o4-!OYGD zgOqdg;#c5g;=rt&1F0m-Ngi{+M`zES1hSTA)xH&RZVvY}+0FZ-bYO6Za!V#T3opzC zKFmpjWG_gu=0@P4+zOzkEu`Q3R#Oe<#$6}^4(qIfH(E!bC%y*$r=~3321c^1cO+)V zIw4+&11lf{TN?y_Uh~Xam_my#H4?Y><`Re5L&Ta8io*)c)sQ$Jj7+0!yA7mRM|@cX z{RlRXW~uAtJj;Vn3V9`!U|&>F+&d|ebWpHovx6SPRqzK9+Ph*maQFY7_^*j(z*jLm z=K`Get=EscYAZ>Ki=_zucS81+m=Af{u{>2_+20}HlN0XAbz0BhuVCAu5{~a8Ny1^C zNR(}YWaV}Su2Bv!H%-^7YSE5^z|4(y8mw9w_JGPsfpLdJm_l?uqF|ny6`+S< zd+pobv-*ZZ7M{9mp@!pDL;#OOX*IJ@UroPnIc0}z=<2Vmv8mf0-o0W#vR0V6XLI92 z&I8P&WP11OZ*WnNsy@1JKl#=z6N5mN>D>D2ENUW1 z?O6l|m8T#;7p^=nH55b*|+AJ+E9b6R!RFsOF4l0$7VLL`^&G*a#KhGkNZA08^ zhhIu;+0|NmF%7I`aLA`U@kBGLEDQv(1guvIEi9thQZJQ$bjha2={frJ~Z; zs`Jrtm4T%!&~*m&I_7|HL=MY$O1n|!;Nn_=7>ZCB>fFo0_wpBC*wLd$the_GMawO_ zdiA>VFy$ne6$BZ2<=QnbA1J}E8fH{gDBe%RvLu?S6m@qrr&Iusl9i#!3rOdj18Zrh zwz~GyoQVYj?~e7+4PLl--X@0ny`!lD7tD&qtn2+B_NAOo!Jhvq4l#mB3eu7^dnUN_X-ECZ4 z3<(;DX%@lBDsbWiWbZb?aE8~Zz3Jk?awx>+fwyXb169p#$5QNfzxUhr0AWf_h-y9q zLYXeHp``~zf!9Nzi_ro7cYpZLY@qis99f@BRLfE2DcO}()Vk%%5chl+vRn)0<`6|_ zj-shv`{uW8bZp$ZjvTj5F2(B75=oY#2INAXZef&N8pc#Yk$^)9Bo-5tL$#i_Pgh@V zZOw)7J_SBC-gczT?)Tn8IR^Y%oCQg~Y_mXc*%Yj~GOpED%ap_n9WbgO+-$@wd+{Y( z7^6_g+p$`tz@>%U8@dg-?}W1VYxuT@jN*f#O%Kd&Dl#9nXo*M~NR@*+Or;Uo59Z77u6|DFC_(c+wda9xY z@_&9>J=jt5+?w44C!YK#a0Gt#E168v-hJiJdr7{-f8cWo!?TU&n8dtD!Xo9F3@izE z1&PG>wm)4KADA+#1CiZ=sWW=Zv#%7;ESF>PH`MJoiJVI-KX$BtTAPaiE|` zRXa{g-hpaMCXbizJ)vc6usg#`_WJ8DQPIL>5Y#rq+n&X9QR?hMdi6cIV<+fz_EU-p zf-!>JILfR>d+n>=r&_sU-G`6S9rW4@XW%f>c}*m?f)KJ(cmfo$w!8Akmd9?vjeN^i zMpwaz@1yW*x54R6E2g4fA02Va_qENKz47*IRCi#$(M9|8;}7k>`NMzV)z#np@Xzh+ z@eZqMKS^~Hu`w{znduF%P?9gu!QSSowVZg@wpJh5{_2t)6m$Z?%n__hoiNNRfcQoo zm7OaRdde~Kiqd+U-x#+1`jfW&=nE?*2_GQKjq|>VE_{91_d0AN3yl-7vPifickWtu zW0{q={jOD|UZINsKB9vw;QJ~NuC5E3$^#0>@+x1Ka(-^g_k&2q6OYkpX--0u_U0qsihX~HK)m7Hi+6FXIV=Z(6s(Ll^Q$m-ZnS^-~kg9$KFejzyI5m(Z z_(+C+N<32F6`;D=+X?0fbgqU7lnScab6yFF>F|`c^Z|FMBG$@+2*rZR*o|N>`-cJJM2C|z6X@*R8SrB|(~fg-B!p;ylZ6fkXFoi6RA40l=kwNHL-|L{NmFA$ep z@wpIH!$l=Bprn8yCM?X)(hVY$1twZUNx1+lC;OC2Nb)iGoWhb~Pv%NwDuC3bX#OM; z+4FN9rO1r&JoizVN%G#^T?dQ?x=~SJubhT|+}p5As4b5lKV%Q@joaal2D-&1*?ffaa zzFFtOT%G17x#EO0AEbnk7{z#A?BpwVl9WV%COt2N`Z5g>AVUcqS0ZsFe7BBUyk!eDk@UFSU1u)X3Iwg=+`Rws$G!HI zU;p=PgFrcS|FXS=c6@5$F^B%N-TdOm1j=G-X*~vJJZ$CSMBqP~yN}t#gAof=SK7b% z=l`{R_2SndKv`vopm|cFDPXY`-t=6TlRrQdM1jSqk#mE8p_Dh?SwoR++hJ)rT9bEO*~3>N;)y$@?}iNr0P>QD71L4XPrD7pZmD z=_(8IC2*yUx93|0a7fcfEe~lUtGxMTEIkNjd zay1{~Qc04C1}0@Ek;6G$Cdp`pte`BBnyGXRB9)g(mUnJl^K&~$VKUf11Xix8;vK&i zF)e2zD7srM2}IIMx0&EJ>%BR&K;n>Zm?}rjUTAA$uE=n@iA;)-nD(28TCM%~S8M=? zX=HlQ6Z|xgUCLg>-g@;lTbZ5!a^qgfuAIa@N5WPopUu|^V~}iG{Dh>SQb4M+a^RW! zv+Z(Vq^w1iz*@(x_2^j$^?sXygAmjaA@F9R08C2@V5dbOq~H3T?^_?d$Rr#_cTcD9 zMOT-Qg2IbdlLQ{(dBJG{ZAn2UA36=UR@Bs58Xb92QL#O^bJwV5m}r@%%BBG%nnL{UMPkV_mx;PZ`F)9mp; z$T~Y>aJt-`&3)@%&9n*xjHs<`i%#s`NZ2M9w6qVE6^URH(M)z$Asx_!C;AN_Ot}qz z+I!tj04=_K;RWuLIAi3>JQo#2vaEN@Dqk+BI4y+eSppEBp+xe$hnBD3elA%gg;7t* z^pr0pki_48Hdm7PdtZI|(0lI3;)5yTKlp-VtCnb0^nXDT34B}htsGa=UwoR`60%9U;70iNli*ms^mS@-E_3 zi-Y@xz|~3UPLN6pTHD!fV_dQ@&_#?Y?D#9^sf+m;1hR#dMS=l1H!3SFTDtkg4FYG2 zdk?xV+iZ@s*qLZLE#HhcmYX@TINC?5(JJ`#~kE*D~N+iDtG zX-Ow+9CEz6iszLMSx1|jlUr!>5k7Pd`Ro)*q+J5?>9g<;D3~U`u-v8|yZxhoY^`0d z+RAu8Dlk+(y#5lc@8r4E9Xe$@i{o}(d*G?c8=DT<*f7Tsl-k;t-aGEt6!HN4K$?frPRYsq9RjRW_cpsoCpR*>Dyi zz%9!!ud@T>&$~b->05LUTPwDmT5J)p<(Lu?0c$myYHxJKtg!19ZY5Rs$iL?EF1Iz_ zTmQro(3>iv2*D6oi{~U6VJR0soBunAPV?M$eK$rHJb}E9s~cN={vlLYOYmB8YxI4p zc3%@JV?+raxL~S0BUI07<=2tyMo=F~o;yc%D$gcKvX}XqI@ z^6Dm+0V|i+=zi(lZ zwWP%<+}(!yN)OJTUA^aAqh>f{v^h(atkuq{q~pA9pJhO*>#8?8%SDQjI7On0h=ZLC zTb>@Y@%|_F%GZD23FGzQTRwyF#+$!pm#_Y{$x4e*?44tnXVD_}iJ~$(j5&YSn_8J& z-{yNziYVm5@KciS7NAs<(l1O$xx2mTu$Jc4)=&&m18^TvB+6j`zN@OH+)ltdZf&pG z2nndVB4m&6-LjWoJOY%f`HHaBRTq(1w}GY7t#^2ePP&Na+rsM#L#FQ|0s<+apxmRQ zt0^x)(Kl&_>dSz7*X_&^Ns;+n_QI&Zs~}$Jmr5^?jtAk+xoMND8B; zSy8y1f1NB+6jZ1TrT-UE$^S`5t?DtG#Be|$xqtJf71x3XFR$9M zG3Yw=eW0su~+%to_*OU;;ZjaZAMXUE!pAjX5gO&n;W`s%kz`g&~?VLLKT)ulF`P< z^!!Gf8Tr&QD^6P$mE$&tGb2qaO_5ON(K(=436T_crtVt`pGA(0s|aq9`Efdvd@9gh zga%ja$k{V)#lJQ7#P-MU+uG!>T+TYY9I?lJb0k%{&1Ru=s`m4tYSni;P&HMQ6~a?2 zP_l*EVfE1#_lud}pU=iMOUM@qWqF^h@sLb&ini_2uxFR3uN*&8G zLJZ9i?9g@SACc{Tm)wXj-#;@MEvgdMSyaa{Le(o}lML)sm1*ukP)sorZ$VqW{(y6* z{qhP*DlFvZrK;GWFE}$_Qc7SAe7aQhP|ncx2wIcviqD0}L4Y${%-K_gDBL;_%jg~* zB%lb9r1FK5PZA-W0z#{by~x^6wcq~!Ke7?vrkTkBxP>X}e}KHbJk5?E><~1&MHih$ zkt4U=5D<|D)RvYYw+lo3JNy~JU4yjwGAJZ%2m9cG+0=yrIXRD+p??osl&+{rl5?Kz z*%QZXa(3SDaF}N*-g1LLtwB%4g8nCu{d19(yXJnhBPIr{r&usPKFMcYW+nNVwm=74 zLBJQ>+}YaTu$MwX8fT5CY`eh0d33_tyVR?K6_wCkC!66n6wG_w=@c; zifU9|sHtR4lbcs%QzWh9T?aOZ;;IyB@{#s*l77T$`1{p)bf0innRM{iKQBUrqiv6L zHCqbmc_b2b*ZeyL!Nv|;Rh?}1fyYTU$9j6~)$?aiZvj(sw$x#1{zmrs>PA#V$9X;y z00>T1>#veuuT6GO@)HYoNhJ&ahCi{9C|dMvTG@wtC; z&;hU;ZXeEem1(uHTXRv?39XU&o$Ay80I#KlO za7mPf7f2$qX-HMYNNfDdPj1*@@Wo>A<$-&TT>bO&AAiV)-C!@ibjI#oziB5=9Rupv z^!1iSMGaIxa}bA878TH=;;aKEz({^~<(R zlI%Hp$}-A(Y;J1Ch8|so!^m3z%McW4QE0)P4m!*Qk zoQWDNj!bfCahl*3Y&%@zLddhK2;sm6Eq>J3(NZmHN}aQv1r#bM+BXCKw zxM*o@@%<9Ad@m;f?DD&21+)*okHDMD_gI4%)uzAN+FD=dt0hJXn6l^4Vy!4ph9tj% zAzd*18f*w8c*3ATKEmh562RS&l0i@jdj~g(&DAC=p7HCb@b| zd8wAKI1l0ks4lrS9BIWZN;Lf^jmc=2y(Xnaly3q>IowMJ6{Dh`ow&zY&$4TSVVgsl zailq$b6H|Va{b+1_3tBjy2x|QSZR5bI)6!jMUJN+Vu%rR#34wQuDh()8YKbmac@qa zJ`-#ndr50zo6B-wp1jy+K-c0*lz)9y^qdT1<-C$c_p3UHsTGqlEp=M zBnWJ}RPm$L2t-y$GLHu+(7L*S6nSp&nX>MmTiUUy@dfxDREB#c$bAn;TpO=Vnbi{G1 zuOqG@KG-B#gg3SRGYx^no`2p;%NukaEk3~8$TM!_y%dtLB{!G%*)T<=mSBl!*EBwd zfODj7H?VHXW5OQg`HmzoaP;4T-xIx8G9$V( zYkDGaNE#;x;OAszBEgb2kotz2h}T|%Y^v03DiQf8$pN?#1P zL6xLVCky!;N;-Rh(&6oQ-?SOofsanw#%dU{dcofM#%qpOt`dNy@+bk;80W+4MQ+&A zdeWl%8??xAE2;qYNzaAUEpwOG%JLAwa31B=RqJZ6C#ltPc@HcHe06AMm&=}EZHF59 zkhNuR32YS{zwee+b)B;1J0DpJhp~x-xR$YRA=>VT2nMR@sCFRwHs;1T+-W{d-E!_t z8@h81BC!G-wjY?H!UlWqxdLfswBIX>b1%FAMAQVSIA&LFjB}ClY!dvsq^zCFY5`~h zwFwDLw3li8*C&p&XlVNw;``5D=Zr1_iljQC1u{LzVn?bV;YnJ=FGm z$2jV{9Ei~XTR^10#tzG+ir$Xy0lDP5d~}OMy$Gx$RgP?6!oX4@&efgFpdeCm-RH8X z8`N2h!VT!c96of||Gb`HCdFTZ65zR2`LN?ARi>b-EZ(0u1a$*)qZXkqv(Q2c6m?M= z0M(gYQ`aN8G^MXdYXweK=0yZ=6*t-xsNL^M9QyuSTzLK55;&CtUTd!QlPekeUX-8% zQDTv|md?ForW#7jh!bXj^<=WQyL~`+{54=bk}v9{owQsVoJZEWAF+-S?KH`u+g_t^ zkZ%+{j_>w?pWr!bWo#N4&Z;1`9pu{*(};(hgBaHqP<8Q|q8}WD-{CzK!i^P` zl-cCW0`FD#&EOGl_=2V`I%BPV)eMs$xDBM`HI4Oj7!y{5I7Nbop`kJE>W=Snk=+0I z>DS3~LqLO5bjYXardNHbNtqq8YX0RYs zV|T|_t-h+ou05Ibd$PI38HWoz1B6vln$OQK@ug(Gr-rjKJjOG2E>5PCQvFeIq0-Ve z%v|1+o0-D9$-z0FyQ23m#79X)!=OpTCs5C(|D7Zu-Z}Y?6Yk0X{@kY9FDDc4NM1kN z@t#Y%)HHYtf}}0&`N{UgVk>#pYZaq@2~SH*u}jYA2}C?fQvUUv4-2{KsclM9dln2d z22&>DQG6`XGwrOD#v>fFJG|9-aebU|H!gR^6Y4LE96)M&=Q#&?&SWpTXy8d z7wmd(zkfJAO)Xq(?Gjn1rF~?TZ6_>>%r-x>z+&jnH7qxH{{}z1ibDwIoZn(oWB0k_ zRaW2DPHW!J!REq1jLAT89b&Kmm}(y4tfi~l(x`wA2;@83^2TM|+pV^Kx{h*9^2>0J zilMZ=+t&Hn3nNo@`qj6s;m}c64n8ZOBH42dG|B?UgrP zvP{0uPDT`&XqUrsSyo6;eqi}jd?BDORmn@s(@1H-zUdTpmImOT_&Q|Ie32cHY!24v zd;wA&?`dsj-xKBjZrB#L(n&z`cIMsx)OHJij!?oJ#Fj|VGjI$@C<$hPF=5O*ChbCx z0tu@6-HTDRp8kr>jICHfO^K7+24N{1bswgKWE2x8xTF>dw|-6qe8>`Ag2SjBqz1Y@ z9p)lB9`P`O!(?E%f_OsvK=y?R!?9$l^Ys>8Eq_Ud?zA#-%QE`zMP$Iv}tIPcC zrzD&c)HrNy0^b0;$;T_Qy6(%VWb7$-;6ggwY2>!zStL_dmm{w%O%umRhy^6ZB0AAs zI=ekOGVQh5<$a;Q=H~&y?Gvf^Au?&KE0$sB4uMVxz=1pW9z6%dGkBNJ3sur~4loHE z65AhB7^{ste3TP@xsYS~68oP(`pqu|!aH|FIaNf+C<9lC#cgfOP=B zoOsDbXLnFh0gX1b+f~$BBjfOCa)aQ!Zpo#QJDEeVquH#%fj&F`@i?%pNSCqMJ?VTsItHG8a!7C8IWWlv9uLZ)4IA=k&`nyW3 zbYUHxXY8~0|J1(vZKT3?ZrZuir>NF9ER(yaxRMRQt^G1#y4yPLXk{HJ0kELpOK~Il zg;MWnmL}=~iGIWZRj9d&5qf0g!&#&kT2CwDl<0!B)k#rzU?1L@wbmLGqWN*V_h8P> zztCb|kW_pvFKRQXsY-HcxL;9<8~7G(QY?IcqOb~?GCUp$yb^)TPAuD^bYu-Q^*S@f zWm{HLgycG0U_bnP%OSM#>@AdDDb~N9Z?_(2Sx5c8-Fp&7S*kg#6gMGlYj1%w&hz!Z zil0(G-n=*9(3N)OY|*u5WgG-a1ZZ8tl3bFB~3 zsmc$?d6}4cj2F5jF;ozppYEN~w8rx$j!!$1S5LLS=SnR9#=-9Pr*`iN37B4hl1I=Y zX%%kZ|KmF3Lw9+a|wnhMeg3XZ{;Vtt-7Vj9({Vv z9(|7b>AUY*GYKdSvR--Nwxe%sibh3ELpzVg~TR0Nr* zb|AWdy~=4hWp$oMb*0JDWnw~3Q7s>MHH6tsT2d{@LJnJ2XLB=?z(OUK3DF&++E-^$ z49qn*ffA(qWy>P?UcWWKp&haF7kpXUd>>9DlpM7d4 zBy(Qc8+2o+c{E91_Z+7384C+8eRG^;s@6aK`F1 z7rDk_D|ZkWH1S@#QU6f&#tBShQg$#JSpf#rrLdu=Z@ zWX-2uwoq%g6|@|(oWd$DchoAVi1r|iv%ua3;lxS0TU5yka30hgK9#M+uAP48Et|TB z$UtOjS*`Og>kywCbBHFWxO3*HswF zr%Bv}iX8KY3y|vLE+`G=_ z(O|8uhloFWAQ7A`3MSZopI4GSNOg6ED+9A#q#}hEJVaYP=V{kPGMNPTqn*{x8{D|{ z0M28^IvU~0cCsMdNld`RA6@R{=X6ud9PrssStI28qrRB!XVBpR9~HRU1?N}()|~a( zITGpSl;886a4P5Z0QhvnvJsNJ(v!m74ZDf!8lA}P2@0^BxK$O3Hw%HR#O>1UEj!j; zfFLN}t`09*Q#A>YaD0Zu=>ykP71<=#qLNDcfB)uvYiXo#reKsXLNhvA7$%9eL`t%^ z(NL=<+LN*Sd4pa5-%cAO{Sgy0ehK?3_gwTXxz7+KUx4-8yofId`Fmilv{#O|kVu|$ z=+!Jp(#k~Lh>}P~@I#y^OzbRq=C75oo=>1w!FMsyAOmg1%BTE2QvGh zA6$3Db|6__{=IKo?$U<(O8zbtjtVp0UtjMdNW2*&wj9bRdxM|}nzGAm-|HOJuUv%7h6PQMG3Hy+z z+2F0Jpa*V$&IKy4-m9NjdQF=>zVa(ObLu?78Mq>aLzEY{lKR7T3jx9Tmo7rCjoK=~ z_2i3Z>=Od-D#7sVD;Iq*ts0r+;>w)k$g@L3whMOp@ZLRZZtt|Zp3@dOn6ruTKA?cF z+8PQKZKNbKSYBGS?NE)(&JMU&RXIwn{ax9!r_mh1I{-VVEtaPepcJymUVAt>Z#`$< zfjqruMZkcC?WgHlN$zEpRC^@V;tGdWcGia+cG6-nxAvAzh&vgi5RA9I;tx}u7NJ7R zARukZo+KlW3bNdm2-<72G<(u?pCXnwL3tT^GKsL+*csuLjv6*iY?h~Xr5z{ zj-iyGC<5O1Y!KYEXC#+|80S_f0Z6H|O6Rc4YtoiWk&3>#P?m@UHbGq~SY-02dwk~ zKP?kQ8j3aXiPaQPN*baR^)|p6e3_T#9P;6~vgBHzHLU#YLg1gN*#!b^)E@SYz{O|_ zVbtM5@saA_G}l#KU1GN%-SUKeK=99lD>|S`uAnGV3=s6v&Uwot_^r`t2z6)$Ldv9| zi$ETa_T4~Y+(O}pT2b>YB+rKWCL0|YbbFTi7V&_i6vtsYopk~zRrlJ0LpBj@a$FiC z=}ZBm9k=F|qc*eB?@j=PbQpQLg2W}6RrQ@}LxX+(_vDFJQ&nnR9j$bci@e4y@Ax|T zS=X*#v11?-GAT{v*;l~33{ULXT6oe6lx^-wK^EkA!8W`M1yLH}l&obd%%Z@UM{?d! zz*)<*nW|KwG3!=W^Ud7^w0mo&YtSxoMcdtt@-SVEax+`G|Z}< zGAjI&>(K+H?DO$DSP>9tX9cS|+yx=0F^8uOf)5}Di6*%=UG4$T463J8f?<*%- zeX-S3%*-7k69$ZQ10rqQ;@!EBgt6mO)<1x>k{!(7*O8=rDUl@A0SQ6b|F0tnrr*`| z1V)Wpz$qfxOTf0%!Sgf|u>y8KVMv)@(Ng0ZXVU8T!Hs! zVF4|yw)qHwQimtQmd75`{hY8I16Cji6;^cf0Y$0gL?G|^o)d|n_BIy@4kbQ7G<)|0 z_<=2JKKvH2RX>#=ufM6@CZF83trfbH{8G!yK!tO#;npArYjajk!kGu>ogIE`-OaVO zh}5~dvBu^WSMA^Z&0nHABEiXAnm{wYuxuTNPxF2TATT#Abu%5pb)CRbOof&Yc{8j5@UkT$rx93K?7K4C;Jon6as;i3__$M;9Rw6uM+s5KbeUiwJpDefmd= zG!z-vo2eVOx}yI z{V-Mez+$@n?MK=m8MofSIeX_s9xpjeM*{>Xzb2lmh5`j~?Gs4ydB*EVO9dTf$sw2X zC3~Og>3J`(G|{ffX~~U6&}!q~%={8(ypY7B4iq8C$TY79E`(fPn zJmy!z_FMn)e`Rm~&L8+|=m$=H(m#mEp&TMzQ{*ci)U+>NjtNibx{FI1=|(r;^&WA@ zPB<~X1M#mtFWa0G1;cIRv$@4}wzfD-l8w@FAt0d3iU9eF7tznk1`eBF?z0#{rJ?x( z9LkV&G*`Q7QTvHX`K%w_zw5wUO(H08;p9$UF6x!NYH@JmE1E9+jcttm)vE_PXYtMy<1GZNRdrI+<^U?we-Dm#<+ zdO#q_rm|mH90L|W^^=C)oN6qB+A5pmwz)9swg?e<`NUF@Uk+PVVU4YgJ+$V|BQ`ev zh*o^xhWdccnoa>pHM>i!)LT{X2pv>}3V!KSoVy2ERz}6Pveu6(Njn0sL#^*Y;*ZMRoJMq))|t8c%08dw*LKnPn?*XL7FU#S{Fe3 z*&C>M_cU|R*n%bictnAfPHld6!eU4{$03FXhK7Bq)fNFt`9RW04IEC1>mVqvkubda z;%I6kBYI5tBoY^;WmPhClriZ9iX>fFC*^rfQV%VIohvxU2;ljg-6B4lqSP&)M@fTS zjm0*3-FucNI!M#(z%U0YHg>fCB@LAu@EgQ!5rxPvE)Urk59z|T(_FoCn94O@jtNrb z@ZNT1R#?jOg$ME?PR5bEY#AIXk?g?BXdiqgU0xCV*Ls-GCM(Yqp~&`79>rBkfiJ&O zw>&?)WN*Iyb%*8Bj>P(4zQcLG>-8>70n?kTZ5x zb|HntChuj%ivj=&f+ZzIbjG&Vr>&K9m!5`Xw>SqVtBQ`QpYu@aOX^BdifQ$=%pM0v zC+yPwaXVa-Nr2w+q`4bebO(yr)pTpEBIb~^cK1;A@jgll=yEdFYydg%{#u&V*APtM zp0W@$Ow6Ljs-+V+D6yO469o7ZB*?Azt&RkEp^(b6x~j}V@E9rJqVi5k1rD1X8;1}l5b{7>6HPFfKqfpnK4o2%XwJ)=u9k5GD|0 zX4P0{*AY(+!y^-R?8S=&`3&U0qt*j|qM^A3R3jPb`RTM?4ZEpXq$>>7f}7nWDv0{O|sfsjtq5FI79 z$jJTFJP7aw%g-p}(hqZB^KEcq&~_&-+3BzTXLj`$|D$zLmCnX8?KV(i4pQL{KK!XQ zwO85UumAU`j`F-KjBPx$;_O!2&kmBgtXBm8Y;CSt(}lOG;<8Y~RcXf?!7A*XfR-Q4 zPEUI=aP!7ZuQDfR;5p=}g>oxL$}?b2nHY+MeemGEZ-vVt`HWADxKEobLv+4%j`a1j zz@<`9>0)S@QQtF05RuKw1{{GnxNXE8TF51bh5Y=4B8YBges&$Wa!PUz`sa8>(LFEp-nMX%bN#)LaNB3drxd%4Al42k9?%2<- zjaqI7vQ?g8QE0$KSL>z?=$wkJHGNbe& zP-mFH$bAxjq2CoqX6IKC7qs%4Hwmn3R$E^W%vR`Rt%eL`TcqHn#cz7wzSDw2sJJ-a z?p*oMCWr1ice1dsU`LLhw#u3&yLtPnD+&v93;7IdfL(9;d`}J-|LDZJL!WZ#Ek*q} zKQ(OKJ%{M_*6AjS=$giTsIa=K+y~~$%PU-!sHC(`H>}QUI~KM&&56j17>Ljnb((PfigiBKF7=`Q}2~8rBJq;G}XF*U8mQ$%n5PYkIpucRf$Ed*x5wxNxlLy(Hn1mcY*3 zm!4#zU%oj}6-Hveh>}zw0TwBv4kCcCl6&2QM3VRy{qi65Y(=9R04wn%yRAebNhT4W zuoTJ8W%n0P_S}_8qvWINfV^!plqc(`cUJs@NUo`+F1ecO<-w){9mr!T&I3;+K}=Ak zwD)w;Ldw&K%90OhM6Ec7w6U_-mL`F(z`V8BbarXM`HMXWRlNoU2z@XawDe`I?e_U+ zKSkwJ!ewcs{Y5GXt}4H$y~qlcVjl9-4FYyM^1oiI=s0Cd1hF(Avp7=0nx=e?KmPLp5-aU`ZKr+om;bkY{*%A7&u@=esQ$F=1LJISDA)JkE#fu&TCs|< zW|H?DKV#1m9LKxvsd9I-naFCJF`< z)U~<330B|Xn+P>`A_942WE4J4?!GY(j!L9jIk3eAt*WYW+i}f-Y;vwDDyvyz1gds33Jo*GNKnbY&$dX{z$}tvD;jvr4yG0#hgh zTpM|>5QkjZ-)>VVr4-pHaO?ZG<92rnLbyC`FL#%dG_p8b8^~cvG`ZmaG%aC76}KP7 zIJYTCL?!nG$drw@j4}fO}E`xju<}eUp2Zm7Q*aE^l08Jn$N41_hYNKO(&tjf6 z97laYrQI6auODQLcSw$P#yDwG1_?kwBfQkwnz z^DJv^$+U)YxilZO>5Uk0<*1!H(PVQJbD9Ct%vwu(jkTaW)xc<>HX?F%H;eZd6YOquSYV8dnMkW_fB`W-+*I_cI`f@QLN#dQK^VAB=c%QA#O-gG$Y%AV+ zB2f}Kc$!F_??}8Mk!Iw=@gR`|%T3gYWClqj{h96X)2>86?5X@JNxmeKMv%%pP(S@| z3Ha)%95~UscoIqCa$ia$&ZB5T_#iRQ;;ok6P@txfj>fy|R^UPdN7g3i2z;IL-rUOtN&1o9ukbZLFT8V_~x9MGu4m85A- zARl-OcxHWb23ho)edW#Hu{|#2E&=iC7niISOn4Wl;PKs?woWoUCO6tgPi%q8`5V9e z9UHv$DQ^KiA~sZ){v{#Q33VKJp;%p zMpX&6JAIAB*GVUW_%WL3I&L&COJHE3P(@L1Pw#CIz_-3=TQxp^GPCTq>;<-`tnsYkdXR zijULmNJmE}@Zq=*?P=OwiKGCSqZBxfuX4;;(4)F@oqz33S%x&#>vE0--N`vcbIoKd&j?w?ZJW>>RBFkgF_R6y1h861^`k!rT#7<}AQ(@J#7IT$*MV zKc#!ufGTZ$YsWfTYFuP6)Hh&f&c9@R!^2htRJS5Q0-s4a1&d~R8XFtw{)Py6jS%mZ zNQ6h-LcInE^6`U*){Qh=D+K1m$5gl3*M8#%cHwKkYd1gn)Xh~JDX?@u_Yo9Sv^U$t zqZ`f#wYT;7tV|Z9yu82k+O>hvEt_O)NlcoX)%=Hc+-rtJp8;fXMvmL#6qe<=-AzWk zfO|RSZoK2;gD#8y&Ue0MpL}$~zWT~}3d1eBpM4vqaLg;>uBC?QkP5AI7iC@1f!%o= z_5sPtQg}O(ZfSHb7adFh`4Mg^*JX^Zne2pg>NDc1jFNs>2hB1Ve!PKTTd?9OA<`A zKkG^o97q6md8Z>DS@AgNY`&C8JOz*|&K+)iFKN^zRZ5EXJSR8-H%m;YvwR*<9SMIi z@TL#!A(B7PXF%M}L|>QibJ# zEWJBGCV`8@K(MQ%)5y__CV+@B)eeW$yc}EJOR4_YDJQL9ww$H`5NjuPtV2 zPS)lYmD|SRyk!*DQneBkBg-7@RLiSuv?XxlwC#0*F^4_3h(o`H3Ppy9`If2)@aU3l zZ_Yb$wlHzciZkgnz<761iDkjVNTa{QdzyXpg$IF5X}?MK-KXEONz^H;1kaYEr>(vT z#SEBqMQw%cLY|kc zTH0Q-imi|A>0?4YI$a6-pTeAh-Gnxn#oY1p-yFB z@Ub26{dYNcF)HA>rCI)rDv@r|cc73Iv;$td*~P?_=A>F99a;uSDJz?<6fwelm?S%} zV|S)9?Bgd?wbKLvo%pRnpe$ggY+zjYvhX(QzJe_4om{rnnG|cKsE+RB*ps0Rd!;SY zjVD7?X$N#S+aw81r^_nHVQD!oYgIC5SrXOg7Q7bsMbAb-NDH1Mq>07W{m#nUZ3T5y z7_v+qP5;oSMIeCXIIy<5<)Q@fBihqmU0KC5qsY(-2RRp1lu*%E@O+~FO!Mf%3PW^5 zMfvvHum7gS`S+`z{~VrS!R=p4LnXEV#2ZSfvEjLKU;iu>9xvNgxv!=FA7^hG-1vRw z`8@zgfFOw*1n-+{cC*>1)M{ChZQ0fwp4qiClgVUu;-t2ADz%fNb}L(z)F!W-yx1f! zQb}HWBT@AEwAc2|rklhKHZP_5{FM@6R~8yFcQa3TmgB8v^h9d18FKoJoS zN7fkQeo6XU0A6h6yws;mGlJsrPGGHDb^z3Mb|gul)@YLxEAWd57BE+mb6zmQH7z(#N!VH{&NSA^_WLB zp1~pK36I&xlBFv1ki&D+6kQWY&8>!LMKOr<@0)P+}(KL?1l=e zzxA9gFWhpK$_d~b>Alr4Hq~*)6>$~ILEAZ8Bi#iqnEZ$h(q$>|_6UUh(veo%z#uL>`hi{k5B`yDA;p{-|HQh7uCq9SkRUHJZP&;&;FTcy!-;k` z$VrNl`Y7BI^2jens* z_>PUQ1HavSVs+ru_ddB{A=bmv0?rMh^7fnGu{ZzxTlSM5{=i9_U-;QM=Sr^JiG+#o_K-`MD7a!m>ve_k9)Te$~irgd- zu0KU#$9qCxGO9;XK+@CG>js_)MiEKfgY>eM0Hj^h5XH-}W>u*^GCTyF87DLFlXb#t z9RqD)umlZBf3MF!Qj<$fn&fkJ>{cnzc7yg8AI{smv-S3H>A-SFA(kRy0*suml(2^8 zl7*sWw~4nn=JaaGjdYcaIK~?8@6+hqkj*S?*=v``)Zk9sJVu_01~X~slv>dXQu6~_ ziZ|5YEJcw8p1Fi8!C<4ND7)fLaVd)GM4HuYr1x&|`9LkAe;UR#*C<+vw_XwIBJXOq)2K$P{?it;kQMPP>Kk0Egu%p>`~ zo3#hI9*HF2v^w3q_)~0_#v31~?;Xap4auzR(AhKR2y{v)BOlsd{rRT|F<1+QGB6&Q zOa2sjZq9nU;sj=JCTiXp3leBn9RCpvt*~c?ffo-!HB{87vAC!WL#!`&l+EpZH#0p? zb~PM7wwp^OTSa|{-UayT!~(}izd7A+y<4<5UI^pU>TF}_kp+_1?LLlSXb>nF8Si_y zH{n$J+1n9Ifrf}1mP}V%urh#$j~-b+;sgz&Q%^0|9-e?xFUfe-yiys51Rx5sBEW~@ zdmG>swFaev4X7ZIpY?a@C#Ov0nH_#+Z)+{7R9ofsjPoGTS^=WVM4UsZH9}Fa@BQo? z$Mm1osm}BLv6OXa`kj*rczj2dSg-ww*Wl4>^60ftdG@n658i{mo;i|d z&{i$A`pisV;nKhm$|Q7ygt5vvXoI^N70yM<1Yz2$=aAY&-C{K|RGm;8fF%4ljXFp< zWhW&Z%PvHHq_fARf_p^2QBrpT88frwE(A@m;%k z@pHC=(b)htd-P!3`g#VfIniqSg-rtrw}r`dEBm+Y%Bx?t^-|RC{pIzQsb z^u?JayYk|1*^@_aTI;}N^Btm)@khu|)OrG$YJx?-yJ?L$n9{~g3mvCzr;;OzLxKy3 z^6|~TvKL?Y6^y|;{7#pBGI`$y4`!{{*kzU(u!$QJHp9L9$=|&1f)jUkLdM~YJdUV2q7KgWu3ynIP)R?Wl|mjB8mhHPoK2{i;aaP%z!1KT zMMcDp#F!vMr2jwo{r}u4$3Fb&$F{e*!+GY|q)0V!csoSphrSR|EL;oMv$(Nicc<6g zkRs*Ty)7YY$GUXld@hXiS_@=*d#{3*W}Ijlg_l`p+Gm{!zn$swS$F2hE}dy5YX#y! zDR_Pu^8uH#vgt?t2IT6l3pEwTR&=St-Eg>iPc#)#?Py$uJKPYrq!CCq1p%%I(nsc> zUEi{)*%ge{0#WG+u-+J|sGx(HG@nJSTbeO&g1wgD;y(ZCD{k0abEC&qZs)Vs!#?tn z;i%pr5l`60+BBS#X8CN{lLrs&z3+d=h6cLb#L&wZuetzW3x}t`Ylpy0(4ACgYVmWh zU*g{Fx%n{xoU=M2sP#KZj-}zp=HULOmo`z6p|0Y&HsXL}Tf(R~A3mOhzx)(#B4Rgg z-G^gHaDD{>l)r=zY#;(Zw%pzh8J{`}9HDs3*wp+!yvCyS_qMpfU@8n|Tl+)z9OcXLXXv1hBr1c3%wU;$|T7=s-{q;ZJzVF~r7 z56Li9)Z1?lSLz8+;siOXWQb+fNZHPv8H8_w@4^}A{wrHpLolEoV1t~SxFPYMQpc$m zo9bi)-_@&j#0CC!t}&^K5!G5qbyE6Xfwl^&1>1TZsjC!0)&6?2-e&~7d%0RG{d`)j zqpCLXecJQT8}qFIzect@`S111{onKqd{wcfR_zX;tMyo{)_PPkic>cMPs%FKQ8*>n zbCr{F0nc>GwT{5mpMPOS@>!0=qe7lJl2Yl!Y5cuNBLI@r|cGcJH~opZP$7s`*yUsh?Z0t8%?AM@ON!F3nAV)W+z~lp&-!O zcGl{Wy^sy+M1)A74u}SVUJ-B?5%?^Mtd>-#%{=-92xG-ktwiRiK4$LUx2`h-HhJeK zND|YQ;@nTck7X-oZr!lrW&yH14rzz16v28Q|Nd}t!p&`ogcBHv8T;Tze`eQT`XbRL zn-JB=Y1fxfEPZ5sqnEgc^=_2t+~%B}qSVYsQm-hAu3j?)sM{pjJ8y$j~9wj_Ev z)gYT>648SCvWd^qOm#mQT_aqJ3a->8SbeAhp;)!EuV#ys!LXxlOs^V5j-5O2CJ1WO zu+&=WYP$;XI0?0o#CZZ3en35(R71t>G-z$X+!EB*}HP#Tu-? zqs3nB4cV8j4%&r*n4RqgkH>Lu0_km`LfYEgwT;z7o>{$p;o6b)$II59^23#Qk=`*1 zzv;y?5SQANV|))Jr9QUX3x_t^O-6)5NP8kGwb~(Y3PvQrb?-}ch?CWfcC{aoV^CD8 zOk1-nl*Oo1utXPHuY$uGxE6ICIFR%gL?Vw7mP3^TQnsUN?ar5qxcu5q9^Cz@x0G5fc8m(TN~#-Tf&7g;AhqO;K2Y*#Ddx zP}Sev;c8IsPpw!7dyuDO^=5#r%0`4psAxx;$RgK}d(sv~sOkg=9=IR5!ryLeA| z_1SqP3dU+GFHzu*WPdIrQQM|xbtbaGo}w%8%9SAx+Nw5D^!j2wSEy2ht7_GfRZ`pi zyW>SXPDHM!=8#0tt0A47px5VKzxVoeJ#!w_S5^H|OKV)6i7wK;2hWbOMz>2?o~v}P z^(oeS)$EZKDHV=9rKauaCaZOZpfC0MZ-^49Li(y*a|qH_GY(G3I)r&^{;?VuhFo!6 z(LyLDN}Fr;1O?FO*qDVm5n;DlG`>IsQbQwR-C}cQ$V!06*eo6GaiUUWy7f&C6IEp3 z*SQ9eDxy;lu&I)gT>@uu3U1zl53D?nl(B${s=IU0)|Y278U>Uz;MXWPVzDl(gRj|L zU9yoEFWciA@4IyW0uWXM9LL(i1`cV*HC-$Nr39O}r$-I80vB?7;(;ZRFCNB+tpEH~ zV7MJ3suug!x4&)Iu3Z9BSj6!6+0oV#nN$zPu)%fDJ!WG~KYY{LQNOKcCoF-qd0#!0 zz>1H3F(O2qa&ChA!FALWUD0+M5s;55!$9J62gt#8;M63?MFGC{E6 zSFXQgaSZ+u#~ehe{OZfstOs?EAj2(;`|9$N%RpC&F4cc%4+o&aG-=`mgT>MvNRfdK zF;GpZ7R&UVLCkQ~65V|W2Z;DJgBvMj12By`C*-nOmuUvrv=KD{WD^(mh|tw65W=$! zVZ;6VpW5HN{X^ilEnp}N4zNU9CT9J>EsaeYae%~?P8f(uEAqRAYZtOb%DJ$)-LD;*iNKP8wM8B?oUFvPb3@{C07S#dLsb zhlp7nuGKN1p~2%pL{zKe?cM=SgFU^RmE%_JiwrXaGUwdW-S1|yw2>XjxU{!*f!!Bu z12|PYN?~VW2zW853v+7XK!Yf89zD+iF%dt}Xnh-M0W_7~rH!#=!m2kChc@>w!mxEZ)P zlcDVr&*kU*P(rO1T$XVC#V@#LB!juLwP6GO?KZcv=eR&pa9f%gClG0NgXxSt5rlhG zEq?>|P%0?FO-a;r>xdMV)>mzyHR{^hL?U7CQNhli@3+bM4L4R<(Z3(q?B;_yTPC>e zguC27Y_Nav!G`_4mjm{nypHguxX&K;VHeCEt=Cxsq^cDXzj7M1nH>ZJ+hLSj*d}YV zsl|eG?ky2j;tPV@XB{tsSmfN4$sw-gSR=7d5ZaKPsdY{r#>=(UaXhei5wE3{P$Xrg zvXLsrsBzv7;gJZWIv+}0h&OmpjI!!N3@X5D$LKN*Df}EiQzh3$Az&|+#nkFfBn=j&|W5VmI-F|Bo@6TGKJj*z0{D=29)yjC+Ik@IL zYJA8uSnC(Psxz;u3Ih+idfIR0IhmSwJBgNvw#0AfpH%~(E719>(pfE()rad8qum7g zdP?*jfVeK8@=<0JA&opGno;eD+A(a9ziNKB=5L>HT;;FM+YZxT2L)8|jS~yIWq4pT6LT$wuiWF|az$_B69sxOYcegmgcynvT`p9|? zkEM|xL^*|&_ITe~iRAJ?7)9Ri+IXlAfk+_gdKwXtp^UkG`yMRjZZ3cCtUfxw|T9Cxim$_gZWb(X{M zzW1Fs?ZXc~22KEr2P*C2b32HDRb!!OxQ=Y7KqeqQ0z?%&y<|^TckIK53-*H>%l3E? zQX2=cmfyz#?-Q&bHAMy-s5`)6m+aVoVB>4`_Tfap5cF8y00960Nklj>NbTF%#busJ%(b{tKd?T8E$U6R&9!HU*3+#Kf)j}9BnBE;xS*6r zJP*ynXuu$9D42SxX@B@piK(gS;?jmAmJd*~$*^^DuUAF12fUtG?KtKdZY49vKP0&F1QPb_e#_d9tPqa$z{R z9GOTwmcn7j?A+Kjn*>e{u-E#?TE)$2L_udqhmD>ccAb$cIBwNMokFgw`>|%jYi^B3 z5XjNHVsY15M7F)!;)i?W^*($?At(cI|8u{So2j8q)p<}=<&~F#2DHJ=Se-+1FJ^3|1JNk6(s(DdC&9jt$h`)=h88$ z#i|ZOnrY|wsv~_HcnE5ir#asulY*p*uCKm!F}JN5CsQQaEUM@Uqp?jEp^YiIq))w$ z)KVFYdwy=t)U{{`N#qI9oIY6Cqp;W$tW$PnnMgb3Ci5MW8i#=|IBrwpK{YNB8bQ?nYchF@%gV0+Ah0b=jNW`RA5iZ}r-m zpK6XEa%DbGGqPtNPI51rSnS&_11oZ^y?x!@!cmnus+^{1kZ7%7zw&EefJhA3JAe2G z_Ur%PpFnaR+NIH6`}05jbNlE2@(*oeZl1^p!@6;3k00K)X0B76X$LMLqs=0TJ|N48 zT({VnZy;6v0htsjblX+PLn7qhE-L3$Ywh@=9j(7_tM)QPC~C5~oA&ahe*54d#`>tm znquc{ZSzyRgrlthpjK2om&GZ*XCz~pRit=a4bo(0$-@k zWf-SH!~-Zq7V<>gWPKmsB_Of`Yl#w!U^_Hj^8jckpia#GGDc3$mit45dVrA$z?D=~ z@vUj1e1_mX$wCW2QT26ATxT2z=fD*w9+JVF64mbl|N50dYj_#(o@yq<38~%7(9nPr zDhSHkK-S!nZgYw$wLH-fDi!@U0-LEt=ulr5h8>7!A2~I_SrY-0YP)1$l(jYRcXjH; zg#cm&CqCTWZTsvUjSnajwA8D>5_QuO_qV&F3n}`FjSjTi#KaVV$Eu}c-rOVAzDT+q zB-6?yA_xOg2oHAb*Wb7fC$>+?B=a;`@$>N*asJI zO!sjBUUyve+=}oVcG)`_tq;T#a_o;LRiNAn{H75Vc_$B7r-!vo?p+{5rao@vy=ME1 z`D6QMzv;J*Ahw0Ik~nU(8B9}qoNTAA(MJ1u*4XTsg*9vK93d;uT6>EMdn)$HhaWlk z?F97zQb4W0Tbp1!b?sFVB7v>ipPZ^)JaAU9&dU%q0L^vi<^Sq9Avv%z6PZfcu?+I- zxy1!n2X$19#Glax)nSQ_cF?E}kKd?OZYV(YiWRkQyrM<-A~TcoP$28XP1WK?r`Xb5 zC`Uu69ZOXu>pYM6j%o^{w55VKaTu6$Ue7p@Db0L1DwgreuNi);w7BUVnVw{Ll|JkW2_duI8tWK>3 zFiIgH9`$4Llb&xaueky#@j+@;t$s!-@R9sj#ZQv|204xh!Chp$hb&T6M5|sv__CTA z&W^LNyL;`@#Zf2qQ(KKfVVQI3fmoX(VuIYOfZeh{>LBX(a*x@h8da)jqGIPzW#x8| zO(JD%tVcZs^pxG)u#evQsa?DNRW21-DvSB%kAGxiZ~V564x->l14Atn5tZhwe`p9! zVa~P|7Omy-W%w63ihZIYoK<7F!EW6BfpxbGuvo4TP&_8_&8I1b+ z)VJ6Sr1CqMOPuWFWY{iU0Co(I!7C8;Lx>*`0jttIqz=MlRUIQEPGnK$+3b-GuCA;A zOD3!*IBbh^GbrQIa1# z=C{H1asDc3(}czdkZ0>apQXAwEe7^3qkr}D*R2P~--tX_&HXmXKowQ5k}Va${tH`( zIQY6=*ml{h#sVMty*iFM@r?ZJFlzz@C$uEGEC3Hms+A>knErI#I{NDE^Vg6rH*~O) zn{9S`ihu;z24zqkYP}%bNtw;so(dt2F1kK=>hiY(?-68utIwF7?6}E_8vEK1O4#(m zytN|-m&gF`ft0)1RySGu2N-7*T5DN?2%shDanwoRqg$WaxshQaX$47B5a@B7Ox!hM z3?q@PF9+ZShastF5RLTN#N|+lhj!>4sbC_G?83RQHG5ig>XD+~yaxrNuK-or)b*mX zqZ_rC*Q7B3PqPE6uvO%o<3NjN`t1FiAJ|J5KaU~~rDJ5m);Ct10X{vAxWZ98+2r@w z3o=FZ?3sktQjLY;9yN{RROp_7dMes4qIKKoyqo; zS#CDET(>$4X!4_LTczSl)OPT@>+6z3OOaLYse}1XhTly-#P%tJ@W^M+LC8MJuFKJQ zq`8-k)NH5cRH_7gRkiih!Bp!9U2v~#q}oy?aOGU@H(jN<%K*Fyhi(d@s@mO567dpV z-+HIZuafAs$%%SBg}t17*!x~y)awH5!BYC2gQlM2I9yu^2WNSOhR${RYlM(TqDm6! zD%z_lR4qG_^KiHz3qfs6j2wWa zN5lZ!pf(hKBFR{asGNs;!1d-aK5ZzG4oTTp*ofWjBSdPmMAw>`RzV8MrX*`gH?|n)ageM&}EQOi~xi8A6N@f%Y4~UPq3TlWjQq|9 zuovo|jVk*b&A*51y`Cljf$FwPFB! zanharz1G2NWT=nz)CZT-YD4WA6gx3XhmY)Hf6~r(C2VSK+ZJ)GDxz%WT%!@ceeq(q zeQu<|UOLxmae@RH#7!`NWzdp)hC)&Mba}_Fftx>>f&<7P1!8@c)Y`=fF9NJLG9}e> zAY|Cy!-2tJlyN4N0HOn&vD(JSC`q#ZU}6DysU4z!fooNZ@}%n%rh!(fIgtXcumhCI z`fVd?J0hTo`hn1z1KclU(fz|b;{Yl_p1JykHEB#Uj*?*R$y^pE-vBp;FaUY8jJ#%n zgy5PY1ZVL$PIwEEM74onnEj&-5`$wBP;-LPQEh9c$n;~tWJy$AK6R&M4{9A`+S+Xi zk;hkm`AhcizJD7yw+%>HFcFHY<*bExPg7%*tnkQg-&+NK#!!>rXSc?If?u-z-J%t@ z*Vqe?=VU+;oMTb4TGnJQYPnTZS&?MD6(Ka$QM`_|kUtFBoqMc(oZrmSslEI{o&Ccv z9ozT@f)?PcdL+RGGBF8A){9Xx&I6pNX3=!nRw-t)Yd#?CR=Ya`zv>U!DuK)x=UrEc zS~{8VRE9Fq>X)T)!cq&8nP_}2n256t%0N_`BwOtjiTmJZ+c;0)W_9(gR4 z5cV#X^eH9ad(Q5-jx_?>gVvq15zMQs#~WYb!D522 zFQ4oA=F?WgB4eIYTY2`lT72kIB>nVkXjScZwW@ayn|s!W%Tx2#YD%gZMy)BA{_bZL zTvZLV`&38Fdo5XNl3=ezeXTL1M;fX6SbBR^B0J(=xUuW2@AVjxXVwiaY;U?+4Ih6m z`KB_03PiDAT}4$lQ{{33>IlqDlY~+=3aW6I19QbZ9CsgRV4n!EZ(zXowl-ZCPHpx` z12RO&!5x%aF^q9V)%BWl!m-yd96mCn1Kt;ImXoTtvuDqvc6sc2K-~fEQbAiv#gb~> z4pErP0i{8NN);4?1U}`uq(s@mpmn0my7B%`*qBK+R-f&$sRN}M%dL$g`PI;=7VAhg z*=ZPjxVY&es=eZ#YekV=p0k&~^i_NC$z7XTdTe87&RCgy(|P{7EiA91sM@xUbT{Y2 z;srKT%L$1Z_AuUIBJq0ETY<(-lxIjhaX_WkF)Ne4v-K@D`VF8PwIF#YEj6C?qUDMw zmR-zQZgs}S=U43dXcX9`g!)Yilp`Cy5F#tPZqwYO5}3NbfRXd%| zOe-7NgK`t#=`sSUi;!fvLv1%O8a*h91ncY&0SmX56qC(p zd$Zh8zll%Kv6|p0gpLKIB;#i}aCHVA?ugi6YXb_dW*hBG*_A=A<7ks86TijUsvrRm z)QJmI8<0~+^cKi`C2G(xsO{|>kW$>W%a8*87>-2_S8e|HiFlm=2B=Js)5^MPRqC9i zRDGAqtm}=nI?1wigM+rr@?v<^c&#BJ`ME%sT$549v96O9gFOw+f0C1gHXCY9nPh;%Ef9 z=~@(xOBuO?ao4PxqNZdb$4<$S2*Lq|i;+dBt8x=x6L4#J#30MF_khKKb{1Cb!Q_fH zuut28z7$}blBMqe*+rxu##k0W3)1a9MDRHR6y&^Q+PiyjA+Cvq_y;(P-Y6o33K@^g zH^EbB&z?-PehauG*ZH_)|KvBy_*jB%jC_8t$%z{ZtWS~m%d37ASQvjqCIKAm_ug5y zvttpm@id=-?Lb|3$e!$j3ks_90&7%3y6RtC6*c^QSAf-((tJ`jqc`=B}!sRNx9 z*ujdbZdX6IT0_Urj@gwOFmQ3S`>7+51lH9|RymHE6t_Cg#4EY4k?hYkZ>){l_1egL z>aC{*i9ajzb<*ORqk2XR)#SfktBIMCU2nm1XK}hZ?T-{Hq?fQCQ^ml=)gcDb|k$NxcNhdhH8WE@GN=1KJ7 z%Ggd==qoEZj6m77_h6wRu=O2pDRX{Au1EaH)4DfuBC_C zikunjb;r>r2!hvZ)bHxz63-B28=Q+~gsY#BH2m5yjoi1qhFK-JmzA=^pZ%z1LfqHo z*=cL<<^HKiQEP)mwp-3yc4;038$>>0i{0ER&KtvsrZ$U*7A+L9U+h7_2{P}iP9Av*;wTszDhiyT5kv zl0BT!9COI>LDiM8PzP9c$3{7pRu#UF>(?? zbZf3_w`@aUD{l?;M@~L02P`Ri5m{ykRb>Wc;l?_K6~kQuIv;=Jv-Sbdh?TN^LUJMHki_K<965+#e_C>~C(5>PfG#yPfD zkP6ACJyKjpbG6IBM<&p(1`n zQZIKPU7Xiv#eFZ0an&baTg&oYjhQ*wUc>DT`!1=r6_Pjvjqv-C{H zO^eH$m4XA&OSqqIlrkd8;&{)28=Icvz*cR zG^&?bG9(D^tZENXP(e(p<#jySCREh5q)?a7Ltu*CT{eiX43q_Cj8l=;JtrIt-hA~Waonu5*>lTUvIjMIRQP(nL zr)HU#H>RCDxy=7m^RWkHR|&95wjU9_6Hym2&TXSaVi^=#=gc4NCK5%}l$*0~i3pL! zo_#!SAAkJ5{ovi7kPVb={@;AVe(Udk&EEJ&|D8>&AKSZ++ib5Cvc6G74ILx4K{T2} z`dlBr%DF@M;xINAW`G63y0aL3dP#QDb2G6yTUA9xr@c>q6mK2;U zVgh*ZkWH!RG29%pNl3_Lp1BlIH}2fGk2o*&B^y0IY8f&Q4H^pppJ|+OGLd#0R1Nc# zji}X%WS@#n;zX|lWRG*>AAoo*xq0Q9`q-Z8ur6SjL&oP; zERKC)qc~N#E z4oks+9QmQf2dj`0(q2wg(_r26!SO|bEW?2^*?7{{bNiN#6H!&*syL^4;KKqAx*kaP zg)9B`;rq+nD>C_(VXG@I5G=sa0sCzqiRbj=XwI?Mj+`Pb58moK3Lznm+R=W+KEB2N z$y9&=D+DE&%TmF9`pC%Wk(@6)wCmSKo&8zNq7>XkY!kyS!pGG&=ovOzPX~gT*a(gW z9xDp;MUe9AU;9-z_ShRYF1`UY0~lSM8k}$lL6I^v{od>93)}_F<&<#MCb~6Rq1O9K zA|!7O2qyCcO113cd0Seu%g<0A9mKP%wNAeB4}!94#fs0{^yi(*(|QtR_7~4}f78ul zukjdeAc_Z^d9aq!AFu7ZgReY`UTp)fmi2-MytK)a0(%gVyr6gt@|>r=xm<0Dq6$}w zA}QL>7btptVZ4j;hGNy=EM-gH?>tV$>l@>7D=MP&KBp!hcAirGVlbrYJ*1fvI_C(B z(#K8rOR>dbKOtHTK#D4iX5ZC7rU876LF-pl-w3IxnC_ z2PY24Ttu?A43ARTwyUpv-9oAz@g3U#`3HY&f9K2BY+q^%Hq*VEKemyxy|%syzk_UZ z?E33AGyaIp{{ZRoIm@ryb)AAwPz?o>-FC9@eGFaLd~JvmNWb&&1}AkGhPssHS?qpf zvjwpCKzaajF-sJSO!UFWZf?q@*M7y``DoF6?dR;(FTRGlrH|W7tk`iLNwMZ^15NF2 zvXOR)Vu=!o-qkugK-9m7Ba9~7ft9A+m}M!8PWONeHN=ZZO$`O7?n@Cj?4G-f5->Fp zqPh*JbvZ!;yh}TVP7eMMgO~;~%(TQYBGqoKYSWFPsRLX;0%o5^F}IB~Yv=i*hl0Cl zhS!K%e`lK|$S72IaRlGhNI(&8NTHfrwUNPL7l1S)v}h!lm3 z;vI3E9xy2Zi$3wwvGHAE;Fb=7xVx^|u5;1yfUt=WV7 zPi&M7<@jjF9*;kE(3Oe@Cm!5!k#!IUn1hg31-q11@kqk8oKKeLRpRhNQx zV7S&ykLxgTT7g?@M7j%SwX`^gpkjjn0Ozsm%^T{D0v+*L+d!iyJp5MnX%h}9i@bTC zY}|K}CE!b19N1CLCI*L7K2ftr6ocJ;z^KTVBPX2Omc(zi%vxb_4tj3kpYD5ChD%U;d@T^^mJEokJD{}PS z_Y9)?#o0%VBdI}K-odI(yQ-elIg;n#FQ<>LlKHiBuMQjb23X-ZbXZk2mx#VxF%Q?Q z3@ZR`9@Lxz7H^r2T_WRZRo3AUmYcQfeu+UWYsvyrKuJK}IT8 z6I|dy65>_rY-&NZ4}R+(Y=2}xmq zs17M~sFJgpnRzQ=6+qXgUt?>)MU42vaWs2%m70_LYdSEjIhtbR$WBA z;lxdV+eS1Ycp$enV*`Byj(DG&nYN2#V=jxEot<*)@R;YRtW&+W1Uv3%%A#6ca6fg; z=r1u)VBb8;pr$UO*vb$w7xHs9+;h%mC+^zdS#`8UimAdkVwNZlVjbrabCVC*Lh2CA zF;*5=fq~R^XAc`+=9yvaad2TWyC~N(2gD=7Tajag_eKa_c8=;?jmhBwS#kzQO^q)NZo5tgZ+-tgoOc&+QW#?`bszU-dES2X&YPBGO$`k8y9SOrDLJ~)(et*ly5^+y zLqN6n?%l>|bU0W`QxdyT$VqOiDT_@!s|S+{_LYC{cY)FqKy#BokZ>cYB?b3Nk@o~L zzEM5w*pv4jYypw#SvGNvN487GTPg*C^7tK&R?lK;Y5`cc)r#<%?Fb+a3GhyNu8Fia zCO~y4f{=Ifs)CQ&>h_^Mo=0}g`so_O(Xdy$Is!H^m9td-wjHK=tbOdafe8og!R$Lo zdZ+AHuS=M4fHJPh-o1TlD`bF|`Z|ayi>@p0;$}U;VYe%uRCKT6=0#xE+~&4jzBpo= zxhw%i#KBtXupmXMvf-fX)C;^Wd9bsiPg}4*=M+2w!V^q+r4h2JPO>YQ-yt)|>86V|kPvDGq?=O-qLpLyEZT^SP&&$UQ7f429VPaAhR@AZrvcM7hj zTu7C_sLok`IQKDY%5y&IUsWqa^qfiH=Lq&%D)!7_xdFbOqi~0N=186r z?v6b2dV{&nl}_ud;ndHZh^|D2ME@qkuOU~i(IbZ_^SdS@GarU!pQvjeBd4MsO<#0f zWXV{fKo;4xCG_BG4oO7E&C9b8742#xudNWRwviQJ@N^kuoNhx2D$_%7S;58u1|kQ! zK4S0v_#GnRP9pCVvc}`;%#D(R#9Z#CXdVMl0D2l386;})?!&~RX}j|B7cjIKWIksb zsp$^UZ!8)CbIzkO30w9c0B(KTI$F*+h)ht$<_7Rs0WJXo`O)-@>va42t1qHP3)#gN zULmTRv6K1?lG+7}0bRfY+TxRs?cCYdP};nQ{I|(ky8F2oJ`0j1oNkbPl%_Cd3Hx_{ z1#S+n@o4@nqVB7~5g2Gzx&|M00ogQhEX~6{E_qG&GRRXS7(7yZbBLoN~R9z?5lM1`J>OMd41lJUfwAswE`dT$vZ(Gbl zhH-(D(_kqcf>SwZ9*5UxRXmRuxSaY_Z$u`8)VXVD#0I(sT+me3jCT$!$TSjdam0H{ zos}^(uGg4G4{Kl>&nb(Ns2#}xf`E+ZKYva+5(U-Vn2@Xs} zx7np9a7wIgGV-I7Iy--6!0tUni3q2mzF!K=Gzcq1HZ4P?IqHIiG^tYcKD#L73P88o zUlItk^bNCb#_ZEi)K;Z~=aeFAUU#ZTsVa{p&&M8>$UZc$&8)0Z7D?g}A-`xqkD* z59P}QnU#or|3?#K#qf<)yD3%Z88TQknUoXl>CWKXGzUp`R_jiDhgbh3$*&xV?3e20 zgqY~7gRiQAv^V-mwyzp|>qkdjIEj=uf8Fs?no(2BHdLD@XiS}cH3_eGa-Q(YgR-1m*Mfc8o6D;r_gbjP5I$==|Fr7; z|0W~(IY_I5g3GYi&Cq)-CG*Rg5}6IUR_L)S>vEi#p4 zYufeq@}8wSvX_`($FqWjl4MV&!t< zz#S{_7n1t+0TnFIJ_K{eF(ip{k1T^zYi1)I6Oo>fZKM;z-wRH9?HYQrX?+@ICJ_a&gh=r)&$JaMDcC?l zG8ruq_d6KMu68N6fFLz{2VO$w)7%7ag50?y-f2OChg7QF4f86Y%92!AlQ`87a1C`+ z04LGH{XRZMvKwr6k)uZ9hP1wvajI1gagJ&S)X!=gr=Lv5Y;iiv*Cw0Z!XP2%e*Fqu z1@df-W7D|cG@QtTsZETT-!62MRf7FT8dQU!9$d%nJY7>hvJIE{LLe&(DG?|X!SD^^ zSjLdw8((JKXI%vE^J!R964(oY0fL4N;G4#BQgS8GPirRtH?Zlc0ka6*kF z>rDf~imEinv9E6~xuIaOaEfOTv8}x$)|>7p&K4M~wX4_u`nzv&&rrL`Nw;;lx$aU{ z`nirq-W$a@<SLB0^V3h-TKk9Cnf{Nsh9ov(@hW^gVm?%|Er5u6zzjdeJ_3|9$Ig zhfrr-RNzl`3lQ~nJ2=EHi20oLbFA%kILCGcd?$8*!bSBM%?+%TSida*^(BCw0vOW% z;cIsD&TaNYlzr0R_H~Fgy1KRECVv+9cpr$sMzLa7#)9^j?;qGd{hbK*3?iQFrHQ?~ zu>R25#k=!aL=f;IKHzg~+yQ~s90BBu{RB2Rp^{TVADvDNfMNMdJ zhF?t~#8EZ7AXH^tu6#m)gF}3ty=t7T>x)=zKPCRwd*Nv0Tm)-9hvdj2$}GAH_3F4? z@!xVF3VO?W$&n}{;oqIyw_4FIj^=s(+YwdOjKrx~Yn|Okhr7O6i{KqRRg>X5HJ0@G zHMOqSbIVIyJiN|jD7rvtmr2F+dwIWSZBc3&idX;PYB#FwPHOLcPTp0$ZcXs={;l?F z53;H{S?3IE9#?&as_h=QInEj4f9hGJ!tD--Mm6X85J_qS8~9XxiHI;Y!uJGYz7NK& zO4}wJfgYH$tukJ_4uUWT4APqEvPyQ5jA0+>10q$!ok+WN^Ce?!ju08};PMcoadj-k zc&Sx|a8G%36^iAMSE}{FlSwube;dZ}ILRLhn#Xq@TK}0|SAY}(dboM#ro)PZd|yD_ zl7vvaaqE_A|4}a~V?O7w&#5Pk?|z6B z*$>&S4y#LO*}vo>{s^i48uHavV78+TlxSlY?edGiW*@)%BOAMX#mYF{6b8cI+yNA^ z1ef!g9WVUIDnnnh)4BI7NtC-o22wal*hp8*?moJ0Q@7VJgnRbm@BP584ksNnrLo4# z%aa!Df5AouhziNVT96hWA&rDu#6YgvKKFOK62o}5S%vF9Jy>_LW_9TG1rBlSerq72 zi$eN`ntLq_zoI$Sz9MS3y>%8pFbqz*o=9>lJB=|JcC%~L?mWQfbwCCm71fqogl5Fj zO&XpANsffNInm|}tDdPQFV+Jissn5tI6N#rTmnG^0)!YDoIi|FAiIlo^ukSOenk?) zap;V>lyrHrkp#wIZfOFeujzJ*z*j8|$E6w=k6-lh+z13RQJY>V+K=w#?dq8*j-=J< z%V8S_=9pXO9-!=bJhNfHd<6kS3Ar=ePy?CJAq0MNqc}@JTS%q3CMnJ|%@lwj?W6mheAeILI)2<;J~->>HeJ zG7WdvVXLUYQgC__zC<`y6!=Gj&s4D3!h-6GAQ3{RjZe+l;)*i3f}QPavLAm`w$Fb)X=jpL zD-Jr*+GqD?5J~V{x5}(*_F`MhKIa0PRffQ?Yi9p+xLTf#jhx+GBCsGZBI&a3_M{7D zCEJzb9vb4l!?Bf+8H=9^sFp-M-84#9e3k2@;muxm#vUHhbuYjUDpNd$qjvK`oV@j! z(8$TH)vcT$p(G++?^PX^x_wu2JfLG+-`KQW99K6P$Gbmz*GA5qaT`cpT{GxcS2vtwHHic_OIqEQ zY3Jb`yDEFNNRTA;5gW1zC7BPS5lsOB9fCRg_8|H&E@6%NT_;)tMgl6j`|(>gI(EhK zD927uG>ZVm3CfkBfngTy3b!r*gvUk_L0#Cg9$>lMU5McrWMbVR=d^FD^Pd1!4G;{S z+Wy7|mJIQ{I$v|$4%7ywyf$U^u`@WxRXYv=OC8<@-aCt-WgRqtd8aeh(m>P)1knJA z+LA`f$i~VCGB!rkc7oAYqXk95a@^^}q17F(+2rjT80j&KB-(*4@&u)OkfLN>z-$K_ zi&om1=Df|ChQ5fyK_0w1?lxRl>NB~B4S@~<$>h1-0#v(7Koz}$ZyCiwvz&ndl+blv2MuD{D<7{ ze*uviaP=^~-D5VtGz)hl>9txSRjjx3ENftr>nS)w-^cUNl*$5<+o?^T-9=9NAH9n5 z3J2AQar{5tRtD5yOGtCS@#?eXA{ae4N1zC1Kb1f&1UzcqX9T0d#+I%}t7k5F>m zx^rTqBLsqiSXtNm820adciXOA>tjEug-*%V4}kIzk#xd0H3RDj)rk=#b|Tu4(4q)e zDHE-X)4euoo;az-Cp-A6T;o0n zmib=g1YYZzY9B4Zm(`Mq=Q$DWrDqV9zVfp=H9U1D)o~#%<&oT12XWrW70o)Ms+WwX z7x8#sr6#F%f3b?=CaUH2Rm|-d$;1BNUQg4es^@!NM*KXfRC6mo`!{laO8NA&)Ejaj zO%QKQk~&K3&&Ca@idL0JO7p6+W&Mo|KidrQjZCJIRF=px-allOy$!J1W(QB5N-A8P zz$d4p=s>McG`2KHO5cKtsDzVJ1${Fr7M(+_AB|KbYmoAzXNRmU1tzWR2&zN~Og$zt?S>3(PBhxY>;piPHn;+=Kboc*SB3EnGXe^wvX*;h^_V!LFN$l3DC2aD8>KZ9vggK?raJ4|2M{ZEXXi zmOo{KusQNGcdYN~m+VClvAV4%He2L=;uIRmU?bq@O)U1Hzss6{GF}?eh`jgg_I)6> zK*)SR5yAe?;dok!@auv9x=`AojN6*GI-sXux}Qiki3Am1N^P1e1y&>*P!k4yVB_rx ztAy15j0_UEOC6p?Yz~f`BN98ZDI!X(;wS=zGHdrfE<0tmQxe+VmrflNzTST?*xmM_B`p&b$ za6WKOYGEH}O4<)^t=YA~s71)Q=EyGo=ReHaSFUuq%>Fm8As{$Gj*NARMTv0BNQjd` z97_?nm0$(uUOM)sG&Yf4%OI%vqEv(`T+QW+t{8W0pw$Inav}=L)Q?N^DVoCpd+p_` z)pxUPT)ceZj8)X22y)O?d{d71#y*YGok`L z4OlymfMJPjCREPaB!Y@?GYYfFku3vtt*@cFssME&aOiDoa`WxOCu=zX*8=~=6n_6nH$vG9{61ku9%sb823Mcl@ z-#xb1uAW$S>k+m>#ie8sm6t#eSTB5LW0TJn0RL}qR#0?xS|GG)p`#eG?l!0943JSu z{ntdsC)7dBAbBkA-vq5nn4$Hk^`XL8?Xe@)yO0&H>RrLILNM+NwyS*X+2mTwlc!F^ z)rzR+TGf6l3&DZZ{$2ctH%qoQR@WZV%3QVOREii_Z&{;xu3nF6)!{ZBw=0|{bvc9=ZP8_*5@6^&pMNzbtIp` z=ALsPpUIx8Rhu4O_-r1ra~NbL_1qvy2gQ5T5$U+O#&QBIbP@G}#M~xqXoRFZv^b<` z078;f#`b`>)J0guUrPT{nO66HL0cU}NGb?Ql06&}!AY?dOOm$Y9BR%+5r8)4<45B* zHqvJ?NY^Idn|d6Huw)J4ss}bHVQi-6CQ+Llx=x_#5hdd50V=M}fdQwuarcqq`Fy)X zjwzd&-L&G7W=7Oms*S9RjACHq3oa`xs&xy{Kmu5yYv48H%~GfIp%UJP42{~>#tO35 zd2o58oS9yX4_O*nj%rx;)fqPk?!UvilXCmC&|_puZ7*8=&b$R$$Uac^v^J}4MF~tf z$~l)T34HKE&%PbZK4SA-wb}41_UiBd4^~_lx82Bqo$FJ@J{t-%?T3)}HFsIKWzZTD zJr?ggL-dQpmB_v8_?E5TeV@O>D8`z=v{P2xSjDMIC_zSoT1)cS%$I)88qR*%&cFOM zJ3Pivg@KwXN(JC$i27rV3GO#?VxsCg44IEe{e_oax49>eT}Ohh_HLrnZ72P%s2xxv znE;a1>^9FutyQ{5%%2&ygOznV&aYWvO+6%xK3h zv|`M%WhB_+7HAfvC1nz-uMMAl{|-{}UG@u^Wr<9J;GY18HBLmY>T&&@vfw?07e(N$ z3ItWj5`fVUfQ0EBAtF?|bJH)|zgs+z_U2!mP zk!-M;Y^kjy#ruv~m#qXbDQhH1Qu(5rQx5U&<2-NO{sg)726E&cd;3n-!F7c#_CJn$ z4Rw_|KsERq&9A5%)!y(xvrRq@k&#v`lN1?UaY37)y+krY#w7?|QfXI6=c0DCbl>MW zK3T|G5&7^!&S%@jdi(Ydw`_AYZ2#@oj_qvMsfAAKZ8d*@A}(Orm03I252VF?4>X+G z$J5((wKHi~`&-DOSyu@6ii&jjuZ!$MqYzYn(4;Z9uBH2_^NWreYs@I(Q14{m_;KJE&*U7iW3wXV?yh6}wk1f}z(QDA? zX1)JR%}C9G)Er8!GrUyD5?4uJq*q{Qp!=I*`JYP4oT2u{<~lB-+V9K#{<*gCA!Pwh zIaS5T9A_euxjG1|Hip;v8FxA!CsJ*^=s200`sy=K*UuLrI*G5&QC`!vW~o(gN)Vuy z%g0`}z%fH)9r`@NNCpumGL$10A0ysmVR6OXt8FmXrwJ$2b@_wgA#IZ$Xt)Mx9#rTdv@{a755Ad_M|=n=Z0YS1)G2v zw!xxLZEG8KQK|)eI)yH_QIS+`o84I)|N{z;{4Pka~qhBdx0`2K77&Y zh_)LO-PS=CaD)*~b)T{R(GjvRRB1q4okPH9T|-2htRs|Y`PF&2qfwlZ$WnEBhEqGK zw~hhis`oyyAkV)U;(c#t8ECKF!l=iR*MHj%fi{z=A)Mnf+{r8uP_xA|V^9>`2p%Bz z>xi`Tn`9D0);@5-vWrMQPj+mc2>oBZSG3=Gqu)N6+`&=cG7%?a>JQ0S19s!~qTQN< z9LHeAn%1};oDuiz7{SJ0-#vxEMfQsU)J{<6f_StGSnCkyvF~QL?{e?=z`HxUTaiZh z*dKrE$JPsMrs6|w{5{C{3<|U~5Mm=jj4UcLMaUJ_<~pSJ$mpjRK|5TMF=OFtmGQJvEyMWtsKu)!#foavQzRFtE0!4PM z_LAdqb4JK`1!Kv1xI#khQ`HPsOF!yrJ92zGox4jjv#V{OMJ9qwd`-^Y? z8`oAO9t+zsDxG8_8H;}j6wM*RZ27%Evv@}z^59wP zLG`tC`yH~HcAL)b!RvHk3^%QTjU0-ka3CTblWJPSagVG%g7OMSp6D5Zb4gez+Rpdq zUA@NX$|r8t#ws%F=F+nHJFnOljyOej<%bBDOfnovTVx1ay=}n3kIl($E0$TKl1Hiy zJxa5=g*jj`oYmGU5EZbaibZj%hsUg845%QYBX|eRf>BF}Abzag0rgBI^Fio=xWhHZoYYi|u2s1F|}y6oC-#JUXy1 zU%+6fFO-@wqP$aZ(oE*2`6t^2lz z=eMST%eHtg*QtGY07OGZk!%iHTVE?u+bpaYSvum57N9k?7twtP1Np6U-f^;VHG8}} zw`W5sXB3>Rstc;nI07=E(F?%BIKwtnk9+Wyhj3B1?k~IHQR8{IQr6NpfA`d0Xxl}^ zLG*t@RvX;2{5p&r!9+d}EZKBmtx;@GnP=C0YCrh!$gW=2ba%k|IFOAwKM)_fh+ya{&H6j4cjHEZ2hycZi9GG<`>aW$>#cc$f%Kfg|CdK`Z6FAaK_?yxp_j~Vqy*%-*sB$a3ZvA9-0Lok(IacA@P5q=kj%GoN>--%$Yc?!!VU6}>oM#H zY&xvr>H;hu|Nx@aP+E>RX2MIvx3CJHY`ppg@Wc*=>yf z1kQ8HWx*Mk)qS$Y5RU0kb2y0bj}Nl8KKH<;Klrw-j(_MNC_f~9JrLB|{Df^j`N(#r zJ|yFa69D9K3L!U}Ccn058}s*3oBY+X8x((Jxv$Ve+EF=XWD zaAw_PM4BrRvUFps9gsb#mSq>hJ~vP1+1_Wpa7*t_99mb*XWw`wZolz)f-w|poeIoCToXxkonBd3bjr6=gcFj}2f6p+bDF{xD{Pmou(xHs zsZ$$&Kvvs?f(^&9p)4LKbEm+5WUuEpRV2&iV!x^F{jQoTVw5GBt`BL z;b_=fA5GQUz)%yP6U52x+oungY#mtZxGrw}nV2`PhWEM=xx6%}N>G+xj-8DdMoiPh z`G$bHLY$}jTJL2g?xny;f(h1W15P9X|C=U@6U3MVQkNLQ@xr_m)YkeQx>+G=@uYT9 zHCo`gK>KHfO|HPuIgx77p^^b{A>!IxG9U-|%n|zCs09AKySx3Ho(2F;K(W7|DyJoa zuQh7)e3;j^#H(blwTf5qVYRViwIIdA(Iic*LRRu()pGor;dd2~wMzM?$F9|fRNKQ> z>sh?MTD5*%)fV*6eRYZj=VYqwmtCP`Ez8lr$$>~hrwvBriow@c!AQap<&i~bm-+iR zX?B^&DWv9OuHy5U&6#8IBNHa|bB;v)Z#bW#h$%LsI?0~!eF$hwEx6^`n;M&3y9PND z4P81?hgCke9fR*2f{GNmo*6b=kWHEZUfRRp9}^j?eYb`Rt*tLQeERLT-m+e#fyspG zPY&$XjgL`ZVPsh(Su%=f91bK}@6<4g`j+B7U86=Z@+w#RFBK6Noupu8L;R)L z)mAf(ZXfcwHv^%(vuPWsmf9m~Lmx&CylBaY-#Xe_2ppu5FW9Y5Cy`~hx|$F<>@B3~ ziZqirl{@ef7cN{>a_;7c_xE+WZqyYZHy<)l4SdRx{a$FW7h9dB|`CCG7Tk3~9Hz@&*noEo1Qte>*pJ-Lh$#wE60|`3FP5_ z8n9>)GU??F>Rv`75=fp>(l@1HoU@uCy6mIo z05#-FFGb{#PY_YM7p{U77)Owps@$b4kvRhSS_z=C zB05le19$CuXi`q-SOKr7QKNI!;z7{IHkpDVYxPiaL$Uaqt`3Md-tSsCD{W;#W!Dy* zW15?vu^u+9s^>vufiZYGIJy&@K+o_wi-dsG$TGHx>IX6$XFq4zF!0Gof8$1}wxp0b zL(bp*_!A5%r1spn9g#7m+A`L9@i)yMB8tS}9I1>>HFI=|9j#sU@=aPNlT*@jt9|CKnZDxzjPg;JAG`SLpSPOXhCfS%s zl2ZtCSuNsz3!wljO1?aB#e!_|@~wBwKl@OfGOf5dYaI}m>zfC*y>#DZK6%sfkKT0? zD`UVpWgNr*#n^j5N0wdZxf=x(QUQgWL!)z;?w;w1%^@d|GaQL#kVR3lD9V(zWZ9ON zsAoM{Z#~;D*p_TA+LkQ`$@G&(8C+J69OX(z_I*;au+>IkX!?7z!7v_A0kCc%w` z1t3oFboJUQ=TPlk34OZ2nd?w4De}wD&Ox}oW65=--eYgu;^g5`@zSdO>!10E7gDAXD)hDjQ`A62Yi&l7^PbO>{$Z|HD^uALy>L8KC@K>ot3-A`sy$8WZ3t8Um ze9?MRz*%HhHzxD8w*~$M2XW`212{JR4(Q4SFG-C@=(a(eczv2IR^y4wWZ*>hdG@Mg zylHr*QJ~ZXGM4uCdQ?WuUf+|=LFN;2XCcc~|Iviw-GAUH8HC9F0(L;M;S~&Y!dg?! zZ~_fvdy;`8{D2di&(1)CBUb4{V$B-9_xOFtdf!4xw``MRBX;BZDT22$e~(gZF5_*B z8WCAk07++xY88YtY~Hl-X%!~dlT~rfN-GFQ+ORh&tgLXGQ~(O?z_C=|V5-XSn?5#{ z@P`Z_%%9)II(G3o*KI!6VzZf|_4R5nRKgxV*ob0ojUY&kQa7!(nJi#_35w|-kP(A4mP=XK(gj$WX?6!@KC^_6$>*s6tYU$L4pn$<|?99@o{xk zI2xQ$3MZFhz2xkYD8N+rqUb;LKa>FvkiJxM>f@(w&nhMqHzsNNI*$r$uevS%7#!^NHu9k{<92)Zt%5?Y7YRMEyg6e`j7KC$)DbH@BCaI#-qMT`ANzF+fgYY4 zdV0n4gKz%2xl85E6B2LESb}UV%9&j296?}?^#$lmUp~8?j36G-E1pEKmgZj9!%e8{ zSYvkA;6jp;HmJf=vm1oBvOtBxvTs1OPmuwvL3N?YczVqi87*$4@Z}biG0IAmjfhj3 z0mD_#t!d=Bdv^Bvb%kpbjJRRL6Y3nyd-Dl8kOaPd;*`DTfqT4-#ys*^&$__lQ>dca zQ@wWft?$`gM|W_;klAvXGh`t>eeGOht*det7l3Vej^;hA!fW&n9>gee05HOuRb8nX z7|7txfdlXjIa`Lr{Lo+jxLrE&w5>BMybWA@Xve*FY3d!K!jl*Xg0z}W+keM#uw?LY zB#y1=!z>pPTQZZi>3MtZnXlUG&pu~;dr>xBd&|}!niHM(+0sk@)(-yoryv?bx8&8v zZaaAIharH^V_;grm}iOHF)*5F2}F{v6J(*;+4bJ#811ZC?;W;|LC;-#!!}Slts#G1 zWG(eM*MVbZubv{xU-H&7eRsYe!`#4q)C_S9BvJkb4!lkk=46O#$|8WTRBJIcJ4NcB z#)$Q@)<7>fjFvX_liI`nm(xHli{L^tISiaq`E+xF_o5&QHn{fK3jW?fcYhU}d~s+v|c zyWm}dBEU}j9`MLRd)BO%O!>yboV{`pI25dZWwpm1c~86TBOA<1(YLO^1`<~7#=++` zBYhp!(u=R3vpWtUp#@TzoSe49`*t8N@9-&y-+uOcwvWB2p+|y9);T8=6Vvv<@nbHF z)}G4&?Mm9&%mx@+EZD^KjCG^pnwp-nJojoE$!#@}vi5|k$mbW-pcJ(eL7N)?EicX3 z?j3zTXiI8E!8~(hjVi)RxeR*)<6N>M@EjVRC5U(L&~AIw1F?@i$3~dldo4#9SWEC1t0% zN5>9it%V?99fy@cs@p!W+uC?PwO3PdruN^Z>qUeGT|URBi~TO1OX354P7&!<@Nj`E z5!AI2DYl|0Kd!@zs>am#$$UNiiN8yn z7v@jv5hTL)1Kddba6ZNRwS<35S{Cyqp*?YUpY3bERpz@*`26r%lTer=U9=nq3xe^~ zjAKDZ6%p^EMHEgLh;KL_RfQsn)AMWLJsMk@y^V&r5LIzkDa+CCiR9{V7Nr&BzfvWz zfNCJ91h0|}s^K51+}9>lZypi$%{Uaz5|=tlu#?`a0KcN1Lm3X1&tZ<#2fF6D#T-(= zb}Qx=U01%E%V4{J1Ul=9cr&P;T5Wn{(kBZxE0tZn2;4jFJ%E}}V`3;{SCI0Rth3HXunJI`1-cioDL{--Y39FBK-@`A0-ts=)g=Zy=O0UTNmKSHF+ejvha z>ub(!z zfrAjHM3!|#!Rd522M2t=xyRO+Z^ow#C~83KT%YdF*cj=^{J z^w=N0a>Guc!20!{e-gN_0C#aG_e*1GXKkRb!wFUuNj9}K*h|Cf)|D*VqlbIF=(VA} z-?C)bck#LAG586%ttpJVcuLJ#Phg~p2R+DZ;cq9WQCT4xQSs^|j{f1}M_JR*p`Zsi zOMj=Lyb_M6xrM*O`Bnkb^mO+i!IgT>kn8Hcr(7mmSBJO*m6b9H%}Oue1TFy0IjX>G zsIV`odLSgjYU!~G2c>>yQf$r5XB|RbMm9ZsW0dCxqW$eN=dHh^2i4=E?PR^r506P(=H`UW&MbPcTMOSYv=iO}NLZqxd>)QQ zDk+VW;8?rO;qRswvScWm-Z?u#Af>KGYOSKbk!>my=}hB1&s-eljBRp0;C+DBhL<{# z0T*nH0JExolMFvY(17Y}jb*$=1a@ z$jxC&#GsCXeKk z2!r?YnZ1I95|OcwidI}YCN$5zdt4x>6o=@>A+XI`8i9f2Dc}rHmH%bbqsvuW8uSx! zBqGYUs||0-K0;lH%=t|Yhv)jTc*jeTG%?>Ib(rwSXhNd8{zgto-}T>K*^6-yOeM## zj)4(WrT-_foa>~Tx$9S47Fex1l7jF<&AukGA%e=0afn!V)fa|ZZJ-OlEz+oK_P2~v z1@EVxLUN{>To*d?3my#kO6At*~x)tXH}~fwcao+Y093kzl#o>YX&!Jnd z?*YfY0^b5Doj|p+Hf|}6P6d;nTg>|8xy|;29;Nqor%YpjRv|mS=~;sk#jwq1oEtGz$EF_{{gMrZj2utFu=8?&od)lRs~X42HG7A3+%EukhrEk0|@g`KuA(PjMyd-x1BwuAw~!}LlEYOoXb#m@ zr+5P3kQDd(!3XZP;p?Xz^KV8%+SMu&6IBv8d2>&{N3S`ujw>Tqar}Mk-82#Ugzelh zXt}8?)&$3tYT%yTc+1waIGWUwtq;A&e)rE`$M~<hP{>F3U9d*_} zAmf}MlSq3edu43ZF3i{4$A?f);c#H_?8+6m3hv+7Or;euToPx)&XR+fk`Ijb1m8#qi2`;rsV`Bq1WOeTZsioK*F+zl{!^>*S6RRe9F zg*@*8PV9tWZsomqka3VY`RAPnI^DZ#r(GSrU_+e`*;NSXiuW(uKzF@ey)t3la6!pR z)LN^E7P@=wIvH|vW2Y_5%y1t|es8nzXKE?b+0DU^GmAt66{@Y<=q-k<@1sg_i5rH_Zcp7fb9IMFHYJoe1M>W03};Q z+_FgUh>B5zv<5nttP2h(N7h>3dAEK4&tJ4pe(XU@ECX?4s&a@Wnh0jfWKC)XlcZ$orq zZp7`XxMSOn+=J5ymGYrg{Z_N7h}Vurq(`>avkhe+o<-?`+vBN;-k3f}ri1fvm}tBAOH3k3d#FUt2m2_I#Tmp9my|w9(p>ey+DwIPVuOG# zLBz4a21^2m6o6NjhOfEMR!z)mfu7VdM5X_=s)qn>C!E+E8u+ERPjM)b9g>Z-f;(RtVPiHWt)rC`K+YJf^ZM2Ec3}S= zIFppUcIvDR^)z}L@d4nL8xt4`j94qzG>h6u6}y^}r`FsTPM)yNu09-DlUMWCR+73S z8rZ*Yr@j5+Yd&tcrE@pY_ADx<3G3N`R2KX_)w0iuv!|@*$Rm~`8g1x5Y}MsVvK1V0&mPN7U-ThgtCi9;XQyRRvNecS!-?Qgmc-hXJI&D|RXZUP64!#;E5)`l()O|K7f;Y@xcIc(RJ!)W0 z=g8*N_GWl^5(ue?vCi5s4)e^VF<_|6_U4%@wwPbH8{-Q^!m4#h0sjF{s7Klcd_{T>6p+PkwKLt4NAIl#_s)( zJZ8_o@w)9F=p?AoP&N!V>aIy(tqq)BiU3DA{w4^+tFNB672v3}Iwr%9DB{#`wFErT z`RgNy0@A1#;Rgx0dO8~6ZBnSsW+B+eYzGioZ(qO7aBt6F7$G=9O~`t6q~JKpv$l}I zkrT`ih)I0=2Ok3 zgaS)Sl7&d%lB|MH^;RPi8Az5}M)BB#0AbRpgWPHsm7dxAAMCQHUS7119#7anOSRQ? z4?(ss6LhXwVY7*Bsbqcqkm5L}#hPyWH=n<32X@ri(IK+O&8(eyXATG0g+r+)ySZow z?tp^=jua%c2@<_s0_Un5cMhklK(z)gQ;l4e?S)zriG-AyggO%M zZRl;RsW@_TPiBZicvg5pIFE;+6oxi-ro!Fnc7pi}}?$wf;gky%>Wk}+!$rJ9)L zbvl85a;U&G##8;Rl<_GeQ72G!0iKx}w_c>Zk`rf8p$zo4d!HR?<~P>zHn3xt*EOgo zkvI=&g{z6Q)-V_olQ;Y(ual=2hz^OBY(O1yA-=2X*BnxrmCoMh-IAZvRL z9kC?DXnpl6O0RL-J-7o1ZOppb`mL+EA0m?oy+XAKK^arfe`AM}ZM9&$v&StJW zg*5h%b?<(_2Jd><-gVzWtIwaY`O9zE%5p7oXsMTa$YR#41=(~7_-6^8fxudQf?)#U814-2W4WA!=$^9IF3;E>JoTde>9=3Euafb6^Gz}zq~a-f zi$ezv18d@BxEE{Xajv)3PL5r(&whE?e*Nz~ZV&eDvphzy1YFtD4u?aQTu%le@rj`1 z^3o_yzuEq3Hf=psjrQ2S(3_~4Y;SP^4Hy|f1=-{N-JQ095j}Q*y;B44g8|a>)mTw5 ztePGge|PthJM7}MGxpN+Z(;1ZxUQnzfA|6RY^|NUa0NvcnUcf8WpDGpvXUhjs3YT@ zgfH?)T3G)`bQqNgY)w`w{YX1DLU4#C-{+$FJ`GWU7(>(a6o_ZBBzSrgOGS*!? zc36twDZ@R3N`!E)J=>)guvI(niSoe7(nZ=T4jkPslE>I$& z&dcyj1w;rOT}{Ev!P}G(cbq>DUj<}k*%~{3JZ*1YSh9~j3S0?ce+{RxP7tt0=7AOk zORxh0!YWP=G=aT$`O1Plc+XBd1{AqWCOVIO7@k?+oZV+_2yX^)nme#BE$YsofoR-M z@g(8{hsmU`BXu5|ngO9$us7c%lO{{iND9e!Wk=%99f6w;XiHo#rwNJb#;j?PG4$mQ z<%dkL6{LUjL$IV58>)wvvJw|EMP(CF>4a)VVm?I9Oe!<4UiVQMLBSi~GI1z@^KnNK zJCQK(wgh8EJc#3x{I>@3cwI`wp(w&uNq@N{u0k6*;!K=7 z+3xLf`{>>n&e~p-A6|D7b0S;h63=lWm#@&yr07mWKhwC|RU-QuB8q0@jC0qn+rro| zP!GxuUQ2V_OBhheAy&_09;%Hl9q|)(_DiJlk~cZB1;^I zb(B;3SuLAMJ(u?E=;yUs?ATo&_4_1+NC}>%ifCwP=YDY7UdQztz_0~dNI6&LdOL8C zW25Q|^<~?!^L}puQrM`p>!a#xG-ekso%2S8UH3n3%V5|Qa14d)qR;BS^7`}k%wK*7 zrA*0M?|Rfl0qvdrHn4xM?byB3-Z^>J4MPQFyDH6V%abT#W-TQ(-Rw7P=KPnea&8); z{=D_oY}n4$ED9zf-s`X1nfXSW>ivj~R{eGR_Q-zw!kcF27c?y{3z12LhN4c;fwzkg z(}7cUVFs3>l8mFFN$VFoCA6@L_e2)$hu@UlDjhy|3m`t-Ug~X|ECepFVTd$0;Y^p(+nPZvWwH-?D{@PW!)p z=^;zZ0s-ZwER)ozSVhT!SFFY9)xd*P*0f^yy6q~^)-&Iou#Y`nX{`hasT4*74(i2I zsNsl++uKq^nPvOv2Zrpb+$N`fO4fKRk*vs{yxX(d%L2sxC)3i zN{CKIfgzimH>^-g6*7}O`}PE=2xHv@ueYsi=7_s1p~bkzLo4)vVj_*kx;ktLxWjWinQhQ35@9muwiORF9gn z4QX>8Zmm*d036RJy07;sMC^Y>^C=%4U0d7iU5|dI~i__6)#>)vP)&9 zLMZ*dwRgala3=GYE?H8|)I>K(`m0$LWFm2QW3Q6N&?d+PRLkIvA$cA3Jkvusag1B) zhU>Z(7MDF5iEC&a=8Fb#DK!=8rwZZzp0-fQu4tf)(umC_4Y_VwPJ@}?E~>#$)gFE~ zq;>)aqr#ToPS3e}_!u+C-yFGR0Mcb@_TvVrG42U8M5uNuRKMouM0XjX- z^H)$Z0XY!$z54c9yKwn}wKoyHDx<|As*!6yeP!IHSk3vRJlRPdk?)ce(P4?Y5PQQ1s1yvX1I*u+;obc><6Yj#0u#S#TvoAAt@~u}bMJCYIH2}w^fTC!3 z-FY8Te!bmy?>!j6S3THKF`?k(M)-|=dv>{Es1w4y47Z~F`YZqYr`)j!5?KTW%_ERR!>29>cdye|3WF5+MH?r3i_7wZGIb9$y6CA%zL{Iv| zzHe%QGgfHs%BEOZ@MfM<2b9&7>BqC9S&3XT8_qAIKPNp3( z&R|aq@aCqCE+_28xARuhwrU;lHD%{lI_%P=W$VW2t3K=bSI*e=>*H>FHcGP&#r9~H zJ?oWJ?UM%H5rm2pP4T@0?rK+0yLFQli?}WVt<{j-c>}1M_~KwYl`%L|eG9D+cLTmX zxV}9jx&0w(U}HVN?+U;|X+>xX8R|x&fDBYY9C%%H zwaUA__$HcP;)OSQlQ2Xp6dB$m5$0)SZ(|(1p1!G5s5W~eQ0m2T{%`ta+k@&Qp5n(vPEb2AH0%HI}hNoy6=VZ_u|ND|Bh zH$^H75%ObW;JFZ0s=KnPmJSIH`kWm?rl~d$>Qg4A z%uqiY7Q=UA97i%F$tF2DDSi%#V`c@_2$-s>(>L_@H*VO`V~5>Q)ksCu(rr^nKe3%S zn1Vg~%ojXmUPhgwAfW;xw+;B@0@3-QgS*KfAxx2Lu9rsm43M2_iini8Y9m7$UjZ4v zY43gfNgKKJGHR|?0);iCw7o>|D0MJ!sYaj!FzdShomP71E7teq&si1spaSSbZT80@ z(YyB_v6Yz&27~oPk+V@`^Oi1iEg0DK#lS7iowv8oowE}}hGp(K!YU%@x9#;8zHY+i! z8mzZ^#g1S+S`!(&{}aDyEs~&K_%4}H$_fi*`)hyumu&3h3rIT2B!D!u8KuDw3dInp z)YX-_ukChjasnu6ntPDse%9Cmd__g&4J6yB$XQcTS4(L2_Qnc(K^4#=NI_>T&ui}L z7_$HS&)&8t4tCoUclDwMn)Hl7s-r)AwP^Ji#wYLFYcHNh={5i_#`je?n7wV}nutKw z2`n^*SWIk*0HnX8-HzVzi2cdaU$-ajyAy|#w>CI{p8h+?EU(+D3SNt4_EMkEUrBC& z!Lv_}9J=4f3oOH#eD}LA*}X^a;7}C(JT2pxci?FA3pu;z&O_{jWqb4V1#4P^3pjt; z_V3?Gv|Vi-K(!8stS#C=m!#D@?DT~TUL^SL$0dBo&hq}q$DpCL8SiXIpd(ob--UA3pSl4qG&slxPe$<6? zcKqHw>>UC=vP%tVlhG11#1;7%W%Xe5>`7#~NN+e2&nzVO)d&hV)M507?47FoL)H;- z#9rW4`K|C*=R_iI#Nnx^Gq7~aq3cSVkszOSP9*Rm zu8EI6tUu3Nk!T=GBn4K+BACG!0^$&l7`I{x-G!wJ3vE@xBjQ=)d85beS&Fg;jnQ2t zTFhjYyg!yjMUYZfCBbM#3|5kLtRt6IY8Us>4>c|~%|emGtf{jq^|Ap9lg4^IlQmq1 zRT6P6awz4TRv^Z9!3doSWro97wa(BRft2;Z@oU4)lTzk1Sh*N=dR)IOJ*@gcIln z4?obKv-j;U+5X%&ZT`!jv>U(o({}cc|B0P^>3cQ=EYs83W!J7sD0|!|A`$u zdaoD1`hH?RuB@oARNV`Jzv`P1L>%%qAr<8JQ<<{8a()r0CP0#E2)T;mSS@CelP}u} z_ew>x9XRpde&(VLHdWdO?nm~zl)<>QS_eVJI|$cw{~x>qr>J@Bz(CiAXYJK-Ty9Zy zEGUg|9-4Nj=yw&Ngyf}F$#r|{+y%QEgRgew8gix#S0wq;>)`H$MM zBM;i(j(gyrbf(s99{xlv)r&ZZAa1DIGDw=I@};kQ-izeYL?^2FSO2FKIIm6B>+mxP zIa9!iDfob5VbS&j-*l$Q<+AAXiX)cE&D+7<%>)%Uc%1|R9ofA#+NC!yEwb>Uve{MJvv&`Q!MA~^S^G9Pu2}>tf)=?4K?NmsR4~$# zN(%wmRJ$agxKKGBf^>(IqIM?nV;j0!zojQu{Mf47P)2bxmmD>>^%{}jh5VuYEM865 zpo}DBAhM$&%kb}R6XOc@;0(QxQUZXe^KWn_LCNJkxNe{A;d4pi86|Qc!kM)U7<(Ut z68&DYNwl!;Y$7sVKX*JBC!vQwKl<*Dh7azJ$NxL@>k1BNV_QP(PE5}Ubt`36#YYwK zdfbwxxu-3;6UpUK2FZY_=!OLdKLV;Q-01*}sWd-aySH8NHr$kd!svzN6cd&H6judr zMFNObRBvh#*n;wB|mBeT*pnxg>9xW`b+QiH}Dl`mFRh}E4w)N$b z?do2(5AG`4U25OWx}Z{qz}&QhgAnQ5??s~I3#Z<)>sQWsdw#8}qAgeIVQA&dn}8!5 zS$}ds)HU_?`rBjH(tDJ>3*3hq?dXFjnKm1&ec_^=`@-L5%_i+#D4BZqLZ+jD(}-M= zpCNKm$uD>}(3bT3QXy7hkThMh3jSka38-l?^sUQhk>mnD3Q8+uY^rP9tfA`;`|4|R zR>$7@*aN87$b>fGJJe?>ThU?dhdyct$Uxrpz#)6~*^BPfB$T-4P$Q9k+J@&>;14oe zGr5xl8xnx*+kLmabN#&CzpvXfTh%d*A?>|%@w7eh82lCYy`=?}6>6f7|HCg@hJWrk zvYUI{VXd8a*^@u^cdYNgBPjVqx<-@mI74%4?peKNeLcX}FsnGSqr(e+A>T03fTXsY-a7Q}jz$hFJiNm&aHB|aZ&&Y} zh`J6(yoWoLNUh}(UzKe$O-YP!SqyS|I;zoi#H>CNIf=fbjUOwyB2q}%i=2he?T~}vZ{r4%dc*~f+cQwY<94n@S&BA& zK)%Alspv}W0aW2yCT(xvuxSBSiGE!J9l>jH7vlK!1c?-Z7%J5>3m8dRO$Ex8)y15p zt7;*Zfjp!FifUrE39*DvbW>{rWm<~rl1fuG!=CS2yV?0A+qw7XOd#;31m%T`dMw znOaXzm(R^E^4XV=Vy1{#bD703nz$YbDza3}5lXTv-evd3$!~l4(Kt{~Lk(DNZxe=o zgiHkDckTjbQhk(g48UMbNP*ibrr|C2S_LW{^*K_;l7L63;<**9Wx2$mURktS3|Yn1 zFXAKiTit{I$;KM)vi$XF8=1`7*-MM?DO^YGhBXjDzI$iJK5$^p?rLAP_Exx!#u^?7 z3aU3a*eYDy1Rkolds;QKo4|l8R`ysfguSH-ZAn}mR=@}B+tFp6KvLbwS$p76%1RZ$ zd>6lCxj+B3Rp*ASY3eWR>i0ftt(!T!x3ALDo6Gk3-~TW6#y9`W$!#a>J#bNr4b54f zWetE#)XtrC@ouafz6SWOQ&*4Wi|4P}(o&Os;>RAh3XD4% zF{?z5-aCr`N^OASzYbjQtBQpSNoWCK_5(?5%{g6A-+3Va|T)NuXiUeZflW+8-F#YNYKgji3v)1s|R! z@xq~z`kfn;!!q#}}f=X{k--OYZ+%%ygD6T~Xo_@21 zFLDsaCueP-6S*%2CN!Mnx`f>V;jC%aidq}EgA$U8z* zqP3~s=dV{`^lFKc>v0N|7~!5aqG+U?>LsS?WEfl<7}()6P(;?R6D4bt)N|@r7DsK9 z=&7w`$fibKv6{^c(#@m5O~4^TLw;XX>0MQ`1L$E6M*+4vb>0?6rtDw;_P?^}i)XC5 zIBH8*UbnsP`Ir@EPPnYHlv}V3v6mQMRrVKWPrxk!CzY~RJM)rFeET=7;^@b1{pdfo z(WN>c^i)`F_K~+cn^)~{+Xfi?2Z0y|thw(Y+o*pSg=;IH>29lP>VXHUwflSK*e$Mja%Xa3?XMHY-?!Sn7bzc>49$L;u@Cc8X&!6zdo z>No6#S1#I5JThd}ZEYwGleW8`&x-mHsijA%^*}HSNWK5tQ_tDoc=8^r!099rQzXfJ z=ODuGIC2kJ#+aRc`vm(0WzwZH1Pb4=scRSP`h{=d#8Q^paR7l*rTy;zLpFx&Te!Uf zA!Xn5GdGY(Z;;h>az^-^wM{np#?!Vu_8RMu^_KAi-Gi3rGiC~tKEzA*q7_+mPS7jd zLaLeI2gtF&Ug+puxA6=jf;#vSGTgMfTu)co0#e%q#yf=wp}&*peg>mOwv|k@I%k*T z9Lqi&-rMdH>6-e2jm(Q{ShKdYrUk;Mk-=6WXb@jkVBK3#3+5r^VUk>JsZ67^srES) z){g@j!b#?^EANbC?8EnUT32%kWmN+VqFT<7^{n-yUL+%{U$stnAhn+#%O|a?z0(?7 zy0B##%K%GWM49;R5B#|O!+-i28<`zppP}?q14idYa9}dRZhU3arQp*Z4Z)#VprDYRU`^I_Y?R*T1N(>PABv@nFAPFiob~!*=dX5H$;dq6% z#2iWN>Eh_zJzk{T3Pml!v3T|&I7!(=(}4lRft;k81R5>yB`_sYMurljJgep@Q6QR{~?M!1+!J9bU-P!SnwDP*)#Tm*?+ ztcZ|jVo_R~t){yjc_If@*No~z8VZR4ioi$8OoBI$W~xNEWsJp3!If@o*y3B_vA=>p z)QMBhPh&&l@>)-P(uC2<-&7F4X+B241Y_s3}+N)N?Q?{ls zY_k__^85v>hG<@zonWo=9u#CCNE_>Wt(-k&$%X6iEl*<%)za~K4i0)MAA`jsi11yP|oF-sv-;-0SJ zEOdVy(ulY#Von>zs9soDvggict+fHT4NShhrW?lusoQgiNPNzk4%}}&d+!5Mxoj$IQyR3zN%bsH`)d_dm`2Z5W4IEizKnoCds|~}%NU`2R`YJiV2f}}M81Fg z!ZoYKsD125k9uD$HQCG;W;mEUXSv?~^t+esCmz1bs&FcoZZz7%M;h$wU%X(CKiqA5 zfw~&Gr$`Xsf&?*#&(?tBT35TCo__8p{2-9cdTHM4LnQs|?d$P%(%9xz$(spAq>`G` zNP#4g=Ilw!yz+Un%u9CZ^c%K!?=D+Jp5EP$@I#!Rpj|#+RV6`Lq>ikr3Cf-ZV5(J| zhXe?M4~sxQy5FQko)NbYz$9eMn_H0EjynungwN4Dktv*pTAr`2aPEP$stArY5wuLr z&ayAeI#7*GP2BJzTkT;rR+Y0~TFet{pqxStC3vfX>`0u4GJ6&8=?pC*43N`V$1#== z73fS=`Gmj?OSSB@x6TYBhQJ};k+#d%uUmD+kbU_64%^YUXock#tAkIiL|}4uy3S^R z)?h!HYzf3-W3$@sI&>7F#<2a-@BXIswyN_1u(QyKsP%ft zI5xHluw6)WQ_G~Al~$1{bHGXgr57Oj*x_o2$wQVB1WjQ$VA$g~!~Igz`6GhNR5;*v zOGV>)Y-K+o^N1_!Z_YaWXVCydt)cf^j2<^nrFEz07S>UMTSqJUzi*QNuHghi#t|Oz z(D)J`Uee2W#(Vf4%_@$CWXT}cmljt;sYf&%IvMY76nT-_G6b@7R1lKe^=$d{at zo*SK6S5AmHb|sm2E-pFA?&=RRF?~l<;&Fi&S+<;V$U$P~#kgA%UNL)n{x1u}(_Q9}S z`P`>%>ZN~VJx~0UJ@yNKZ0Sl4bB>r$4z{hs8umYqf(xvD?yE>I@9_gR&1btZ*A7vP z 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%0D-(8D6DDEmb(4nUy+w{OOz4maVbU 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

    v)KF2qu+-985R?{y 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

    dCO3S)DkH5Bs=H89-xrg19I|l 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

    B71Atr1M(zCVzNm5 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

    4juUqomFhq7G;oP z6MXxKsIo7(3Wb+FtTIezJ8JesCXu|kZJEXLc7tRAle62j+ya*04=dHu?IeRbr-aXQ z40BmOW^t-XBvCy9g$jS?3bALTTCm@_O2X^1@!0Kvl@Xz`@{0UZ2%w&mmvSh{OMVX5 z!|J2A8iy%{c4H)Y(;edkv8l*mOQHr*`G{2(cHFq=y=haKD8|IikcuSqk3R>qGxy-qr3+F$hsTka zSnC_eX(Ox_ZiF~`3j0ClgfKJ7(uVXW<>k0aj^JwtsLQS!yUcioA$jN>vPD_o2$58J zxr`^CdK%t&`)#;z`5IikbqBq&HehjKp4DF`PMwD1_&Iv?82s#~KjHBD7cX8wI|$l| z`UiR6%+@MOD~SB>qVz>$MIK+YU*yuoOE5V;45v<=f+wGR244H(7tn^Z08c%22JT&X zU+oSwW}VQD5+NxuN5@8ZoI8=oP+v9UKBRr(i6!n+*!uVSC=Q>j*z5wkF??@R4X?S6ge~; z40cx|1eS1>oHr{85Gu67N;ennF&du ze;mG?`liFq%4kKK8u=MsnYxSZ17c|rUwK0)8o-dF0<-TiMF=LnJL%5R4Y)=26x8dZ zm(@U97qngH$y-=lPr$M%WwMaN+zV^z0(DH0j~R7NNdZypAdK$r>8( zA0TJ{$o>Pcjy4BAzn=8(*fR1|+dyPW`(MIw;f;g*p)**lQ~g+k(uxo)MARsGk0dV^ywpqnEjP?ZIlI8*&^%yzfIcO-g3w-Dw|4AoHf`WG^w<{Erb7 zABSM@5fVrEqV;7C0=h1u(DK{_x6>+sGF*$v&ho+%^)_2Bg>i45Q4ZTx^}LnALGGCY zCzia+kan(|T(W$rYBGAp62EP}^O9y=q>-|^viH^bBZ~f;LzH#i2$m=Jz9koOI~Ww> zGMlKQ_L9=h)gSWhXSB~_C+*afSC(>I3v+$SJek^;4=1wCjI7SEIj*p{zocW8^TZ|o ziye*X3TNKUMKLA<;)4f^t%S>_GvLu)Ks(XZNJGI1C9|}P&wf{;#p6P;y|9e)pL`^e z1%4i&il>L%dzmK6GN+A#3k!=JTdNO^*yIhyYCMafMFf*~<*Oo-xFSYS^y zLRO?=8b;5nm9+=3g6gT)zxO>x{09zF?7OL^4 z;6HlpHF*5=Y3LswgG=bBa2{QR503P})c$c)1+E~WU4=oN0EO8w^3JL`i>bv4N1^rGrEhtLlCt|Attp*>@H@F z<=Z$*M=2<8%%z2=`7$!M9rcLJiIA|z5Zz}*w~Ph3v(6$%-bGRf@8kyFJ8=`en8XEu z`htiH(HA5-6vkKUq@!`kHI|43#m2gR?S_M&+D)4aiFoYazaKrm?k18)vX3D|hKfvx zfN*>+{N6!Nvz6s#=t2T{?fP}NGjkVa(6#ta{`CK4)!H<=AX7wRR<)r!FWDznQJNz4 z-NNjgNE~DUe}H8mb93*`ZFuDLaaf;2=Y!=rI54pv`(hKOZ{9|iU9@{(y-SPpXcxMV z(%cf(xdQ*+pZ^)G&EJDlUw8?nn42($UT~|+bPn)FGt5sJiq9uvP*-Yv+Cy{jD2y-xDwL*7dBEm(b6{dYwW8*0N zwl!0ZV=Bu_81FC|2sB9T5{ulpry^2c) zAdSG=lz8oyikIDwpPLSi9>jU;>Me!c7P^Lo5POIqP1E=DtD<=bxDKmN!lm#%*2i1H z)_(!=bzAF6v=*s?J&Lfb6*Qz%CO-3B-IIA+7jKXwWN1ch+W&DM7SMBxkT?~`>Mlfn zgn(C3`rz{M_aJ&SkrYA%V*qV1^XPIb)#y=j=8MVDe!L~T6SV7KF&H}1g()^+Uo3AlRsDtncY*BG7u zP9NIO(L!%5b|c1O7m=9!)^ENBFFbw>o_*#Cc=e?h;D7ty{~x${=MK6DcXQv3PmW=~ ztip#Mo`ugL;rP|NKZCKJZ8(Pp`}K8lpWZ_E>-#8;kZ?!G^`?h@OW)Hmy{<9ghp}^j zbQQ7M{s?mi)fm%`Xt?oKue*p*aZl~HmvSsuDvdi>qo4XtAc;6IBgrOwC1BhlILeYz z4lB!uh<=-kyssn|HHac;+Shg%3bh1ht*_|_Nr-f1~4-; zyZFCibQevz__N!*5T~aOLH4AmXB!5erHEijm=m|+Y5xH0D}E%O{ty`cW;*&mX+FJC)gX$X_%Na!znPM*X`(Qs2!20$ZjnoEHy@WvF{oM`MxGGmEP6>% zs1%V$u%0c6cuWRw+67O9#LHn@&VX-YM$IK7HyssBCk(DEqJ)7kub|y!baWK@w}xOA zRaUbog-oM5?ZA-}&^dP>_VxF{v584Ep5KF6Qmv5+jk{@w)mi;?Ryw*j4-e8oRUK$7 ze*mw1@n!h${)hhtZ5YEaG4%-a{_0mSH8lY@?%dmp>00IJ| zy&Z5LrMK%>Ez-yV%CYrYE&(XE^X7PNjSnxDR^cZaWf=XL#_^i!`3C+nP{9f%5fO|+u-BhDkWNb z1U!1~&-=)!<_kE6B{Zd%8mp^C?PcqGl4|O>xuD5fa`Q{wWp&x ztL(fv!n%{-+Z12h?}(6uFXbBEBvpw)Rb^1!A%Jz|m#M(Y&U|kNUYn@)s2yTbr%H30 z2-nw!I0XGWX8>N*5;>TW6Wt4q_YcYM2v*4T%b=vj~w7q55lfW{y=%&p-DZyz|bl zU~F(7dU}1A-GCRDMS>y;W^03-4?3Apj?vj9C_=51B!vzSN2c~+H&Hw@^R6>HM!;Ze zrx{YU_9m>2+B3=!i-koA!=u#B!eEYsqi9@tAVoNPi+@*mpB$&3aXwK7N!FpSlYa+g zS|vPJ9VYhhL^XNZl5bt13qsGRc+I(X7=DY|)4ntykt~XR)3PGdC+29kOI3NHyn<@4 zmB^oQ**Ru8TW$@Gt}-dGM3O6@&Q4L6qKVc9fY#Y{?}g7&7^{e3uFl$g$qvRQs;#sy zqj%Uq>R~qzEsu3{0W!jo_(s7EXgzD_!i)ORvk` z6_r?2c901wYA(0v0%GDm)E>;kWnuZlBm4L~b5eH^5#&(o;1LVKE3V0&iwwGgPYT>X zNrlv56mErf&OcaLgO5MCfQJ1Q;W&{9PS4zjD`*oL85uyM_emH;1OJ)lpMh3)AAITS zzk@c5S(sazfma7cVSF43!}$yF{`+TP8P!hxJw5FEH!?H~i%6u%!;C_q{NMlPk70b@ zK6v)@c_(yb+W=gMfzw0VaDX?9KpD<4@Us?H8Wj1*)ykB0wiLvG7R@IYzCz$a3 zT#cE6P?TGBp}A!dIs(f_vT}w%g46E+8ED~-OJa^+B^;4Lq;3g0qwb*&1r&{!7P6d* z?(UXYTZE7)H%SpI4_4R^&d0?vjARod+n5|FEJwnM?q5QjNC${5MmVae15@zA3(v#d zd-vh{KX@GuA3lsOxBFleJ*|dlqoMBcSec!H>DzaCvn191{#$QBZ+|x&JbDOTdj45H zf$=AAz6Cu@HnfrOiI-ks`^Zzz zK8OcbKI@Rj!dC}pS;g@pc_#7qCGbhPYYFQhQutKJGYP8Mhi^OUhy9x zjGTwZhyrZ-Ae}P0N@$!^sm~3~rqeJ&py8=~IA*QPSSpbdmta$!SVmt@IDh@LQbffd zsst7=fPChoEE;_`SOeNeu1sfB2%A!b**#0kvwKndi}<1Jn?G7-_-?Vz@VCT(YlahA zBB?4fXbZmy9x3-yi^JTfu;#pAL&TrHSBFp2d}ZfGb*0p+s*#i@-K>`a9#X+3YNoWl zu>7hHuy<3qQ~h1Io4AU=l-_TXiAmdBs6ULg!}mh2VaMr_cPxUi?OZoFs61(?Oi;!O zCO>cch0c3Rbl;5bY2a`TN}z;p;63x`;vMPqw3~k59XXqtHcYB^ob4BMPC2Q52qsdQ zts{3&8}K;P3kAs{#KerKo?*cf7TOVbKM~n|v@L|hk;@-II}07D``F2oaPrhi`0l^| z4t({?UqplXF(z8?|MESwiL65Z;2_!~(1UAv0S((|!I-}Z7vK08?H2Q;{vmwxU;iua%U53e4fNK!4})*N1tVyrr%jnOMjNP#qfL@@)bG}+ z5VUvR`a8C%eDMpf!s|a+26V`R{b-k&y?=)f0^3?&M4QGYBg-MQlXUbAvUtZfDt5Ue zHK8GABBEq}5*wL}tG5X-qo5L_oH--XfZLx#4>XRI^fV2*?kx&~F*+v1W)#(_(m^v)! zzMT0Z>%)jxRzH?Wd1hH+lSxQ2mClt&a+yIVnxq|;6G}Wg8L7wi(eZFvzdBWPIgI5t ziozSwJE8MZ$gGFIoAgWBb1Ew=kN5S2Hj=VbhP+e6oqHZOqMg*_y|Ttta5$tf55E-Q9s|tVdxOC5dU2RBm6p4y!A}urzxQRbV@?e|#7=w;sTU zXe1vWo`TOj^D+!>uftz|>#tyIX%-G2dlcUJ(GTJ0D7EyXi!z;pNKua|+VR*JdSfkZ z!4ld4f`$kE|jD!1I*)A&$x%r+i6o(IqjC8!~f}h zx{fv^whL4h^4={WNkyyO5TYEcyCG1L9&Y_-g8d4G+g%IoOVez<$>GED7571zW8 z_y`F}Z%;1_^>-mL>VqpcZo$F*C*aJP)9}HEAHb`heI6zc{3H06|MLHUrG*t38y|<& z%^kRkM*5Adbq-t7+t&+EJ@XXI&M(2uTQ{JuyAuviO~UX{FHG&<2e+via|ch)A$9 z##W`R@4eTT&UtfZHb$us&D(Wuv-Owb;CG!=>Ilo(>j-pI9E{Z%tTu>Al|-}G@$Es@mKZ=$?0aNMu#2Pys+HXSl<@i`}TNY^tFF25x zgmWj!gw$PhoAy_b_ml0N*`~v=2GM2r*l}2#pNC)k{9PDCHlkVOgK4EbP4f&sa z?H|MI-~JYip~h`&VgjCc^{cRg62l8eDAN35RAk1m1Ve& z#AR~g5OnoDfN3NaqoV`pvOLdWQpT|y3MJo<^-*{i3L&$FuE8hK4nkp7=scF5o^G^_ z5TV+EkwJ6^qh0^p$7*NdGvOtCkEnPQ330bt-v$zieY5MXo-e{GKwXSVWY|b=0UAjy z!h@O4BOMdD;mu=yQbiarMP&Ba?s|#DGd5au1u^j@w6oehv9cmsm4qafNYpI2cMR{~ zN!8|FTF9jkzr{GPrGORlhjpdp)DgmmEs?Zae)?XmL{dc<%2N7Hj{E0*5SE|r?^KtQ z?n6llQ>rtpqWZ;2B8V_*AH^a{VDV}p;h@v!?WC~&>>#o)dZ5mtSVoHA9RYEQBJ3MR z)Nt}@jU$JQe0f)JkEMB9W(3XaSuVNhbCghf8;!NWp^EDSo~k@CBMzGx%h9U!_P z!pb%T!A;;FLQHtC3~90$@#2K*+(KmC31^;q8cscR1}>k!0@Eld^rECNI=mlkAp^+$ zuVCIyw8sp=)wAzH$Lviw^~@8nG`|XWE}iF73CH?&U>FHWS4S_5%-)5MKDhytXEtHx z)<@7gFai(O#B*(8@-VczP%Son7Y2t>Z8kOmj~qFKhWd}-!}s6gbEzi|?B^I*2PY@s z;>Ay3u)76=Bcm{kM*RH~gS^=g%`)7lWWS;|i@uz?QxUVdYLTOX8rV6sz1kDRz%F*L zaBdr>*Id{N#N{5mTXX zai5UH86Z=eR<1UD-odfD0(dxLsi|1~`6YhI`aX)lF1e9oe8ctUr7vZ8k_H+PxAuf( zrhO@R$B3h-ja@$`l3y8Yh1Rr*gX>Z%K{O#;Vg8hWl%-lilBTkbDWzzQ^rSI`&UJXx z1{DcMnm=S`syT?=q^9qe!e|_)k`HOOEC5z-F^)F1m-Vj@4tvI%(lmn+3*+Qiuh02H z1R}w?{N#^&CeoYRCM+cwQEP2MX*+m4ofD99yd6F8<*$Afjy!P+F8uUec;)d_qf=9G`{HE|;eHxD zvp(~}Gw|Ne-hw$KEca#>_)PYm{y|trxO=`$qe*$!O&noEHBK%;S-ObW7Y#vIw94Telx^xQe7a41k$CKNaQORZSDKu zxngK)Gm&=wES;Zxn zanwyyaotsGFskrLyV@GqMXDn{?W^jmpO<}SVF(@-cDA>}apyX_rekn9F9*pa zeQ%uM;<>8 zZ~XbU;bruwI{d|%#&`$AFOP_~3AN&G_ZeM^NlvHlqnTG!D zO_(_RG;|H10eyT9UViy$=v`{C$gXJG%)$DzA_9B!ey z>)!3_a2=(Ze~iTJyJ&pBarI*uA3-T-y%RmM)?plt>qA2WFngDx1aBY*O`eK!L@ndw zokW^&5=Foex#zhKvUl=?K*|)!fu+=)lGs_HJ8)?-JB<68O#P5Z34`^p5MWss{8E{wIx}KK@vaD`cI!{}1nLSr|y5OE{n>q8gap1wW~snR(-1Sg(-8K$0i4j!PC(0BP9T>tPa^p76k z;F6aO96b)x)AwKy?HVKa?(q}HVBo+Z=p8)>8%TieTssdR zp8W+p`}|8VHFXe;>K~yb(#0yyE>v%gps~Flby;K^+1c7)RgF1KGh)~AaqGr*D;@ak4ea6mqA0gbT*-e2PHK zJy$%CN+h{jAErc7l|P3lb9t(8UGaK{etl|0dMtq)d7WkWJoZqt8s{`K4IBSCux{BggG|}bI*M~J->|! zh{oii{Tgg*FrR*{SL0!sx+>L2nT><}$_4v5l*TT;Y$*4tGO?*p25l4DVD#*8&MCVY zWE{=tX(eieSOzW*Yfhd{v@PXvMBJbM%5T8WzVo+m{)6{n9o>7U@7{rnAN~p+%+4U; z=tbl|h_pmplQ)q_(9yQ2=VGIM-|!d=O&)^L6DQ&5$!DOKPJ%=N^@AJ0rDu(Bq%~#$baP^eviW=taVw@ghL|ZYdCr9!UWJkJ(va=R z5X5K5KAx{~cDxcb{K#)5Vzz%q+hX%9`h?Mk1E$20I6D?W`z_B@h3l+*L!J&uRD-!m z+qHldz8|ka4ixIH4IZB_%r8t*XM(5Fd~sWvq_qCArN$|g&S!L_~)caZ?hqPmLQe}DHs`{(SjwL>QgB7&qa zC4;;v52Z0Q#?vvs-9u=%cytK%PYy%Z`{$4#t-$a8;UB`p$bPK43kF9=5x1?wZIoQ5 zFP($A(G}iza))duH*cY#{Rk|ttit-r5_I)aY#F;CoHk2H8*25K(u9{G`sb8yY?1d@uD>EBT|Zs8)_`%-*v&Q+{W_t$gK z-gsU=f8ClkLeU_9{5zXTAZbIb{;*OxGs=H=y{20Z_wAmTv|As2(rD^oSz(!F<)`=4 zcg-G{rmXvKuHx`nNGzI)R%Q27Vo_FS9dXI#=lR|~eC-Zm_}*^b_3*~9nq9>0;h=lw zKBZELO&bpLu81az*Gf8lQj4jI#%$}}t5k>$OFIF6vArk$jCguLyVphCCi@|6QU%th zfY`{TNHlMJ_d75>GmADGwA0Y(j`)wF`*sl*j`z0EW%ql3@#ipiZw@9V#-RsYZ|~f` z1>FPPFg3X!CihRk!9xdO?7%X5T(yuu^}z6x&%=|ao`+#nkv&*jf|1@1bQ=a(LU-Wq z@iE?kes_Ka<`O5H*=3|BRi;CGa@YW zrznNE@d}8h-tf;u?$pW%uHE`kA|bX6Q!`1~@f^vk79GNKnTm5LOn#@iZfxAm2E+*d zJtF@MVztENBF6v7im(I_i7Ex!(i^xYI1gRdZw zgh(qbET_uJF67QC2$5e@BH>TdVy2Rx$+zqwv3q9FcgxDXBNB~CE0RgV*ULF8l)+p~Sp|Z^ z#TFW^Z{50uZm|*(SYvqbro#<_7m@eu+>@X%4G;a69 z#pZ{$TxyVjH)cTh1R?Xz)f~xqQ5){vrqPwkx*>id1+trTmlPsefAsH4q4?&2BSaL)- zlFf-MZCETQmWGg)@L}NOD1dekia~|t@V<9Gv%XXIK5&?0gr|efn5Vc@dX78cH=be? z*Xse?zOe|mwy&UfRxjHx4h#>&!t@O|`Qj@uFmV7n>2yadheF5qPffxL|Ky*;#=;!j z{^%EQ=fW>x7FAkXunGgc2nnjo0M%YY13j=kIWEMvqgw?B?IqR=ld50mff5QvFgOP6 z%s}cewil3qzZ2L@sEkg(*-&Lgw;_=?DB5@^`6X3euxP0+?nkvHFdV`Bkps)LOd^81 zlY@s)y3`R5hMNea%{g|qpx9{AMmxFF0((+BQVv|Q8pH-+&|mI+75&MN{ra$-7Ho4< zVjX&G<~aTsiIw9Usjui&=rwV+-zng*OC&PC22%zi#Sbygi1|YA_>e2R2~H|Q?B(!Q z=6=ELR}%j>E_piS%|O%Q0)=amGa29By!^-fbSkQ~LY5_9V*doh2i$_ncW ziHY47cVPUXo8?p+e@=WcZ;6Ic4)CORQsF<4X1yEC_8eq|Bv-n@vOU;S|M z>F3cKYl_c#??L1J;OHZ;vwt5Fm2o(LhWf?(w^4mI4Yx0T02_06(Uw00`^JV~ZFNyl zzN56tum}JKh<*tX;jvUWgyKnGnWPf7!`VKV7}>KTVhUQVeG}d(sum2b%OP0wg4J13 zZuYk)4%SYmwlW%#EiaCZl^eT4ol18|!=>#InzYZ#ObcD*-d61aU3R~YW?!!dGh@Sj5 zu1h#$A|zCS!?5y%5UMm zPs$3IQf+^@$E?b6#;>(fuq#s;hhHU; z2q9okEn2Xq*5LcLV_xqweB$y-9$*w+#oJB9fFDUouI}Q8o^aTBz9eL!;p*v9-_6Nz zj+iKnR+b=IdCup_?}*)m;#1lE9yG%2Y;39tUWcOPgQxlWq z^>DyFfi|JRWvG~csur?*B`k|ah$_{2$;iqG%M3O$282DN85Te^N8~bSHTlkHHmr1; z$E|vZc4avFc<3x`BOc=!!RD%3WCLG zTvpnqvWb|&YCFlp{*MTtUbAjIvQ<#|bf&lLaA(;-Z6+KQ*eu+XOI1i5K!ZHE@KrvE zaK}qFvg4h~6ZczBOo#*Cb~YN?BIskp z+a?#c#ix33%Q$pZJeg%IZKn&`Mo^;IMz>Y_jyglcjCt!E>FkYWfZ2&&pmyh%Tg|5wxJHLG?hmGtwVrS z9Uorj2u1iTHP*K+F6OwdPa$Oqry|FcDXZ$cvT{A4DE6=A<9k-Grbt@BkM4SKswpER zOdxnHgz%UtfDh&+NhGq7$h+prwc{iXG49f}cp>{>j`p07dzuG^hA23?CDY zgSCwpsHw3W<6>5+@Fc`=)oNJ`VSKNcOgdsxDYeMNO`2(tz@ zqLO)#dnfo6UGBnrxuWb(KeZYV%JO>+)xU*uTG{7(NLsMEj5oG-t6)u^Rfdtzd1+Ar zbyPKXF9)2JRaS0&BUEHd5O@__4`r|eq@rxAJy6_|@0)reDO`PYhY@%6qK*ypcteE` zIU`He9xP!9#y5kyn#2Vm>j`~akG(6!C_xe~dE2=hivd0+B*COqy*)Fvy5Ot2Rk$d; z(2&N`wbfjLskbO!EBwuUCF5ko(*|d~qX)0Mk#&|({XKf_2_+^b6uRBLPyLb-37?$( zBe-L(yyBPUT(b6z@E!(Y^6D#NUc7Lld`Fb3G!J&|BdCNNLk-L-iM6-Z^Y_x~>PpPD zCsiM}lXi<^pkc}pgt98D7&M!|X){CoS*0Dy!4qD$y&F zl4>{zF?!=6OH=`(2#H8pTgwQulv!K|x%nO5G6dj0f!c$oi5DN3D>r_bRa*qVa_vkk zSly&=Dlu_&C}&P~6fV+YY6VD$^Dwru{VV3ms&m74W3f#^9|YhBtqh5`<@GVdjPMw8 z6q^Bkqy0p&9Ut}ETH~`^=zJ6!ygpQG_4W37*Xf{IAy9fp+Yu2JCvn+5o*{gn)l$as z1rkX*c1@DDHs5h=lqYyTT(kbDT{mrP%o`$BarRK??4l9~LtKs>i_6Q_8|D$4o|BG) zM>cQUNg*Nmw21;>O6zE3vo%JUpBEqJ-c42GRzmojpNBC$6K1|GiKGtMr`&K(O3CH3 zdj&uAHbmwub>-9iR2`GCccj0=P7CkF2t2k$L>=jnP_c7awZq6t&h4)1m#Q{JF!4bj z!r40HL<^n~xaiV_!{1gtHae}6AsSPxbC!At;X7g?rSjq@-L@fJwpZ{uCa7Cia9KM~ z5{IENvFZy9jKJ04tWPqo@O7_;9$v-gi7*7xKCxSf z3ek4=Fd;(L%==K;z7usMU`fkPL$pW)GQdW%e15l`RJv1pgH>-l?>qRc7dx)k>}G6Z z378viL$Q0Q4I{YFzKs!3oL|nMw^w8zic==iqr&+fO1iZFqchy`9?#E+33Z1vyL;jI zNk6Nd0v~nqzLgllIHjud)W#v|A}QWlVs#0w@%MA8rE0>E;y-e=7g!+LSK}jY=P6-G z42tl#N^PzMd=tdT%AU{EKoZHN>`}WR5GexA0o-n-RnK#(E;rEveyWUWhMNSfytG4e z?Z`a~zjH)KxYBZwvYqzFaQMlaoeVCI<_n2pq6H7_7wm4KcBTteXPxM2D)!6HMr_AmePHW>$(KG_Wq=*eU;6&w_jj6$cxP~X?z4+o|W zz`1khoV#_NBW%Uov`Q!bvHUI*`wPG`9Ew;C(H5TP8yreqP86u9r!Iv^-sX@Yzul^P zij`DzwoN%-X}c#B>7i69e}}cbnI)%jQH^ z*^4>dJbl-9RI}%0`BK26XQr45B%LabKX+YblPMjfq~8i0fQt47SQ}FI@b^PmxQyVv zh#*K`+M(#qx#DvDYBLE#mdmxM?d+a~r5BZ!ZAz4rbxrN%YS4aR9-du_&0|D7i@euO zY+RT39uo2@Np4p+!Z3zzzq7Nmu)MV7_Uj0oey-PRY7F*=1D~nu?BvYS^;Dwi;`};o z`PC+>rtsam?BP2PeW;4~rP?0bKGIB=SPp+w^+R1B?X*J}!t&y;w(5=6Pa7JLCMjgD zsO&O484;2k!LVqOIRsc%a9yfvcwA*D%*aJoPh~V^3lSz)oaA%oURj%%&jkT_9($0I;f@#IpIUJb`h)OfMp%slET-~8MhEG{g-=H`Z|<&@Z&4!=Cb zDiEpD6P{E-Qq_WRKFXXr-gZIjKTeou&_<$L6!!!>C~$tIa&aP~+{;`LH2tjOqv z>#|5qi-ag&UVKl=Z9)X|O37S9vvmdS&vkYkJcQ7>M%yJ$I9`AAGgqY&9FDqc zM4_03E}4#<;3Fid`g@MvD}==Mnz-X*i6HVm4?TB-=^Dk=g22au-`N4_v#+pR5`f9#dkkw^{%o3u-gv=3Ze$(EqI z;rUz)C9M>FOuAUg+vfIa2o{H_l~B=hCh~eV2{p&~53QfhAmQeTkw}OE^@d6*=^PH% zS}a+rP@7Cw-WQ|7IcLVa|MK*kv?yyF=-vmJEdGA zsDim&xPm){g^_EweD*Hgn*o)5x;p|y&(9o00dzUOHdC$xOeXknId-j;(UjPt z#l(^c-O~+k{4tL&Up9X@+ONQ<{Je7gLS#+uu`u;~P?xr#!%bXIs6{X->2Htj9cuOc z6E1%9prT4CkR(&(QmN99XUt+VOkw@}yJ7=c*}y2nk;`7>smqEEHxerBCFK>~teB@^ zpNP#Nr5wo%#&~4je;6rUd+n%-(%z)|UJ5Qc)W}+pFht?~huMx+$~?E3zpjpl33F9F zx$ms8y(utZzOr|6_w8P~aGQ#gX_;YpP4YD=Tal{47Q&lKXuBEsVtqRCjceUwO8e8e zQd6A~(w8&e6%8xFlHJtek>l(o%*dm=uVdy3eTd`{m|z5MCJ=(?Wrut~@c2E+XIJ6k zZqjZyR~qG4sm8{wQO^ZquI&iNHyrPO=&5?m?rtuJ(tBM$rT8OfvuH=f6xS!DG^)eg z8k9*0%TL$JUe+`usT4oC^`6haTO3?g->-v+WF?X+(KlB~Q{zs~9WFQd;_~9>ISO1w zw3?(SZ-CI75uo-ZlDNK5jie!TGpXH$6-f+18Ep4ZByTnoK_9j`5w9=<9kFf{NF)iB zHsrvOp#0zrcqc^}_iZJ6iku>)vi+l_^=5{SeJa45Ry1kdmMckQV$zxzjF=Fm2L6x zJx-51wrY@?r1YI)D0t4UE zaG-eAd5fJz+CdfzN)&8SY*F}o%N>C#m1Vo+Wv)^m*;$HYQ;C;1jwp|_9B^jt1;RX#wCVR<@Z6^779T9f7$*BP zL})9n?-T)s{g&bZuV$iqMo#S$t02?5WVz<{ez@BCuSKMeVB-ZGuhr0*sBZm+@8!Ij zS`F|Koxc+oSgtCi^6DhL@IKqGY3?Yt8;- z(D*txH|_mk?r8yhPhpe0xlLtZor=Iq^JE_60FQ3zT1sv?iKLLfDkW{qJom^st+k#B zi|+4|xef6}Z5<8D+6@EQw2r!bO`o@R!PGWQRb@xdbm9uVEW^94M)N86ZWSDnYAbi0 zs!E!4SQ)2cWmTno1h@9J8w+VItHW$Q znv@<9lBD6B*QAgpShS}9L*2T}^{{;<@95JgN6-nb{p}3Bu$@`>L=p>&Y^&hRRT&87 z`@pK0#^M|=uc?ZNq;-TustmrW^7oQjzXpjUE1i`P-rYDq^pTnezt{%B)Q4;qrW5w_W}CN3g!3@eY190$@shdZPfB!$84Fl^t!I~5S;1jn zA{h$|vK+*&Lv1n1f$S!{_eaa(9WKEh6(;6|&{CdQi*G~_Yl_}iLSxK;1iva0!zOdD z3JIkMKD{5~2)n{1>UJg4loKP%i9%VsQe<70H&=G61PAbU%IGCFk+it9 zthDZ^Y`&R~l~q-f8Q-V1k=vLsV6=OojCNJs|!gfg-(HPK?Bc_$-$NhP3dL zsmB)A5#lZ-3?X+V^CRZG{77R0O>0I?Nh52$NmetZQZ$dPq$(qTY zj;=`WKC^osbU^gnn6iM#?-q$PMKon)7xQ>H!{q05%oH@Kw_P}Qlj_Rd*~R-!kvGrd zByU-e+}g4##=jgMDm&Pa7^Ws(40Sp8e1_v=g%6Tla~J)%0o-zsegJ_@iBpP;BYO(&(?zuwj;$il6QcM%~hB`hqtki&vp zI}Z};Un2_17#dN@4V@7};rua?#IuJX3g_P`Env zg2T}V$D-P5Fn3m_A)H@>E}E(fKO)iieIs^aBYnhaRRhy&v37!?yl$M95sw&rkvt4` z1=iiyxmmKnc9Uc-7w!hv`59KMx@3M)KV}|r-`37t4`ZRuq~8i{&^}YvEGp;Ilt@Bc zlQM^SrZr|J^={*Ob1>{BZyn)mWuE)+@H(fHv7mR_P4to3X5WOZR#2De3nGWp$Bz^6H-uU+=roRlCSts zb`}@-4303;?KbNCUHmR00ZQ~4Ra5;|hN~?Yf9fOF!F!ik4$>&*7v3WxXJrK5TiOE* zqQk?9)ED%ZsK9Ku{SI_%94s!82vH!B2)rsYaUd?TiNvv&jN$c?af%3NytMrccW2W7 z)(&l>D^$YCXmdD^o#U?1ibQ7M3MGc^PSxvM%qiPPLyvim=y@Y*Zz)nKg@yAgVPd_x z<&`;abHZYA6*@ZTgYdf@4mXEL%htL*OX~^qr+Xe`?Z&G2bbZvpn1gw@DOWcn&upKT zOM4}NHn#G#G@t*S_Hn3Dir0X^Tv2yLDg;Tw6fz& z+o85q6FbM3oM=JQ{afH=Yy*%hP@9g;81gP^Pm+h+Vu`Msw3p(d4=xA#rS4Cg}H3f=R6uH zd5@qxO#cwxs%J$h7+7UjGa=OTrnycum9RjPdX9dfbIBE~6KEKXJxa%YQJ zVyZ6Vgu{L_m+Hv9Jd{Y>q&G1m=$kC(lu()!Hf@8Iq0D%!25pLWa^{Z=N1tZn*{Hkz zeTJmcUEx0M%jllXBN;=RpkZ_Yxury%U#aJ$bN9>KMIScd$h?tUS8qyeH|>THRn^;a zePXWYdjM_^M8rRDCcXJ*yCck9-5ld5J`O3>K}MceopnIzy9t10Tz*;ddA#4g!*ih; zqmaLNCN(c9)=Mi^DM9`roZ_)#Kt$F?weL z#2-ETf$bX#gBi-jmZomlN?7QkL-&`6^*|SjQ3&1l!DTT#rbCuav|{`six*lrzv;R& zu_4%Lk>MD~o(8GI_Q%B9W}BKu#RO`ym{4dkJ0{n|>OY}#0)>|$n}*F{KCx2Evxs75 z3-asN&Qg*3w|E?aIpE-H#!#id({&Nzh_o-u$_eun8MAU{pM3rGC-_yht1LD4MoV`* zLlCVY_`93b4xS7NN7>w#WM?_K0t9Nu=oQbjuLeNcD`8Ju`zq!e!rV{+~Cw8 zZh5SoqgNp^sghdK`paCMQ@cnN?CCIsi_SRs$a^J_umoM!aR{-yYHe=K$4(PF85={f zc;9z{?%nmSNf)mCB8OD?T@bmwNt*9znUcTA)dlpxgA+j2ZYpCM!m@we$@OZ|zkX&& zCzwNpv2SGFZB%|nn&1*Dv=h0tmm;zp(^LmXlY3fYHt%k5OkFA?ihEV1wQ69kB*eB} zEBd^uKDsUgU!Ij~FLJQi%%d2DK150dAYmnC2z|GytQ-$~v-f>DLC4Yi`Yb|Oy8vCv zcPwFPYJ!OTK={AAN*N^EPHJ+#hxJ!Ew^tq}!>;|k5bi()C6vlhd`D2+cVHv=6jb8j zLU~y8`eCJL4p$(8Piy^!r=fCWij0?L_`6I3-zz-&lpxu|`}O&&=5oIL`T=PNrb^<# zOQfE7l-Hjjy2;$nG0CNK#288Zbfx2yn;fwwcz3aEEH$C%zWi#Ngq2s?sUZQ;>n0LO zIb2pJv?q}S-N${Vg>c?P`ib6cgf$Y0B=<_7w+zRO`!12*;*w+J5UKc_w3IG1Ur&z6 z=O(KW2`_~-=eS&>YZq2|Ut0ZQ_6hTuq?XP(ddJ^)>b{6UXbwTH@3m($5{bYS!Y+$h z)u4MMG%4Z?J-M22zKzE$d2hF=4z9hXv_0)gB&{qyEl;`fqjyw0VE4w|fdL7`Dq4QT4?O`>?XeT_r^@bl^||7i!6HP)_816Yqx z@*AamdES6oRlkFkquzRTj+_$VLE-l++7#Po@DHC=E#LHhNPr|BRiMwuYl+Pioq*x$ z5c`B~`rv!?`K`z~-MmGIlz8o}$~HaLt9 zyFSo*sKpEw#Sznkts+Z?Rv>V(B|&cD|Bfhj5k5f!l;qQMy>mpw%`ah8+)QypVKJ9! z>`C>+SYHp$z(sFIC0|8Aoa@zokRyt`%tVtuHROY*l%*`kg_#YhD>rQ ztXvA;Z?aA~kGTDb&53^6IWs{S;rp>$bX?cNNMRdthw!C&(}}uM154fWY#q^c-8h8n zH&?H~Our5Hgv@po<6gkwy7sBg$ocmX>EK2-nuowiQQ2YNhB{PHb?lx4+9@R>#kyUdmOmIxb|!~? zU<4+ZZ`vR79jN;Md6_$)wQA8rw^4?4u&5~^MpB?sBw{Hv&Xwg08yvgX$J}u)$5f({{=4OkTsg8Jgkk7|m1KuQtsbG0-DSbDWtG zfsiRN0ubhvZ;yyQF$o*26^9KqhJyhL(UAV7Im+rf-ImAUQFO5=Vvh)A8^(3tA0{y; z3s7%~ichJU-VB885@Pm{$xAxr8cGXQ{ZZ9VRqL#5eR5p^m`p~9yVd!XE5ES*7=Ju` ziKMPQP5T1cB(h=Ns&~QzrK%VOfi-?tB580=d1exOgOtPNCdqcmz7UV31aWF*fgva4 zB&sH6T2ad36y9}QnoJUj9-9{*!-m**Cm$f8ZoPpDu5>|=jyhl_WrLs+KfD$jjpsJF z9Mftjjxacy>67hR+RD0Ms*}4M>q|I#dcUmCIHU?KH1ga<{XZRz;Z8iHenfpU#nK9q z9$!%tl+c9ZC`mS>2tVj`_I{kD(L2FJ4Bt-|7RA@%tqX~NJuw)<^(q`4u|#71YaAx` zZ-ihIW`vj=nJ}D7j)u4L6mE_&Rv4nZ?p^O~C4Tf0@J!$m@`TU1E_1Wp))-~V;h8r_ z0J?*T)c`h$l+Zh)irPW=sAHPXvd4tZ4{)#V&A=2euVcBw$=S`4xs>-gyX?3cuIzrVdVZOurRWKIv>3Jsl zlqNzY@wYS8T^>dC^g96 zscH~|U-(IpmybKuR3#8iN_Q2APMR+&OOfE7#>lSqPi<*xj5eYh!Yu?s2&y4fr_`ua z{gls*a`?wUvBqS9<~fLW$h?F z3fm8R8vn9q?Ud8>d6}ZBX`K%fwsy;dhN-H|GTd8gKW$Ip;LF(EYk3$jxqT$<6i_wE z+InAZ1PX$B_1VMd#I(GoTtd_GYM-kFU<x1kGcI;dcC2fDlRQjH z$doU{E{{ayU1j3;GCsR}RcL__gpfOTCs?|6DS@%;$k^_^%AEbg^7CyU)KZmWZL1`G zJF5+-xfpp>#G;Nv-Ah?bQUM>dT|#wvdwE}PKs%{j+*!-8{|Df&bFdT$Ny6c8 z$WS7w(&=aG`g(S65r09FBI4qRgE16d zB8gQ(nUuR3*&aeYq^>~H>1VuV{hEFBOvs2Zm^czkBys5fvc@K) zH!|Q?gWYs~?uIb5liFeoAA&>@=54YLEbwFfdVP4Q6|ASddWk&@W_q_Ngukl{c)FK1 z)YM+#z3^=D(#8hm7VfFnje8!bXi7yp#W(zfbatv==2%mzn|IuCfdh+SOyO@w$4dFj z+Fyj*Al|Mmmtfx7+KLXwA$>UM=xto+!}bb`0V{Xuv)1q zu>zJR_uG-Un&JmYQW<`!DyvC9b9p)!y>=tPFUgtiA>quGor@ioz8@yD=dwg%4QwJ| zG&QEBdCDhn{e+AVbf9xKTt%KIvFPr2)`4sKe&R)=M#l8Ngt%N;P+E|1ILB?13Vd@qEvbXJ*x+k^km zgjolPQF9I)X_B=k7+wld6_-otCP0(f5T^*9BX-m5Ms04_WkCklP1P2LV#A5M<>L2 zHA**)w}HOi|2uX0cjc_D6O}a5#6pE_eI3r25I@W7`-Tb8vtlMQSa$9-SZUKJZ6*os zgsSZwP|Rr`wT*;f#NSx;v<#0@{%o*ECY~`7gH;)YF_Vf5NPLf;N*Rt3*%)Zy-Nkz| z@yDqvRib2-8El%C6fAMr80oYIEI=@|XB2`o9glG7X#i(6h_;Wfouze^iFmpZ+t%yr z9YOFf{gDq1x52^!N3z&uqLo%fEcP$2+VX^D27E;ROa&`yy_<7Yem5v3S*6}K3@8u` z%ac;1d5B29n`_7NJGu3f#p5uw($=JgEAp=DB{5yyPHVS1(aovud^KPw3E{8HVeBHaIDj%*c26!Z4*Z1l1pS5Qvl%?>6KHkkJ z8;vC6Qklxv*DQL0*4FDUw!eJ4I|P)_s31lSHw&NU;Y~^%ZA2zynOd^azkhRM7Ba#c znd2Rf$%0F<@k+{8n4-e~4IVy@O z;Ghv9ChmO1&Y2Cjnq?^cZw34?c$;eT~n(n`%os zzwd-zxKW1#?uvxpjEk8M+??$_iTpmvye}c`lzE9WqrPA>yfd7`o6|U;At(c}0p&h} zBK8<12$bPs&__xDMFY|E7M*s2pV)8+X5_VtnvvCq#Kmu+>ndG5f*ETXAbsriaH8R8 zbTjTKj+l`;eNCyL7kr{4n6l){O;&NvxwJY)ak4Tr93?~Ph^Vx6iEzZCFZlJe)LXQU zUf7-cO`iR_SD3?&HKL@ewaNEQ(*7mz%+ADqFP1f)z1HkKzN?{IabQBK6{i?hrOu^XGEo<9P~CQ9`fw zu$aGRA@IW-Y-PqMR>t}jt=uJg{8)!xU?MB?p)RioJdY!+l(CAxo(3}uEBSY5)oe^4 zu3{u-E9>XeBk1cCe@b+{Cbv3}e+u4GeIZ%UM4*{iiX!?>gCEfJ9f^mW{*KAB0;sCM zlr4z+sLPlMGYvnWGSg zkwwS$tGQ3(RZnSwayaC)6`)A(eJl>PN&@z!ceD+!k#y3m2t_|K?i;~woE*5t6Q31z z8HDFe%;aY^lIJ2kJNfZ$ln-Gfbi}}nBx(q;FkcYaU@MvJ@Ojkf>*uV@24GLz2kGd! zu?U7VWP``;-m(t=6$l*;qy$m=Y}z?OUPF`}!H)Tp%<_fL(@CJ5xAX({k@&K>ZnA@u zMVxM{BWp?mTkJE$@v{;!-Y>ydbEKMA*k*!R&TE4Nq?__+((}da z>NDY&x+gU*|#GYAMmd{YWNl28p#dPt2jKO4<&nC z!Q;oY*1IstqhJvB!8;A1^dB@OX})TXI67Y6nebvhlUlqY6Mzoh$>C!Yaf^4$B&O$NYmY*Rs2`O^X9hu^3G^4eoRD1f3Kb_RL*w%9t|u^ z+8sb6K&O$JHE?3gsBGW?4tZZcx9{7wdYnW8JL2f8YIE!pAJ=^!EHI<;YrjBWnu%?V zzYBeTH)Z1#1d^z6_7?ATrcg$HUq7%IUuyDI*dc`7Wz&-Zu=g`0V`xe(71s5DHx6X&Fp~i9l+V<*Y04 z$8Z0>HvQBSl?hSZ#s; zIA+1+Ip$zYB(%Mf#*tA!1sRTs=y!8;x-cx{?J>(9e&oB>G#O*oC+;-gXGh~;MxzX< zc@Itl%_lJhIk?!cTj2nxcux1v^u}v1bQ#kYq4`^X=>L*N@*Y@}X8C)0qYykQ`-|^U zkd!j85Bsa62h%ugvd+Fc@K%BBj&t!N$s2YaoarF>y7g^@|!k`Az&76YmJ_|P60 zL6Ha<-=vzOe9KvuPMZxLMBDa-ppoLYF$Qd}z>z{9defGb0qw>4M06=I;nz|t!vMQi zMapSSt=@$GllZsW`|}W?=d0|);JM=Nr=YJF!?DI3W^*+Ued3c>*P2iK`0@m6g?_{~ zW$Ar+*64IDs@z&-@XpUQhH> zQe+?IMuYNXf02>26-XYr=F=?$&aPh3@6V41#cZS&{hyx3Q^(X5ey`O1x6_b!3P1>^z zN+D2+TdV8c;53p7uFX)&5G}+c>Hr#CBA#gUJqJNp51Pe2%mi8m-aTqfgP4jEc``Ne zia2+1l`(o|CcYs(K#@pSDVkZbut_j;F=OHyfN`5v7z4(_yszUIg)b3g>HX+tr|urv*m zjZ0%Vb`!pQ_oPM1Cl-6ro(>niF(S?I_|(&e<-QR)#8CJPOgNTQq;UKuyd4iOURJCt zznCXU2Dz(65_25tRUd@{So{#h5oT@TIK3cU_Kh4q7}_Vr&yHJ>V~UT1(RkRq^ zXaPX&r`#l=H^6xSYJqH5k72$g(7*JfV zkMQxK=VNNl+OipZQ}E?yK*u!M^Gf-%JUeAx$rsz}fA0(k&U<3~jPN1-%Rdm4!sp8n zLcg!YwdsqIOv;mCMubl`BocEV#-N8X1}0`OI%mAZ`E<%m9QVN`R!9t=5Yi9iSuLmz zOk9PU!;ti$X)0@BHn*~Vx4M>n1=s3#HL8Y^&!MqydJV=X zQ1xN>Z-wWg;JiwkJR|kE8lJUvSMcTb>Ns2XPT4(VS-uN|`_9RCHN=78;hBvWq@{1B z=eq1yb6K3ZGTW&(AK(<8Qz`1lXgoR8T)UQIK*)Gylm4IA;%Lj^s7sG3XZK!y8n<+ z__!E6&Fi)2D&1#|#8Sq$xSWm>l{b4FF{j#`{`N_-ay`?(bh*jK=Bhl8Pq#A@Jv zgf>l`ZS@U{v5xizMzsOc8B_0;3DiVi&K83qg!Ux-9}_YmW=z1Cl4+jfH`|yQ?BWpi zE026Vk=aFD(XZFzFg20ygKh8Rd1)p5h)<7)Iz2_eBqU~xPnfibD8sCQd*A6NYtpi* zj}O^pO-A1Fmz^9;eJJO^i7!I-Yw%{2;?+CwqZ=k!Ll9G#z`{FrIKQ|<*z3akQ$*WP z-v`%48(j3vIX(nfm>1oJqPM3=IoxNA3>jE7R`9J_3;gor3*r8L%Y7qeD&w(9gHp;R z9}(@Gv7>REPa>|cJEN7vz`bSf1qXs|)l?h7EY6oGSkZk%WNXKne23rc@bkz#sy86Z zIBoCyI2%T^z|Vy}T;=BB)v)4o8Nue?Wp&4SKcdUMyesCuuTu!<6u6@v?y8Wpa?Ye* za=+pRU_}yz%Onb-jy0ZxMu=*7$%jKWZ2tjX@PN8D}!wOD@#Yb(!9UF2r_<tIMd#T1l^rn#)J!o>=3Zc0>hw-43~&QuQ0h>8ncXm?ys+1YKGu zF}PZx6mNxbAa=W=1n&=m~XK zG?9NHJQGdqN*HN!XX*LOr;>$c)z+sUxm2E>sf72vqlPm(+Q@7(TR+`vKpU?&*0D+A z80LCJdOv+0-|LLkfC1jX|CDp5yyVI6KnN$Hg_9(?THPEjCUCVxn`bPe>5Jo29Lr7% za0Kil(WFog+x*Q30^+Bn*J&UA!xB6M;NyYNTHvCcDbP#=pWo`05P#AUK|Tad&mIb4 z1FR7oz8(Qs;Z%)8mp4-s@8_|85#I{$7V#J6&~jy_sCv2=o36y4!uONlt`OE>j`_s< zL==(a3!pZ#AL~O>v9Cq^AMB9FmvO}U3f=}X;$ZTuZ*lc z6{CIR@GP0ole&-}&+9aCEk0|{%BsDL!E|p(903&@yOa0+^h%I0122@{>#Qz3&Qy}6 z1L3U@&nAvFI9ovEJuGS3@GzS?XN15zHH61z=n1qv z2lt3k{#3~7i14*%Z6#7^_Wmpr*%??K;C}i1Unk9Izrh%;Q|YYEP8$`r!b3m~&JWf& zuo?%hVxS`vp}C7i2LGi!eT+{dr` z?!CwFvZJ44cB@+`|96Pte>J?^$sIEvZg0M=($Z1hSyVJt)L}9jk?;31Cnn64y(tZ0EFA8;X0ueFrfq! zBO+AIWE{ zxWt474Mnt&qV+ia$C!zk8u3;<@@BTOi67dkEjBGDGMRwNZWzs9PjrglgLjjH2X)nP z3ac`ak?E&uVm%BE&RKo`vPSYqalR&i$M_jNyJDF@=#}3d+88SPd{-9iX#;!ZjT|=~ zdC{5n`8hwkM_%+1?aTL_wc<<~b_Bl?3AUKfk-o08f`f^VAQo-*l1B!EXdklIg6;X* zDc|olU8R)(8l~s57lO?BHJqhMz_(V!=SqqBhU9v=QoSr0+bPfI8NKTX6VWGA2{r?I z`L#lP%Zs)VD-9iS+IzyfY3od9jnbTLj}Y2((!r?4$V@0ywSd6rcbguBHmS`d^*rS= z&`+1!Nt|Me%fwDscLk1Y){_r35%EWuHp5@kP}KlF4#Er#fZnqS35QF989;2(a&%lt zS!Jw2lR;|PtfvV*fvEpg2!W0QQx>#2+;0L{Oq&T>!V1a@Gf2`nxOzmb$3&K3@QmOm zrv7Hwov%K9W_thY@a!;xEX@iH_V0GIm#L3r_x*10<*k(6rWrfiWBD_QeyQ7ZX(DjiJFwLMcNpC$M z{W#zGhS$X6=QNVl@>U1dN-CHXeR>}^({#{>9#%86nQ0C217(C0>9?6HHc5&nzA@fu zBz84!lHI!6N&H14f!Rx(=`x`x2Brl88q0xssV>{zq-|U*mIf1U^w=3Y{a95NI#vY? zSnyCbBxXnvm;rA>$b~0pzkrzt4A9V|?b2UbB(?SseU>eu-w9Xq z|5ZTy<6QbnSRNPYPcQf}uwrpS_!@2Sp+eX+>}-@xu{!xUZRd8e(h*upr7Fvj7X|3o z5>qPXGTpzy1nzanryoNO9c_L-9X)$rMTW#4zD6s~JOO9=%>pc4g7mDM9GvgtQ+89c zd0cJwdj1zLL*?_Di2fb6eV*vpL7_yR@6Q+vI4V;j_)-w2sa!7x5AC<0XT3dLH-VV> z21{LW?iBVFnE6Nt;_><7rMPa>q26c1rX{`890Z?1u)Y!)b$5nn1B^4epMw%pxrc3< z(z|_5wU0-Devv7QvarvA$~a^v{y})+n>_?`YT}~(CX8_G*>L-ks(GNy2mcv2)YcdI zk~IEMe_rgrA&p5jM1}ta26gy6IPLNEP1sdDqFnNK$T9oU$Mno^)hC#Z$4CHLtt2Px zk`JPaGAmAwu|d(b&$1n7asCw%$omS*+!$*pK2GxDjIK6hV?LVIN2Z@yNa+Fh`@{6< z9R`!ZQ#13HPWgoiSzAWTu2)|MSN1&$(`}*vdPQaGRb2ANG%b;zl^ugzKqLcRoVwQn z6D@V#t`3TI6T>*(JID2Qnw# zwTG*Y%%o@#c~z01x^x|XUbXxg8p=WtCRltq7+X}ww+UWY0cM$+GJFF9KWN*~#Jf$H zCxUPHx%}59=9T$#XSwV7F$U@1I=%cUjb?}V-x=1I|7L+Dnw-O}An}gIO7(AB;WZnm znTB$${z7yzO=KD>SjG}Xme<$mi3Z}aB5Wk(tOqQ$^>s#&KxiHDJyFvDgsPquX$o{V zV}V{k~xPr#Okgkk42g#}VvzsR}?W>lltBY>_nsFp0KJ22hUnbsJ fh(hCU`IP=2-$p~@oQ0%600000NkvXXu0mjfv$-$X literal 0 HcmV?d00001 diff --git a/tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Lanczos3.png b/tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Lanczos3.png new file mode 100644 index 0000000000000000000000000000000000000000..53c9c9ba16f329f8ecc789da25e91903dfdadb21 GIT binary patch literal 458942 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ⅈ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 literal 0 HcmV?d00001 diff --git a/tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Hermite.png b/tests/ImageSharp.Tests/ReferenceOutput/ResizeTests/ImageShouldResize_Rgba32_Calliphora_Hermite.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd559305b5560a934047ab6d68ae98e82241d39 GIT binary patch literal 431023 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 IueYMNtnt*1zQEO$PtWqX1jgX)d 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 z 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�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Îo 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�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 z%0A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 T2|j4Z6b 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 z _L7rHju>C6l`;Gq-<(RyU=H-2R}rdLz<9f-)M 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