From 3d3d4528f6be10d48eee09bff667ed6d0f549bdf Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sun, 1 Oct 2017 15:09:03 +0300 Subject: [PATCH] Burn, baby, BURN! --- Avalonia.sln | 168 ------- packages.cake | 52 +-- samples/BindingTest/BindingTest.csproj | 8 - .../ControlCatalog.Desktop.csproj | 8 - samples/ControlCatalog/Program.cs | 126 ------ samples/RenderTest/RenderTest.csproj | 8 - .../VirtualizationTest.csproj | 8 - samples/interop/GtkInteropDemo/App.config | 6 - .../GtkInteropDemo/GtkInteropDemo.csproj | 154 ------- samples/interop/GtkInteropDemo/MainWindow.cs | 30 -- samples/interop/GtkInteropDemo/Program.cs | 24 - .../GtkInteropDemo/Properties/AssemblyInfo.cs | 36 -- .../Properties/Resources.Designer.cs | 71 --- .../GtkInteropDemo/Properties/Resources.resx | 117 ----- .../Properties/Settings.Designer.cs | 30 -- .../Properties/Settings.settings | 7 - .../Properties/AssemblyInfo.cs | 1 - src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj | 109 ----- src/Gtk/Avalonia.Cairo/CairoExtensions.cs | 64 --- src/Gtk/Avalonia.Cairo/CairoPlatform.cs | 112 ----- src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs | 17 - .../Avalonia.Cairo/Media/DrawingContext.cs | 415 ------------------ .../Avalonia.Cairo/Media/FormattedTextImpl.cs | 146 ------ .../Avalonia.Cairo/Media/ImageBrushImpl.cs | 56 --- .../Media/Imaging/BitmapImpl.cs | 35 -- .../Media/Imaging/RenderTargetBitmapImpl.cs | 58 --- .../Media/LinearGradientBrushImpl.cs | 23 - .../Media/RadialGradientBrushImpl.cs | 27 -- .../Media/SolidColorBrushImpl.cs | 22 - .../Media/StreamGeometryContextImpl.cs | 124 ------ .../Media/StreamGeometryImpl.cs | 86 ---- .../Avalonia.Cairo/Properties/AssemblyInfo.cs | 25 -- src/Gtk/Avalonia.Cairo/RenderTarget.cs | 58 --- src/Gtk/Avalonia.Cairo/app.config | 11 - src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj | 105 ----- src/Gtk/Avalonia.Gtk/ClipboardImpl.cs | 42 -- src/Gtk/Avalonia.Gtk/CursorFactory.cs | 85 ---- src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs | 42 -- .../Embedding/GtkAvaloniaControlHost.cs | 77 ---- src/Gtk/Avalonia.Gtk/FramebufferManager.cs | 40 -- src/Gtk/Avalonia.Gtk/GtkExtensions.cs | 15 - src/Gtk/Avalonia.Gtk/GtkPlatform.cs | 140 ------ src/Gtk/Avalonia.Gtk/IconImpl.cs | 27 -- .../Avalonia.Gtk/Input/GtkKeyboardDevice.cs | 18 - src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs | 29 -- src/Gtk/Avalonia.Gtk/MyClass.cs | 12 - src/Gtk/Avalonia.Gtk/PopupImpl.cs | 16 - .../Avalonia.Gtk/Properties/AssemblyInfo.cs | 15 - src/Gtk/Avalonia.Gtk/ScreenImpl.cs | 42 -- src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs | 55 --- src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs | 88 ---- src/Gtk/Avalonia.Gtk/TopLevelImpl.cs | 320 -------------- src/Gtk/Avalonia.Gtk/WindowImpl.cs | 136 ------ src/Gtk/Avalonia.Gtk/Windows.cs | 91 ---- src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj | 4 +- .../KeyTransform.cs | 5 +- .../Avalonia.Win32.Interop.csproj | 4 - .../AppBuilderTests.cs | 4 +- .../Avalonia.Cairo.RenderTests.csproj | 105 ----- .../Avalonia.Direct2D1.RenderTests.csproj | 3 - .../Controls/BorderTests.cs | 37 +- .../Controls/CustomRenderTests.cs | 4 +- .../Controls/ImageTests.cs | 4 +- .../Controls/TextBlockTests.cs | 4 +- .../GeometryClippingTests.cs | 4 +- .../Avalonia.RenderTests/Media/BitmapTests.cs | 8 +- .../Media/FormattedTextImplTests.cs | 45 +- .../Media/ImageBrushTests.cs | 15 +- .../Media/LinearGradientBrushTests.cs | 4 +- .../Media/RadialGradientBrushTests.cs | 4 +- .../Media/VisualBrushTests.cs | 42 +- .../Avalonia.RenderTests/OpacityMaskTests.cs | 4 +- .../Shapes/EllipseTests.cs | 4 +- .../Avalonia.RenderTests/Shapes/LineTests.cs | 16 +- .../Avalonia.RenderTests/Shapes/PathTests.cs | 67 +-- .../Shapes/PolygonTests.cs | 14 +- .../Shapes/PolylineTests.cs | 14 +- .../Shapes/RectangleTests.cs | 4 +- tests/Avalonia.RenderTests/TestBase.cs | 12 +- tests/Avalonia.RenderTests/app.config | 23 - .../Border/Border_1px_Border.expected.png | Bin 609 -> 0 bytes .../Border/Border_2px_Border.expected.png | Bin 611 -> 0 bytes .../Border_Bottom_Aligns_Content.expected.png | Bin 761 -> 0 bytes .../Border_Brush_Offsets_Content.expected.png | Bin 615 -> 0 bytes ..._Centers_Content_Horizontally.expected.png | Bin 760 -> 0 bytes ...er_Centers_Content_Vertically.expected.png | Bin 771 -> 0 bytes .../Controls/Border/Border_Fill.expected.png | Bin 601 -> 0 bytes .../Border_Left_Aligns_Content.expected.png | Bin 743 -> 0 bytes ...Border_Margin_Offsets_Content.expected.png | Bin 640 -> 0 bytes .../Border/Border_Nested_Rotate.expected.png | Bin 1405 -> 0 bytes ...order_Padding_Offsets_Content.expected.png | Bin 640 -> 0 bytes .../Border_Right_Aligns_Content.expected.png | Bin 734 -> 0 bytes ...tretches_Content_Horizontally.expected.png | Bin 793 -> 0 bytes ..._Stretches_Content_Vertically.expected.png | Bin 793 -> 0 bytes .../Border_Top_Aligns_Content.expected.png | Bin 758 -> 0 bytes .../Controls/CustomRender/Clip.expected.png | Bin 807 -> 0 bytes .../CustomRender/GeometryClip.expected.png | Bin 3871 -> 0 bytes .../CustomRender/Opacity.expected.png | Bin 988 -> 0 bytes .../CustomRender/OpacityMask.expected.png | Bin 5622 -> 0 bytes .../Image/Image_Stretch_Fill.expected.png | Bin 7705 -> 0 bytes .../Image/Image_Stretch_None.expected.png | Bin 3320 -> 0 bytes .../Image/Image_Stretch_Uniform.expected.png | Bin 6939 -> 0 bytes .../Image_Stretch_UniformToFill.expected.png | Bin 7542 -> 0 bytes tests/TestFiles/Cairo/Controls/Image/test.png | Bin 17223 -> 0 bytes .../Geometry_Clip_Clips_Path.expected.png | Bin 692 -> 0 bytes .../ImageBrush_Fill_NoTile.expected.png | Bin 118742 -> 0 bytes ..._NoStretch_FlipXY_TopLeftDest.expected.png | Bin 3242 -> 0 bytes ...h_NoStretch_FlipX_TopLeftDest.expected.png | Bin 3612 -> 0 bytes ...h_NoStretch_FlipY_TopLeftDest.expected.png | Bin 2767 -> 0 bytes ..._NoTile_Alignment_BottomRight.expected.png | Bin 3085 -> 0 bytes ...retch_NoTile_Alignment_Center.expected.png | Bin 4712 -> 0 bytes ...etch_NoTile_Alignment_TopLeft.expected.png | Bin 3611 -> 0 bytes ...NoTile_BottomRightQuarterDest.expected.png | Bin 1421 -> 0 bytes ...Tile_BottomRightQuarterSource.expected.png | Bin 3528 -> 0 bytes ...Source_BottomRightQuarterDest.expected.png | Bin 930 -> 0 bytes ...arterSource_CenterQuarterDest.expected.png | Bin 1795 -> 0 bytes .../ImageBrush_Tile_Fill.expected.png | Bin 3945 -> 0 bytes .../ImageBrush_Tile_Small_Image.expected.png | Bin 1483 -> 0 bytes ...ImageBrush_Tile_UniformToFill.expected.png | Bin 2340 -> 0 bytes ...ageBrush_UniformToFill_NoTile.expected.png | Bin 14445 -> 0 bytes .../ImageBrush_Uniform_NoTile.expected.png | Bin 11325 -> 0 bytes .../Cairo/Media/ImageBrush/github_icon.png | Bin 17661 -> 0 bytes .../Media/ImageBrush/github_icon_small.png | Bin 928 -> 0 bytes ...Brush_RedBlue_Horizontal_Fill.expected.png | Bin 611 -> 0 bytes ...ntBrush_RedBlue_Vertical_Fill.expected.png | Bin 653 -> 0 bytes .../RadialGradientBrush_RedBlue.expected.png | Bin 7985 -> 0 bytes .../VisualBrush_Fill_NoTile.expected.png | Bin 116569 -> 0 bytes ..._NoStretch_FlipXY_TopLeftDest.expected.png | Bin 5039 -> 0 bytes ...h_NoStretch_FlipX_TopLeftDest.expected.png | Bin 6569 -> 0 bytes ...h_NoStretch_FlipY_TopLeftDest.expected.png | Bin 4667 -> 0 bytes ..._NoTile_Alignment_BottomRight.expected.png | Bin 3085 -> 0 bytes ...retch_NoTile_Alignment_Center.expected.png | Bin 5526 -> 0 bytes ...etch_NoTile_Alignment_TopLeft.expected.png | Bin 3611 -> 0 bytes ...NoTile_BottomRightQuarterDest.expected.png | Bin 2007 -> 0 bytes ...Tile_BottomRightQuarterSource.expected.png | Bin 3528 -> 0 bytes ...Source_BottomRightQuarterDest.expected.png | Bin 930 -> 0 bytes ...arterSource_CenterQuarterDest.expected.png | Bin 1795 -> 0 bytes ...ualBrush_UniformToFill_NoTile.expected.png | Bin 14732 -> 0 bytes .../VisualBrush_Uniform_NoTile.expected.png | Bin 11472 -> 0 bytes .../Cairo/Media/VisualBrush/github_icon.png | Bin 17661 -> 0 bytes .../Opacity_Mask_Masks_Element.expected.png | Bin 846 -> 0 bytes .../Ellipse/Circle_1px_Stroke.expected.png | Bin 3323 -> 0 bytes .../Shapes/Line/Line_1px_Stroke.expected.png | Bin 624 -> 0 bytes .../Line_1px_Stroke_Reversed.expected.png | Bin 629 -> 0 bytes .../Line_1px_Stroke_Vertical.expected.png | Bin 621 -> 0 bytes .../Shapes/Path/Arc_Absolute.expected.png | Bin 3229 -> 0 bytes .../Shapes/Path/Arc_Relative.expected.png | Bin 3229 -> 0 bytes .../Path/CubicBezier_Absolute.expected.png | Bin 4474 -> 0 bytes .../Path/CubicBezier_Relative.expected.png | Bin 4474 -> 0 bytes .../Path/HorizontalLine_Absolute.expected.png | Bin 288 -> 0 bytes .../Path/HorizontalLine_Relative.expected.png | Bin 288 -> 0 bytes .../Shapes/Path/Line_Absolute.expected.png | Bin 615 -> 0 bytes .../Path_100px_Triangle_Centered.expected.png | Bin 1213 -> 0 bytes .../Path_Expander_With_Border.expected.png | Bin 1281 -> 0 bytes .../Shapes/Path/Path_Tick_Scaled.expected.png | Bin 6192 -> 0 bytes .../Path_Tick_Scaled_Stroke_8px.expected.png | Bin 6459 -> 0 bytes .../Path/VerticalLine_Absolute.expected.png | Bin 593 -> 0 bytes .../Path/VerticalLine_Relative.expected.png | Bin 610 -> 0 bytes .../Polygon/Polygon_1px_Stroke.expected.png | Bin 5142 -> 0 bytes .../Polygon_NonUniformFill.expected.png | Bin 8742 -> 0 bytes ...yline_10px_Stroke_PenLineJoin.expected.png | Bin 3942 -> 0 bytes .../Polyline/Polyline_1px_Stroke.expected.png | Bin 1604 -> 0 bytes .../Rectangle_1px_Stroke.expected.png | Bin 609 -> 0 bytes .../Rectangle_2px_Stroke.expected.png | Bin 611 -> 0 bytes .../Rectangle_Stroke_Fill.expected.png | Bin 615 -> 0 bytes ...ngle_Stroke_Fill_ClipToBounds.expected.png | Bin 615 -> 0 bytes 166 files changed, 65 insertions(+), 4026 deletions(-) delete mode 100644 samples/ControlCatalog/Program.cs delete mode 100644 samples/interop/GtkInteropDemo/App.config delete mode 100644 samples/interop/GtkInteropDemo/GtkInteropDemo.csproj delete mode 100644 samples/interop/GtkInteropDemo/MainWindow.cs delete mode 100644 samples/interop/GtkInteropDemo/Program.cs delete mode 100644 samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs delete mode 100644 samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs delete mode 100644 samples/interop/GtkInteropDemo/Properties/Resources.resx delete mode 100644 samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs delete mode 100644 samples/interop/GtkInteropDemo/Properties/Settings.settings delete mode 100644 src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj delete mode 100644 src/Gtk/Avalonia.Cairo/CairoExtensions.cs delete mode 100644 src/Gtk/Avalonia.Cairo/CairoPlatform.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/FormattedTextImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/ImageBrushImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/Imaging/BitmapImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/LinearGradientBrushImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/RadialGradientBrushImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/SolidColorBrushImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/StreamGeometryContextImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Media/StreamGeometryImpl.cs delete mode 100644 src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs delete mode 100644 src/Gtk/Avalonia.Cairo/RenderTarget.cs delete mode 100644 src/Gtk/Avalonia.Cairo/app.config delete mode 100644 src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj delete mode 100644 src/Gtk/Avalonia.Gtk/ClipboardImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/CursorFactory.cs delete mode 100644 src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/Embedding/GtkAvaloniaControlHost.cs delete mode 100644 src/Gtk/Avalonia.Gtk/FramebufferManager.cs delete mode 100644 src/Gtk/Avalonia.Gtk/GtkExtensions.cs delete mode 100644 src/Gtk/Avalonia.Gtk/GtkPlatform.cs delete mode 100644 src/Gtk/Avalonia.Gtk/IconImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/Input/GtkKeyboardDevice.cs delete mode 100644 src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs delete mode 100644 src/Gtk/Avalonia.Gtk/MyClass.cs delete mode 100644 src/Gtk/Avalonia.Gtk/PopupImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs delete mode 100644 src/Gtk/Avalonia.Gtk/ScreenImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs delete mode 100644 src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/TopLevelImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/WindowImpl.cs delete mode 100644 src/Gtk/Avalonia.Gtk/Windows.cs rename src/Gtk/{Avalonia.Gtk => Avalonia.Gtk3}/KeyTransform.cs (99%) delete mode 100644 tests/Avalonia.RenderTests/Avalonia.Cairo.RenderTests.csproj delete mode 100644 tests/Avalonia.RenderTests/app.config delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_1px_Border.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_2px_Border.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Bottom_Aligns_Content.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Brush_Offsets_Content.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Horizontally.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Vertically.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Fill.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Left_Aligns_Content.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Margin_Offsets_Content.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Nested_Rotate.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Padding_Offsets_Content.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Right_Aligns_Content.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Horizontally.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Vertically.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Border/Border_Top_Aligns_Content.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/CustomRender/Clip.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/CustomRender/GeometryClip.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/CustomRender/Opacity.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/CustomRender/OpacityMask.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Fill.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Image/Image_Stretch_None.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Uniform.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Image/Image_Stretch_UniformToFill.expected.png delete mode 100644 tests/TestFiles/Cairo/Controls/Image/test.png delete mode 100644 tests/TestFiles/Cairo/GeometryClipping/Geometry_Clip_Clips_Path.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Fill_NoTile.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipXY_TopLeftDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipX_TopLeftDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Fill.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_UniformToFill.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/github_icon.png delete mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png delete mode 100644 tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Horizontal_Fill.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/RadialGradientBrush/RadialGradientBrush_RedBlue.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png delete mode 100644 tests/TestFiles/Cairo/Media/VisualBrush/github_icon.png delete mode 100644 tests/TestFiles/Cairo/OpacityMask/Opacity_Mask_Masks_Element.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Ellipse/Circle_1px_Stroke.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Reversed.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Vertical.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/Arc_Absolute.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/Arc_Relative.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Absolute.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Relative.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Absolute.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Relative.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/Line_Absolute.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/Path_100px_Triangle_Centered.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/Path_Expander_With_Border.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled_Stroke_8px.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Absolute.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Relative.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Polygon/Polygon_1px_Stroke.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Polygon/Polygon_NonUniformFill.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Polyline/Polyline_10px_Stroke_PenLineJoin.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Polyline/Polyline_1px_Stroke.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_2px_Stroke.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill.expected.png delete mode 100644 tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png diff --git a/Avalonia.sln b/Avalonia.sln index 56f33c2a6b..d17bb2ed97 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -50,8 +50,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input.UnitTests", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Cairo.RenderTests", "tests\Avalonia.RenderTests\Avalonia.Cairo.RenderTests.csproj", "{E106CF37-4066-4615-B684-172A6D30B058}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.Xaml.UnitTests", "tests\Avalonia.Markup.Xaml.UnitTests\Avalonia.Markup.Xaml.UnitTests.csproj", "{99135EAB-653D-47E4-A378-C96E1278CA44}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Markup", "Markup", "{8B6A8209-894F-4BA1-B880-965FD453982C}" @@ -67,10 +65,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{A689DE EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gtk", "Gtk", "{B9894058-278A-46B5-B6ED-AD613FCC03B3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Gtk", "src\Gtk\Avalonia.Gtk\Avalonia.Gtk.csproj", "{54F237D5-A70A-4752-9656-0C70B1A7B047}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Cairo", "src\Gtk\Avalonia.Cairo\Avalonia.Cairo.csproj", "{FB05AC90-89BA-4F2F-A924-F37875FB547C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.ReactiveUI", "src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj", "{6417B24E-49C2-4985-8DB2-3AB9D898EC91}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.HtmlRenderer", "src\Avalonia.HtmlRenderer\Avalonia.HtmlRenderer.csproj", "{5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}" @@ -127,8 +121,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{A0CC EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{C7A69145-60B6-4882-97D6-A3921DD43978}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GtkInteropDemo", "samples\interop\GtkInteropDemo\GtkInteropDemo.csproj", "{BD7F352C-6DC1-4740-BAF2-2D34A038728C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetFrameworkRuntime", "src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj", "{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RenderTest", "samples\RenderTest\RenderTest.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}" @@ -204,9 +196,7 @@ Global src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{811a76cf-1cf6-440f-963b-bbe31bd72a82}*SharedItemsImports = 4 src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{9defc6b7-845b-4d8f-afc0-d32bf0032b8c}*SharedItemsImports = 13 tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4 - tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{e106cf37-4066-4615-b684-172a6d30b058}*SharedItemsImports = 4 src\Shared\PlatformSupport\PlatformSupport.projitems*{e4d9629c-f168-4224-3f51-a5e482ffbc42}*SharedItemsImports = 13 - src\Shared\RenderHelpers\RenderHelpers.projitems*{fb05ac90-89ba-4f2f-a924-f37875fb547c}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Ad-Hoc|Any CPU = Ad-Hoc|Any CPU @@ -1053,44 +1043,6 @@ Global {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|Mono.ActiveCfg = Release|Any CPU {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|x86.ActiveCfg = Release|Any CPU {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|x86.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Any CPU.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhone.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Mono.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|x86.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|x86.Build.0 = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhone.Build.0 = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Mono.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Mono.Build.0 = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|x86.ActiveCfg = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Debug|x86.Build.0 = Debug|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|Any CPU.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhone.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhone.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|Mono.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|Mono.Build.0 = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|x86.ActiveCfg = Release|Any CPU - {E106CF37-4066-4615-B684-172A6D30B058}.Release|x86.Build.0 = Release|Any CPU {99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU {99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU {99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU @@ -1167,82 +1119,6 @@ Global {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Mono.Build.0 = Release|Any CPU {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.ActiveCfg = Release|Any CPU {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Any CPU.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhone.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Mono.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|x86.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|x86.Build.0 = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.Build.0 = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhone.Build.0 = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Mono.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Mono.Build.0 = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|x86.ActiveCfg = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|x86.Build.0 = Debug|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhone.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhone.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Mono.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Mono.Build.0 = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|x86.ActiveCfg = Release|Any CPU - {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|x86.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Any CPU.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhone.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Mono.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|x86.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|x86.Build.0 = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhone.Build.0 = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Mono.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Mono.Build.0 = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|x86.ActiveCfg = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|x86.Build.0 = Debug|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhone.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhone.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Mono.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Mono.Build.0 = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|x86.ActiveCfg = Release|Any CPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|x86.Build.0 = Release|Any CPU {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU @@ -1985,46 +1861,6 @@ Global {C7A69145-60B6-4882-97D6-A3921DD43978}.Release|Mono.ActiveCfg = Release|Any CPU {C7A69145-60B6-4882-97D6-A3921DD43978}.Release|x86.ActiveCfg = Release|Any CPU {C7A69145-60B6-4882-97D6-A3921DD43978}.Release|x86.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Mono.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Any CPU.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhone.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Mono.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Mono.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|x86.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|x86.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhone.Build.0 = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Mono.ActiveCfg = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Mono.Build.0 = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|x86.ActiveCfg = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|x86.Build.0 = Debug|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Any CPU.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhone.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhone.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Mono.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Mono.Build.0 = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|x86.ActiveCfg = Release|Any CPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|x86.Build.0 = Release|Any CPU {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU @@ -2576,11 +2412,8 @@ Global {DABFD304-D6A4-4752-8123-C2CCF7AC7831} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {AC18926A-E784-40FE-B09D-BB0FE2B599F0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} - {E106CF37-4066-4615-B684-172A6D30B058} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {99135EAB-653D-47E4-A378-C96E1278CA44} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C} - {54F237D5-A70A-4752-9656-0C70B1A7B047} = {B9894058-278A-46B5-B6ED-AD613FCC03B3} - {FB05AC90-89BA-4F2F-A924-F37875FB547C} = {B9894058-278A-46B5-B6ED-AD613FCC03B3} {E4D9629C-F168-4224-3F51-A5E482FFBC42} = {A689DEF5-D50F-4975-8B72-124C9EB54066} {6417E941-21BC-467B-A771-0DE389353CE6} = {8B6A8209-894F-4BA1-B880-965FD453982C} {8EF392D5-1416-45AA-9956-7CBBC3229E8A} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} @@ -2602,7 +2435,6 @@ Global {FBCAF3D0-2808-4934-8E96-3F607594517B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {A0CC0258-D18C-4AB3-854F-7101680FC3F9} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C7A69145-60B6-4882-97D6-A3921DD43978} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9} - {BD7F352C-6DC1-4740-BAF2-2D34A038728C} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9} {F1FDC5B0-4654-416F-AE69-E3E9BBD87801} = {9B9E3891-2366-4253-A952-D08BCEB71098} {29132311-1848-4FD6-AE0C-4FF841151BD3} = {9B9E3891-2366-4253-A952-D08BCEB71098} {9DEFC6B7-845B-4D8F-AFC0-D32BF0032B8C} = {B39A8919-9F95-48FE-AD7B-76E08B509888} diff --git a/packages.cake b/packages.cake index 7ada627200..a22ff65e72 100644 --- a/packages.cake +++ b/packages.cake @@ -375,23 +375,6 @@ public class Packages OutputDirectory = parameters.NugetRoot }, /////////////////////////////////////////////////////////////////////////////// - // Avalonia.Gtk - /////////////////////////////////////////////////////////////////////////////// - new NuGetPackSettings() - { - Id = "Avalonia.Gtk", - Dependencies = new [] - { - new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version } - }, - Files = new [] - { - new NuSpecContent { Source = "Avalonia.Gtk.dll", Target = "lib/net45" } - }, - BasePath = context.Directory("./src/Gtk/Avalonia.Gtk/bin/" + parameters.DirSuffix), - OutputDirectory = parameters.NugetRoot - }, - /////////////////////////////////////////////////////////////////////////////// // Avalonia.Gtk3 /////////////////////////////////////////////////////////////////////////////// new NuGetPackSettings() @@ -409,23 +392,6 @@ public class Packages OutputDirectory = parameters.NugetRoot }, /////////////////////////////////////////////////////////////////////////////// - // Avalonia.Cairo - /////////////////////////////////////////////////////////////////////////////// - new NuGetPackSettings() - { - Id = "Avalonia.Cairo", - Dependencies = new [] - { - new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version } - }, - Files = new [] - { - new NuSpecContent { Source = "Avalonia.Cairo.dll", Target = "lib/net45" } - }, - BasePath = context.Directory("./src/Gtk/Avalonia.Cairo/bin/" + parameters.DirSuffix), - OutputDirectory = parameters.NugetRoot - }, - /////////////////////////////////////////////////////////////////////////////// // Avalonia.Skia /////////////////////////////////////////////////////////////////////////////// new NuGetPackSettings() @@ -471,19 +437,11 @@ public class Packages Id = "Avalonia.Desktop", Dependencies = new [] { - //Full .NET - new NuSpecDependency() { Id = "Avalonia.Direct2D1", TargetFramework="net45", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Gtk", TargetFramework="net45", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Cairo", TargetFramework="net45", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="net45", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Skia", TargetFramework="net45", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="net45", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.MonoMac", TargetFramework="net45", Version = parameters.Version }, - //.NET Core - new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="netcoreapp2.0", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Skia", TargetFramework="netcoreapp2.0", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="netcoreapp2.0", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.MonoMac", TargetFramework="netcoreapp2.0", Version = parameters.Version } + new NuSpecDependency() { Id = "Avalonia.Direct2D1", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Win32", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Gtk3", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.MonoMac", Version = parameters.Version } }, Files = new NuSpecContent[] { diff --git a/samples/BindingTest/BindingTest.csproj b/samples/BindingTest/BindingTest.csproj index b4dd17194b..d7d349fbdf 100644 --- a/samples/BindingTest/BindingTest.csproj +++ b/samples/BindingTest/BindingTest.csproj @@ -148,14 +148,6 @@ {811a76cf-1cf6-440f-963b-bbe31bd72a82} Avalonia.Win32 - - {54F237D5-A70A-4752-9656-0C70B1A7B047} - Avalonia.Gtk - - - {FB05AC90-89BA-4F2F-A924-F37875FB547C} - Avalonia.Cairo - diff --git a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj index 91d24f9152..3f4679086e 100644 --- a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj +++ b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj @@ -63,18 +63,10 @@ {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0} Avalonia.DotNetFrameworkRuntime - - {FB05AC90-89BA-4F2F-A924-F37875FB547C} - Avalonia.Cairo - {bb1f7bb5-6ad4-4776-94d9-c09d0a972658} Avalonia.Gtk3 - - {54F237D5-A70A-4752-9656-0C70B1A7B047} - Avalonia.Gtk - {3E53A01A-B331-47F3-B828-4A5717E77A24} Avalonia.Markup.Xaml diff --git a/samples/ControlCatalog/Program.cs b/samples/ControlCatalog/Program.cs deleted file mode 100644 index f975b91834..0000000000 --- a/samples/ControlCatalog/Program.cs +++ /dev/null @@ -1,126 +0,0 @@ -using Avalonia.Logging.Serilog; -using Serilog; -using System; -using System.Linq; -using Avalonia; - -namespace ControlCatalog -{ - internal class Program - { - static void Main(string[] args) - { - InitializeLogging(); - - new App() - .ConfigureRenderSystem(args) - .LoadFromXaml() - .RunWithMainWindow(); - } - - // This will be made into a runtime configuration extension soon! - private static void InitializeLogging() - { -#if DEBUG - SerilogLogger.Initialize(new LoggerConfiguration() - .MinimumLevel.Warning() - .WriteTo.Trace(outputTemplate: "{Area}: {Message}") - .CreateLogger()); -#endif - } - - } - - ///////////////////////////////////////////////////////////////////////////////////////////////////////////// - // Experimental: Would like to move this into a shared location once I figure out the best place for it - // considering all common libraries are PCL and do not have access to Environment.OSVersion.Platform - // nor do they have access to the platform specific render/subsystem extensions. - // - // Perhaps via DI we register each system with a priority/rank - // - public static class RenderSystemExtensions - { - [Flags] - enum RenderSystem - { - None = 0, - GTK = 1, - Skia = 2, - Direct2D = 4 - }; - - /// - /// Default (Optimal) render system for a particular platform - /// - /// - private static RenderSystem DefaultRenderSystem() - { - switch (Environment.OSVersion.Platform) - { - case PlatformID.MacOSX: - return RenderSystem.GTK; - - case PlatformID.Unix: - return RenderSystem.GTK; - - case PlatformID.Win32Windows: - return RenderSystem.Direct2D; - } - - return RenderSystem.None; - } - - /// - /// Returns an array of avalidable rendering systems in priority order - /// - /// - private static RenderSystem[] AvailableRenderSystems() - { - switch (Environment.OSVersion.Platform) - { - case PlatformID.MacOSX: - return new RenderSystem[] { RenderSystem.GTK, RenderSystem.Skia }; - - case PlatformID.Unix: - return new RenderSystem[] { RenderSystem.GTK, RenderSystem.Skia }; - - case PlatformID.Win32Windows: - return new RenderSystem[] { RenderSystem.Direct2D, RenderSystem.Skia, RenderSystem.GTK }; - } - - return new RenderSystem[0]; - } - - /// - /// Selects the optimal render system for desktop platforms. Supports cmd line overrides - /// - /// - /// - public static TApp ConfigureRenderSystem(this TApp app, string[] args) where TApp : Application - { - // So this all works great under Windows where it can support - // ALL configurations. But on OSX/Unix we cannot use Direct2D - // - if (args.Contains("--gtk") || DefaultRenderSystem() == RenderSystem.GTK) - { - app.UseGtk(); - app.UseCairo(); - } - else - { - app.UseWin32(); - - if (args.Contains("--skia") || DefaultRenderSystem() == RenderSystem.Skia) - { - app.UseSkia(); - } - else - { - app.UseDirect2D(); - } - } - - return app; - } - } -} diff --git a/samples/RenderTest/RenderTest.csproj b/samples/RenderTest/RenderTest.csproj index 974b8802ac..0141ad29c6 100644 --- a/samples/RenderTest/RenderTest.csproj +++ b/samples/RenderTest/RenderTest.csproj @@ -132,14 +132,6 @@ {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} Avalonia.Themes.Default - - {fb05ac90-89ba-4f2f-a924-f37875fb547c} - Avalonia.Cairo - - - {54f237d5-a70a-4752-9656-0c70b1a7b047} - Avalonia.Gtk - {3e53a01a-b331-47f3-b828-4a5717e77a24} Avalonia.Markup.Xaml diff --git a/samples/VirtualizationTest/VirtualizationTest.csproj b/samples/VirtualizationTest/VirtualizationTest.csproj index 9d31a6cb86..58775926cc 100644 --- a/samples/VirtualizationTest/VirtualizationTest.csproj +++ b/samples/VirtualizationTest/VirtualizationTest.csproj @@ -134,14 +134,6 @@ {811a76cf-1cf6-440f-963b-bbe31bd72a82} Avalonia.Win32 - - {FB05AC90-89BA-4F2F-A924-F37875FB547C} - Avalonia.Cairo - - - {54F237D5-A70A-4752-9656-0C70B1A7B047} - Avalonia.Gtk - diff --git a/samples/interop/GtkInteropDemo/App.config b/samples/interop/GtkInteropDemo/App.config deleted file mode 100644 index 8324aa6ff1..0000000000 --- a/samples/interop/GtkInteropDemo/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj b/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj deleted file mode 100644 index 8382426620..0000000000 --- a/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj +++ /dev/null @@ -1,154 +0,0 @@ - - - - - Debug - AnyCPU - {BD7F352C-6DC1-4740-BAF2-2D34A038728C} - WinExe - Properties - GtkInteropDemo - GtkInteropDemo - v4.6.1 - 512 - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - {d211e587-d8bc-45b9-95a4-f297c8fa5200} - Avalonia.Animation - - - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} - Avalonia.Base - - - {d2221c82-4a25-4583-9b43-d791e3f6820c} - Avalonia.Controls - - - {7062ae20-5dcc-4442-9645-8195bdece63e} - Avalonia.Diagnostics - - - {4a1abb09-9047-4bd5-a4ad-a055e52c5ee0} - Avalonia.DotNetFrameworkRuntime - - - {62024b2d-53eb-4638-b26b-85eeaa54866e} - Avalonia.Input - - - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} - Avalonia.Interactivity - - - {42472427-4774-4c81-8aff-9f27b8e31721} - Avalonia.Layout - - - {6417b24e-49c2-4985-8db2-3ab9d898ec91} - Avalonia.ReactiveUI - - - {eb582467-6abb-43a1-b052-e981ba910e3a} - Avalonia.Visuals - - - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} - Avalonia.Styling - - - {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} - Avalonia.Themes.Default - - - {fb05ac90-89ba-4f2f-a924-f37875fb547c} - Avalonia.Cairo - - - {54f237d5-a70a-4752-9656-0c70b1a7b047} - Avalonia.Gtk - - - {3e53a01a-b331-47f3-b828-4a5717e77a24} - Avalonia.Markup.Xaml - - - {6417e941-21bc-467b-a771-0de389353ce6} - Avalonia.Markup - - - {7d2d3083-71dd-4cc9-8907-39a0d86fb322} - Avalonia.Skia - - - {d0a739b9-3c68-4ba6-a328-41606954b6bd} - ControlCatalog - - - - - \ No newline at end of file diff --git a/samples/interop/GtkInteropDemo/MainWindow.cs b/samples/interop/GtkInteropDemo/MainWindow.cs deleted file mode 100644 index 2c193f24e8..0000000000 --- a/samples/interop/GtkInteropDemo/MainWindow.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Diagnostics; -using Avalonia.Gtk.Embedding; -using ControlCatalog; -using Gtk; - -namespace GtkInteropDemo -{ - class MainWindow : Window - { - public MainWindow() : base("Gtk Embedding Demo") - { - var root = new HBox(); - var left = new VBox(); - left.Add(new Button("I'm GTK button")); - left.Add(new Calendar()); - root.PackEnd(left, false, false, 0); - var host = new GtkAvaloniaControlHost() {Content = new MainView()}; - host.SetSizeRequest(600, 600); - root.PackStart(host, true, true, 0); - Add(root); - - ShowAll(); - } - } -} diff --git a/samples/interop/GtkInteropDemo/Program.cs b/samples/interop/GtkInteropDemo/Program.cs deleted file mode 100644 index 7dd39c74ca..0000000000 --- a/samples/interop/GtkInteropDemo/Program.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Avalonia; -using Avalonia.Controls; -using ControlCatalog; - -namespace GtkInteropDemo -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - AppBuilder.Configure().UseGtk().UseCairo().SetupWithoutStarting(); - new MainWindow().Show(); - Gtk.Application.Run(); - } - } -} diff --git a/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs b/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs deleted file mode 100644 index 8aaf28c2f0..0000000000 --- a/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("GtkInteropDemo")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("GtkInteropDemo")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("bd7f352c-6dc1-4740-baf2-2d34a038728c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs b/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs deleted file mode 100644 index f79a8bf680..0000000000 --- a/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GtkInteropDemo.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GtkInteropDemo.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/samples/interop/GtkInteropDemo/Properties/Resources.resx b/samples/interop/GtkInteropDemo/Properties/Resources.resx deleted file mode 100644 index af7dbebbac..0000000000 --- a/samples/interop/GtkInteropDemo/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs b/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs deleted file mode 100644 index 8173ee7dfa..0000000000 --- a/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GtkInteropDemo.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/samples/interop/GtkInteropDemo/Properties/Settings.settings b/samples/interop/GtkInteropDemo/Properties/Settings.settings deleted file mode 100644 index 39645652af..0000000000 --- a/samples/interop/GtkInteropDemo/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs b/src/Avalonia.Visuals/Properties/AssemblyInfo.cs index ded650e2ed..87347d64b1 100644 --- a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs +++ b/src/Avalonia.Visuals/Properties/AssemblyInfo.cs @@ -10,6 +10,5 @@ using Avalonia.Metadata; [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media")] -[assembly: InternalsVisibleTo("Avalonia.Cairo.RenderTests")] [assembly: InternalsVisibleTo("Avalonia.Direct2D1.RenderTests")] [assembly: InternalsVisibleTo("Avalonia.Skia.RenderTests")] \ No newline at end of file diff --git a/src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj b/src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj deleted file mode 100644 index 460db98895..0000000000 --- a/src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj +++ /dev/null @@ -1,109 +0,0 @@ - - - - - Debug - AnyCPU - {FB05AC90-89BA-4F2F-A924-F37875FB547C} - Library - Properties - Avalonia.Cairo - Avalonia.Cairo - v4.6.1 - 512 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - Properties\SharedAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - {D211E587-D8BC-45B9-95A4-F297C8FA5200} - Avalonia.Animation - - - {B09B78D8-9B26-48B0-9149-D64A2F120F3F} - Avalonia.Base - - - {d2221c82-4a25-4583-9b43-d791e3f6820c} - Avalonia.Controls - - - {62024b2d-53eb-4638-b26b-85eeaa54866e} - Avalonia.Input - - - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} - Avalonia.Interactivity - - - {42472427-4774-4C81-8AFF-9F27B8E31721} - Avalonia.Layout - - - {EB582467-6ABB-43A1-B052-E981BA910E3A} - Avalonia.Visuals - - - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} - Avalonia.Styling - - - - - - - - - \ No newline at end of file diff --git a/src/Gtk/Avalonia.Cairo/CairoExtensions.cs b/src/Gtk/Avalonia.Cairo/CairoExtensions.cs deleted file mode 100644 index daea3b0239..0000000000 --- a/src/Gtk/Avalonia.Cairo/CairoExtensions.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -namespace Avalonia.Cairo -{ - using Cairo = global::Cairo; - - public static class CairoExtensions - { - public static Cairo.Color ToCairo(this Avalonia.Media.Color color) - { - return new Cairo.Color(color.R / 255.0, color.G / 255.0, color.B / 255.0, color.A / 255.0); - } - - public static Cairo.Matrix ToCairo(this Matrix m) - { - return new Cairo.Matrix(m.M11, m.M12, m.M21, m.M22, m.M31, m.M32); - } - - public static Cairo.PointD ToCairo(this Point p) - { - return new Cairo.PointD(p.X, p.Y); - } - - public static Cairo.Rectangle ToCairo(this Rect rect) - { - return new Cairo.Rectangle(rect.X, rect.Y, rect.Width, rect.Height); - } - - public static Rect ToAvalonia(this Cairo.Rectangle rect) - { - return new Rect(rect.X, rect.Y, rect.Width, rect.Height); - } - - public static Rect ToAvalonia(this Pango.Rectangle rect) - { - return new Rect( - Pango.Units.ToDouble(rect.X), - Pango.Units.ToDouble(rect.Y), - Pango.Units.ToDouble(rect.Width), - Pango.Units.ToDouble(rect.Height)); - } - - public static Pango.Weight ToCairo(this Avalonia.Media.FontWeight weight) - { - return (Pango.Weight)weight; - } - - public static Pango.Alignment ToCairo(this Avalonia.Media.TextAlignment alignment) - { - if (alignment == Avalonia.Media.TextAlignment.Left) - { - return Pango.Alignment.Left; - } - - if (alignment == Avalonia.Media.TextAlignment.Center) - { - return Pango.Alignment.Center; - } - - return Pango.Alignment.Right; - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Cairo/CairoPlatform.cs b/src/Gtk/Avalonia.Cairo/CairoPlatform.cs deleted file mode 100644 index e3578874a3..0000000000 --- a/src/Gtk/Avalonia.Cairo/CairoPlatform.cs +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Collections.Generic; -using System.Linq; -using Avalonia.Cairo.Media; -using Avalonia.Cairo.Media.Imaging; -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Controls; - -namespace Avalonia -{ - public static class GtkApplicationExtensions - { - public static T UseCairo(this T builder) where T : AppBuilderBase, new() - { - builder.UseRenderingSubsystem(Cairo.CairoPlatform.Initialize, "Cairo"); - return builder; - } - } -} - -namespace Avalonia.Cairo -{ - using System.IO; - using global::Cairo; - using Rendering; - - public class CairoPlatform : IPlatformRenderInterface - { - private static readonly CairoPlatform s_instance = new CairoPlatform(); - - private static readonly Pango.Context s_pangoContext = CreatePangoContext(); - - public static void Initialize() => AvaloniaLocator.CurrentMutable.Bind().ToConstant(s_instance); - - public IBitmapImpl CreateBitmap(int width, int height) - { - return new BitmapImpl(new Gdk.Pixbuf(Gdk.Colorspace.Rgb, true, 32, width, height)); - } - - public IFormattedTextImpl CreateFormattedText( - string text, - Typeface typeface, - TextAlignment textAlignment, - TextWrapping wrapping, - Size constraint, - IReadOnlyList spans) - { - return new FormattedTextImpl( - s_pangoContext, - text, - typeface, - textAlignment, - wrapping, - constraint, - spans); - } - - public IRenderTarget CreateRenderTarget(IEnumerable surfaces) - { - var accessor = surfaces?.OfType>().FirstOrDefault(); - if(accessor!=null) - return new RenderTarget(accessor); - - throw new NotSupportedException(string.Format( - "Don't know how to create a Cairo renderer from any of the provided surfaces.")); - } - - public IRenderTargetBitmapImpl CreateRenderTargetBitmap(int width, int height, double dpiX, double dpiY) - { - return new RenderTargetBitmapImpl(new ImageSurface(Format.Argb32, width, height)); - } - - public IStreamGeometryImpl CreateStreamGeometry() - { - return new StreamGeometryImpl(); - } - - public IBitmapImpl LoadBitmap(string fileName) - { - var pixbuf = new Gdk.Pixbuf(fileName); - - return new BitmapImpl(pixbuf); - } - - public IBitmapImpl LoadBitmap(Stream stream) - { - var pixbuf = new Gdk.Pixbuf(stream); - - return new BitmapImpl(pixbuf); - } - - private static Pango.Context CreatePangoContext() - { - Gtk.Application.Init(); - return new Gtk.Invisible().CreatePangoContext(); - } - - public IBitmapImpl LoadBitmap(PixelFormat format, IntPtr data, int width, int height, int stride) - { - throw new NotSupportedException("No proper control over pixel format with Cairo, use Skia backend instead"); - } - - public IWritableBitmapImpl CreateWritableBitmap(int width, int height, PixelFormat? fmt) - { - throw new NotSupportedException("No proper support with Cairo, use Skia backend instead"); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs deleted file mode 100644 index 7008c7a66f..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public abstract class BrushImpl : IDisposable - { - public Pattern PlatformBrush { get; protected set; } - - public void Dispose() - { - if (this.PlatformBrush != null) - this.PlatformBrush.Dispose(); - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs b/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs deleted file mode 100644 index 99b0a2ec73..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs +++ /dev/null @@ -1,415 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reactive.Disposables; -using Avalonia.Cairo.Media.Imaging; -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering; -// ReSharper disable PossibleNullReferenceException - -namespace Avalonia.Cairo.Media -{ - using Cairo = global::Cairo; - - /// - /// Draws using Cairo. - /// - public class DrawingContext : IDrawingContextImpl, IDisposable - { - private readonly Cairo.Context _context; - private readonly IVisualBrushRenderer _visualBrushRenderer; - private readonly Stack _maskStack = new Stack(); - - /// - /// Initializes a new instance of the class. - /// - /// The target surface. - public DrawingContext(Cairo.Surface surface, IVisualBrushRenderer visualBrushRenderer) - { - _context = new Cairo.Context(surface); - _visualBrushRenderer = visualBrushRenderer; - } - - /// - /// Initializes a new instance of the class. - /// - /// The GDK drawable. - public DrawingContext(Gdk.Drawable drawable, IVisualBrushRenderer visualBrushRenderer) - { - _context = Gdk.CairoHelper.Create(drawable); - _visualBrushRenderer = visualBrushRenderer; - } - - private Matrix _transform = Matrix.Identity; - /// - /// Gets the current transform of the drawing context. - /// - public Matrix Transform - { - get { return _transform; } - set - { - _transform = value; - _context.Matrix = value.ToCairo(); - - } - } - - public void Clear(Color color) - { - _context.SetSourceRGBA(color.R, color.G, color.B, color.A); - _context.Paint(); - } - - /// - /// Ends a draw operation. - /// - public void Dispose() - { - _context.Dispose(); - } - - /// - /// Draws a bitmap image. - /// - /// The bitmap image. - /// The opacity to draw with. - /// The rect in the image to draw. - /// The rect in the output to draw to. - public void DrawImage(IBitmapImpl bitmap, double opacity, Rect sourceRect, Rect destRect) - { - var pixbuf = bitmap as Gdk.Pixbuf; - var rtb = bitmap as RenderTargetBitmapImpl; - var size = new Size(pixbuf?.Width ?? rtb.PixelWidth, pixbuf?.Height ?? rtb.PixelHeight); - var scale = new Vector(destRect.Width / sourceRect.Width, destRect.Height / sourceRect.Height); - - _context.Save(); - _context.Scale(scale.X, scale.Y); - destRect /= scale; - - _context.PushGroup(); - - if (pixbuf != null) - { - Gdk.CairoHelper.SetSourcePixbuf( - _context, - pixbuf, - -sourceRect.X + destRect.X, - -sourceRect.Y + destRect.Y); - } - else - { - _context.SetSourceSurface( - rtb.Surface, - (int)(-sourceRect.X + destRect.X), - (int)(-sourceRect.Y + destRect.Y)); - } - - _context.Rectangle(destRect.ToCairo()); - _context.Fill(); - _context.PopGroupToSource(); - _context.PaintWithAlpha(opacityOverride); - _context.Restore(); - } - - public void DrawImage(IBitmapImpl source, IBrush opacityMask, Rect opacityMaskRect, Rect destRect) - { - PushOpacityMask(opacityMask, opacityMaskRect); - DrawImage(source, 1, new Rect(0, 0, source.PixelWidth, source.PixelHeight), destRect); - PopOpacityMask(); - } - - /// - /// Draws a line. - /// - /// The stroke pen. - /// The first point of the line. - /// The second point of the line. - public void DrawLine(Pen pen, Point p1, Point p2) - { - var size = new Rect(p1, p2).Size; - - using (var p = SetPen(pen, size)) - { - _context.MoveTo(p1.ToCairo()); - _context.LineTo(p2.ToCairo()); - _context.Stroke(); - } - } - - /// - /// Draws a geometry. - /// - /// The fill brush. - /// The stroke pen. - /// The geometry. - public void DrawGeometry(IBrush brush, Pen pen, IGeometryImpl geometry) - { - var impl = geometry as StreamGeometryImpl; - - var oldMatrix = Transform; - Transform = impl.Transform * Transform; - - - if (brush != null) - { - _context.AppendPath(impl.Path); - using (var b = SetBrush(brush, geometry.Bounds.Size)) - { - _context.FillRule = impl.FillRule == FillRule.EvenOdd - ? Cairo.FillRule.EvenOdd - : Cairo.FillRule.Winding; - - if (pen != null) - _context.FillPreserve(); - else - _context.Fill(); - } - } - Transform = oldMatrix; - - if (pen != null) - { - _context.AppendPath(impl.Path); - using (var p = SetPen(pen, geometry.Bounds.Size)) - { - _context.Stroke(); - } - } - } - - /// - /// Draws the outline of a rectangle. - /// - /// The pen. - /// The rectangle bounds. - public void DrawRectangle(Pen pen, Rect rect, float cornerRadius) - { - using (var p = SetPen(pen, rect.Size)) - { - _context.Rectangle(rect.ToCairo()); - _context.Stroke(); - } - } - - /// - /// Draws text. - /// - /// The foreground brush. - /// The upper-left corner of the text. - /// The text. - public void DrawText(IBrush foreground, Point origin, IFormattedTextImpl text) - { - var layout = ((FormattedTextImpl)text).Layout; - _context.MoveTo(origin.X, origin.Y); - - using (var b = SetBrush(foreground, new Size(0, 0))) - { - Pango.CairoHelper.ShowLayout(_context, layout); - } - } - - /// - /// Draws a filled rectangle. - /// - /// The brush. - /// The rectangle bounds. - public void FillRectangle(IBrush brush, Rect rect, float cornerRadius) - { - using (var b = SetBrush(brush, rect.Size)) - { - _context.Rectangle(rect.ToCairo()); - _context.Fill(); - } - } - - /// - /// Pushes a clip rectange. - /// - /// The clip rectangle. - /// A disposable used to undo the clip rectangle. - public void PushClip(Rect clip) - { - _context.Save(); - _context.Rectangle(clip.ToCairo()); - _context.Clip(); - } - - public void PopClip() - { - _context.Restore(); - } - - readonly Stack _opacityStack = new Stack(); - - /// - /// Pushes an opacity value. - /// - /// The opacity. - /// A disposable used to undo the opacity. - public void PushOpacity(double opacity) - { - _opacityStack.Push(opacityOverride); - - if (opacity < 1.0f) - opacityOverride *= opacity; - - } - - public void PopOpacity() - { - opacityOverride = _opacityStack.Pop(); - } - - /// - /// Pushes a matrix transformation. - /// - /// The matrix - /// A disposable used to undo the transformation. - public IDisposable PushTransform(Matrix matrix) - { - _context.Save(); - _context.Transform(matrix.ToCairo()); - - return Disposable.Create(() => - { - _context.Restore(); - }); - } - - private double opacityOverride = 1.0f; - - private IDisposable SetBrush(IBrush brush, Size destinationSize) - { - _context.Save(); - - BrushImpl impl = CreateBrushImpl(brush, destinationSize); - - _context.SetSource(impl.PlatformBrush); - return Disposable.Create(() => - { - impl.Dispose(); - _context.Restore(); - }); - } - - private BrushImpl CreateBrushImpl(IBrush brush, Size destinationSize) - { - var solid = brush as ISolidColorBrush; - var linearGradientBrush = brush as ILinearGradientBrush; - var radialGradientBrush = brush as IRadialGradientBrush; - var imageBrush = brush as IImageBrush; - var visualBrush = brush as IVisualBrush; - BrushImpl impl = null; - - if (solid != null) - { - impl = new SolidColorBrushImpl(solid, opacityOverride); - } - else if (linearGradientBrush != null) - { - impl = new LinearGradientBrushImpl(linearGradientBrush, destinationSize); - } - else if (radialGradientBrush != null) - { - impl = new RadialGradientBrushImpl(radialGradientBrush, destinationSize); - } - else if (imageBrush != null) - { - impl = new ImageBrushImpl(imageBrush, (BitmapImpl)imageBrush.Source.PlatformImpl, destinationSize); - } - else if (visualBrush != null) - { - if (_visualBrushRenderer != null) - { - var intermediateSize = _visualBrushRenderer.GetRenderTargetSize(visualBrush); - - if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) - { - using (var intermediate = new Cairo.ImageSurface(Cairo.Format.ARGB32, (int)intermediateSize.Width, (int)intermediateSize.Height)) - { - using (var ctx = new RenderTarget(intermediate).CreateDrawingContext(_visualBrushRenderer)) - { - ctx.Clear(Colors.Transparent); - _visualBrushRenderer.RenderVisualBrush(ctx, visualBrush); - } - - return new ImageBrushImpl( - visualBrush, - new RenderTargetBitmapImpl(intermediate), - destinationSize); - } - } - } - else - { - throw new NotSupportedException("No IVisualBrushRenderer was supplied to DrawingContextImpl."); - } - } - else - { - impl = new SolidColorBrushImpl(null, opacityOverride); - } - - return impl; - } - - private IDisposable SetPen(Pen pen, Size destinationSize) - { - if (pen.DashStyle != null) - { - if (pen.DashStyle.Dashes != null && pen.DashStyle.Dashes.Count > 0) - { - var cray = pen.DashStyle.Dashes.ToArray(); - _context.SetDash(cray, pen.DashStyle.Offset); - } - } - - _context.LineWidth = pen.Thickness; - _context.MiterLimit = pen.MiterLimit; - - // Line caps and joins are currently broken on Cairo. I've defaulted them to sensible defaults for now. - // Cairo does not have StartLineCap, EndLineCap, and DashCap properties, whereas Direct2D does. - // TODO: Figure out a solution for this. - _context.LineJoin = Cairo.LineJoin.Miter; - _context.LineCap = Cairo.LineCap.Butt; - - if (pen.Brush == null) - return Disposable.Empty; - - return SetBrush(pen.Brush, destinationSize); - } - - public void PushGeometryClip(IGeometryImpl clip) - { - _context.Save(); - _context.AppendPath(((StreamGeometryImpl)clip).Path); - _context.Clip(); - } - - public void PopGeometryClip() - { - _context.Restore(); - } - - public void PushOpacityMask(IBrush mask, Rect bounds) - { - _context.PushGroup(); - var impl = CreateBrushImpl(mask, bounds.Size); - _maskStack.Push(impl); - } - - public void PopOpacityMask() - { - _context.PopGroupToSource(); - var brushImpl = _maskStack.Pop(); - - _context.Mask(brushImpl.PlatformBrush); - brushImpl.Dispose(); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/FormattedTextImpl.cs b/src/Gtk/Avalonia.Cairo/Media/FormattedTextImpl.cs deleted file mode 100644 index b8e4d1efec..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/FormattedTextImpl.cs +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Avalonia.Media; -using Avalonia.Platform; - -namespace Avalonia.Cairo.Media -{ - public class FormattedTextImpl : IFormattedTextImpl - { - private Size _constraint; - - static double CorrectScale(double input) - { - return input * 0.75; - } - - public FormattedTextImpl( - Pango.Context context, - string text, - Typeface typeface, - TextAlignment textAlignment, - TextWrapping wrapping, - Size constraint, - IReadOnlyList spans) - { - Contract.Requires(context != null); - Contract.Requires(text != null); - - Layout = new Pango.Layout(context); - Layout.SetText(text); - - Layout.FontDescription = new Pango.FontDescription - { - Family = typeface?.FontFamilyName ?? "monospace", - Size = Pango.Units.FromDouble(CorrectScale(typeface?.FontSize ?? 12)), - Style = (Pango.Style)(typeface?.Style ?? FontStyle.Normal), - Weight = (typeface?.Weight ?? FontWeight.Normal).ToCairo(), - }; - - Layout.Alignment = textAlignment.ToCairo(); - Layout.Attributes = new Pango.AttrList(); - Layout.Width = double.IsPositiveInfinity(constraint.Width) ? -1 : Pango.Units.FromDouble(constraint.Width); - - if (spans != null) - { - foreach (var span in spans) - { - if (span.ForegroundBrush is SolidColorBrush scb) - { - var color = new Pango.Color(); - color.Parse(string.Format("#{0}", scb.Color.ToString().Substring(3))); - - var brushAttr = new Pango.AttrForeground(color); - brushAttr.StartIndex = (uint)TextIndexToPangoIndex(span.StartIndex); - brushAttr.EndIndex = (uint)TextIndexToPangoIndex(span.StartIndex + span.Length); - - this.Layout.Attributes.Insert(brushAttr); - } - } - } - - Size = Measure(); - } - - public FormattedTextImpl(Pango.Layout layout) - { - Layout = layout; - Size = Measure(); - } - - public string Text => Layout.Text; - - public Size Constraint => _constraint; - - public Size Size { get; } - - public Pango.Layout Layout { get; } - - public IEnumerable GetLines() - { - return new FormattedTextLine[0]; - } - - public TextHitTestResult HitTestPoint(Point point) - { - int textPosition; - int trailing; - - var isInside = Layout.XyToIndex( - Pango.Units.FromDouble(point.X), - Pango.Units.FromDouble(point.Y), - out textPosition, - out trailing); - - textPosition = PangoIndexToTextIndex(textPosition); - - return new TextHitTestResult - { - IsInside = isInside, - TextPosition = textPosition, - IsTrailing = trailing == 0, - }; - } - - int PangoIndexToTextIndex(int pangoIndex) - { - return Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(Text), 0, Math.Min(pangoIndex, Text.Length)).Length; - } - - public Rect HitTestTextPosition(int index) - { - return Layout.IndexToPos(TextIndexToPangoIndex(index)).ToAvalonia(); - } - - int TextIndexToPangoIndex(int textIndex) - { - return Encoding.UTF8.GetByteCount(textIndex < Text.Length ? Text.Remove(textIndex) : Text); - } - - public IEnumerable HitTestTextRange(int index, int length) - { - var ranges = new List(); - - for (var i = 0; i < length; i++) - { - ranges.Add(HitTestTextPosition(index + i)); - } - - return ranges; - } - - private Size Measure() - { - int width; - int height; - Layout.GetPixelSize(out width, out height); - - return new Size(width, height); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/ImageBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/ImageBrushImpl.cs deleted file mode 100644 index 14c9dee9e2..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/ImageBrushImpl.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering.Utilities; -using global::Cairo; - -namespace Avalonia.Cairo.Media -{ - public class ImageBrushImpl : BrushImpl - { - public ImageBrushImpl( - ITileBrush brush, - IBitmapImpl bitmap, - Size targetSize) - { - var calc = new TileBrushCalculator(brush, new Size(bitmap.PixelWidth, bitmap.PixelHeight), targetSize); - - using (var intermediate = new ImageSurface(Format.ARGB32, (int)calc.IntermediateSize.Width, (int)calc.IntermediateSize.Height)) - { - using (var context = new RenderTarget(intermediate).CreateDrawingContext(null)) - { - var rect = new Rect(0, 0, bitmap.PixelWidth, bitmap.PixelHeight); - - context.Clear(Colors.Transparent); - context.PushClip(calc.IntermediateClip); - context.Transform = calc.IntermediateTransform; - context.DrawImage(bitmap, 1, rect, rect); - context.PopClip(); - } - - var result = new SurfacePattern(intermediate); - - if ((brush.TileMode & TileMode.FlipXY) != 0) - { - // TODO: Currently always FlipXY as that's all cairo supports natively. - // Support separate FlipX and FlipY by drawing flipped images to intermediate - // surface. - result.Extend = Extend.Reflect; - } - else - { - result.Extend = Extend.Repeat; - } - - if (brush.TileMode != TileMode.None) - { - var matrix = result.Matrix; - matrix.InitTranslate(-calc.DestinationRect.X, -calc.DestinationRect.Y); - result.Matrix = matrix; - } - - PlatformBrush = result; - } - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/Imaging/BitmapImpl.cs b/src/Gtk/Avalonia.Cairo/Media/Imaging/BitmapImpl.cs deleted file mode 100644 index 5c1e5e7d96..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/Imaging/BitmapImpl.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using Avalonia.Platform; - -namespace Avalonia.Cairo.Media.Imaging -{ - using System.IO; - using Cairo = global::Cairo; - - public class BitmapImpl : Gdk.Pixbuf, IBitmapImpl - { - public BitmapImpl(Gdk.Pixbuf pixbuf) - :base(pixbuf.SaveToBuffer("png")) - { - } - - public int PixelWidth => Width; - - public int PixelHeight => Height; - - public void Save(string fileName) - { - // TODO: Test - Save(fileName, "png"); - } - - public void Save(Stream stream) - { - var buffer = SaveToBuffer("png"); - stream.Write(buffer, 0, buffer.Length); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs b/src/Gtk/Avalonia.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs deleted file mode 100644 index fa8a3132d5..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering; - -namespace Avalonia.Cairo.Media.Imaging -{ - using System.IO; - using Cairo = global::Cairo; - - public class RenderTargetBitmapImpl : IRenderTargetBitmapImpl - { - - private readonly RenderTarget _renderTarget; - public RenderTargetBitmapImpl(Cairo.ImageSurface surface) - { - Surface = surface; - _renderTarget = new RenderTarget(Surface); - } - - public int PixelWidth => Surface.Width; - - public int PixelHeight => Surface.Height; - - public void Dispose() - { - _renderTarget.Dispose(); - } - - public Cairo.ImageSurface Surface - { - get; - } - - public void Save(string fileName) - { - Surface.WriteToPng(fileName); - } - - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) - { - return _renderTarget.CreateDrawingContext(visualBrushRenderer); - } - - public void Save(Stream stream) - { - var tempFileName = Path.GetTempFileName(); - Surface.WriteToPng(tempFileName); - using (var tempFile = new FileStream(tempFileName, FileMode.Create)) - { - tempFile.CopyTo(stream); - } - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Cairo/Media/LinearGradientBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/LinearGradientBrushImpl.cs deleted file mode 100644 index 1e82da4059..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/LinearGradientBrushImpl.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using Avalonia.Media; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public class LinearGradientBrushImpl : BrushImpl - { - public LinearGradientBrushImpl(ILinearGradientBrush brush, Size destinationSize) - { - var start = brush.StartPoint.ToPixels(destinationSize); - var end = brush.EndPoint.ToPixels(destinationSize); - - this.PlatformBrush = new LinearGradient(start.X, start.Y, end.X, end.Y); - - foreach (var stop in brush.GradientStops) - ((LinearGradient)this.PlatformBrush).AddColorStop(stop.Offset, stop.Color.ToCairo()); - - ((LinearGradient)this.PlatformBrush).Extend = Extend.Pad; - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/RadialGradientBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/RadialGradientBrushImpl.cs deleted file mode 100644 index 03385f8d86..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/RadialGradientBrushImpl.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using Avalonia.Media; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public class RadialGradientBrushImpl : BrushImpl - { - public RadialGradientBrushImpl(IRadialGradientBrush brush, Size destinationSize) - { - var center = brush.Center.ToPixels(destinationSize); - var gradientOrigin = brush.GradientOrigin.ToPixels(destinationSize); - var radius = brush.Radius * Math.Min(destinationSize.Width, destinationSize.Height); - - this.PlatformBrush = new RadialGradient(center.X, center.Y, 1, gradientOrigin.X, gradientOrigin.Y, radius); - this.PlatformBrush.Matrix = Matrix.Identity.ToCairo(); - - foreach (var stop in brush.GradientStops) - { - ((RadialGradient)this.PlatformBrush).AddColorStop(stop.Offset, stop.Color.ToCairo()); - } - - ((RadialGradient)this.PlatformBrush).Extend = Extend.Pad; - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/SolidColorBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/SolidColorBrushImpl.cs deleted file mode 100644 index 86f8aa7f25..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/SolidColorBrushImpl.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public class SolidColorBrushImpl : BrushImpl - { - public SolidColorBrushImpl(Avalonia.Media.ISolidColorBrush brush, double opacityOverride = 1.0f) - { - var color = brush?.Color.ToCairo() ?? new Color(); - - if (brush != null) - color.A = Math.Min(brush.Opacity, color.A); - - if (opacityOverride < 1.0f) - color.A = Math.Min(opacityOverride, color.A); - - this.PlatformBrush = new SolidPattern(color); - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryContextImpl.cs b/src/Gtk/Avalonia.Cairo/Media/StreamGeometryContextImpl.cs deleted file mode 100644 index ca16ab5630..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryContextImpl.cs +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Collections.Generic; -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.RenderHelpers; - -namespace Avalonia.Cairo.Media -{ - using Cairo = global::Cairo; - - public class StreamGeometryContextImpl : IStreamGeometryContextImpl - { - private readonly StreamGeometryImpl _target; - private Point _currentPoint; - public StreamGeometryContextImpl(StreamGeometryImpl target, Cairo.Path path) - { - _target = target; - - _surf = new Cairo.ImageSurface (Cairo.Format.Argb32, 0, 0); - _context = new Cairo.Context (_surf); - this.Path = path; - - if (this.Path != null) - { - _context.AppendPath(this.Path); - } - } - - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection) - { - ArcToHelper.ArcTo(this, _currentPoint, point, size, rotationAngle, isLargeArc, sweepDirection); - _currentPoint = point; - } - - public void BeginFigure(Point startPoint, bool isFilled) - { - if (this.Path == null) - { - _context.MoveTo(startPoint.ToCairo()); - _currentPoint = startPoint; - } - } - - public void CubicBezierTo(Point point1, Point point2, Point point3) - { - if (this.Path == null) - { - _context.CurveTo(point1.ToCairo(), point2.ToCairo(), point3.ToCairo()); - _currentPoint = point3; - } - } - - public void QuadraticBezierTo(Point control, Point endPoint) - { - if (this.Path == null) - { - QuadBezierHelper.QuadraticBezierTo(this, _currentPoint, control, endPoint); - _currentPoint = endPoint; - } - } - - internal bool FillContains(Point point) - { - using (var context = new Cairo.Context(new Cairo.ImageSurface(Cairo.Format.Argb32, 0, 0))) - { - context.AppendPath(Path); - return context.InFill(point.X, point.Y); - } - } - - internal bool StrokeContains(Pen pen, Point point) - { - using (var context = new Cairo.Context(new Cairo.ImageSurface(Cairo.Format.Argb32, 0, 0))) - { - context.AppendPath(Path); - return context.InStroke(point.X, point.Y); - } - } - - public void LineTo(Point point) - { - if (this.Path == null) - { - _context.LineTo(point.ToCairo()); - _currentPoint = point; - } - } - - private readonly Cairo.Context _context; - private readonly Cairo.ImageSurface _surf; - public Cairo.Path Path { get; private set; } - public Rect Bounds { get; private set; } - - public void EndFigure(bool isClosed) - { - if (this.Path == null) - { - if (isClosed) - _context.ClosePath (); - } - } - - public void SetFillRule(FillRule fillRule) - { - _target.FillRule = fillRule; - } - - - public void Dispose() - { - if (this.Path == null) - { - Path = _context.CopyPath(); - Bounds = _context.FillExtents().ToAvalonia(); - } - - _context.Dispose (); - _surf.Dispose (); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryImpl.cs b/src/Gtk/Avalonia.Cairo/Media/StreamGeometryImpl.cs deleted file mode 100644 index b0a8cd4fb0..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryImpl.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using Avalonia.Media; -using Avalonia.Platform; -using System.Collections.Generic; - -namespace Avalonia.Cairo.Media -{ - using Cairo = global::Cairo; - - public class StreamGeometryImpl : IStreamGeometryImpl - { - public StreamGeometryImpl() - { - _impl = new StreamGeometryContextImpl(this, null); - } - - public StreamGeometryImpl(StreamGeometryContextImpl impl) - { - _impl = impl; - } - - public Rect Bounds - { - get { return _impl.Bounds; } - } - - public Cairo.Path Path - { - get { return _impl.Path; } - } - - private readonly StreamGeometryContextImpl _impl; - - private Matrix _transform = Matrix.Identity; - - public Matrix Transform - { - get { return _transform; } - private set { _transform = value; } - } - - public FillRule FillRule { get; set; } - - public IStreamGeometryImpl Clone() - { - return new StreamGeometryImpl(_impl); - } - - public Rect GetRenderBounds(double strokeThickness) - { - // TODO: Calculate properly. - return Bounds.TransformToAABB(Transform).Inflate(strokeThickness); - } - - public IStreamGeometryContextImpl Open() - { - return _impl; - } - - public bool FillContains(Point point) - { - return _impl.FillContains(point); - } - - public IGeometryImpl Intersect(IGeometryImpl geometry) - { - throw new NotImplementedException(); - } - - public bool StrokeContains(Pen pen, Point point) - { - return _impl.StrokeContains(pen, point); - } - - /// - public IGeometryImpl WithTransform(Matrix transform) - { - var result = (StreamGeometryImpl)Clone(); - result.Transform = transform; - return result; - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs b/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs deleted file mode 100644 index 709f1eb22a..0000000000 --- a/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using Avalonia.Cairo; -using Avalonia.Platform; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Avalonia.Cairo")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f999ba8b-64e7-40cc-98a4-003f1852d2a3")] - -[assembly: ExportRenderingSubsystem(OperatingSystemType.WinNT, 3, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.Linux, 2, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.OSX, 3, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] diff --git a/src/Gtk/Avalonia.Cairo/RenderTarget.cs b/src/Gtk/Avalonia.Cairo/RenderTarget.cs deleted file mode 100644 index b18c07377b..0000000000 --- a/src/Gtk/Avalonia.Cairo/RenderTarget.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Runtime.InteropServices; -using Avalonia.Cairo.Media; -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering; -using Gtk; -using DrawingContext = Avalonia.Media.DrawingContext; - -namespace Avalonia.Cairo -{ - using global::Cairo; - - /// - /// A cairo render target. - /// - public class RenderTarget : IRenderTarget - { - private readonly Surface _surface; - private readonly Func _drawableAccessor; - - - /// - /// Initializes a new instance of the class. - /// - /// The window. - /// The width of the window. - /// The height of the window. - public RenderTarget(Func drawable) - { - _drawableAccessor = drawable; - } - - public RenderTarget(ImageSurface surface) - { - _surface = surface; - } - - /// - /// Creates a cairo surface that targets a platform-specific resource. - /// - /// The visual brush renderer to use. - /// A surface wrapped in an . - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) - { - if (_drawableAccessor != null) - return new Media.DrawingContext(_drawableAccessor(), visualBrushRenderer); - if (_surface != null) - return new Media.DrawingContext(_surface, visualBrushRenderer); - throw new InvalidOperationException("Unspecified render target"); - } - - public void Dispose() => _surface?.Dispose(); - } -} diff --git a/src/Gtk/Avalonia.Cairo/app.config b/src/Gtk/Avalonia.Cairo/app.config deleted file mode 100644 index 754c958222..0000000000 --- a/src/Gtk/Avalonia.Cairo/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj b/src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj deleted file mode 100644 index 1142b32dbf..0000000000 --- a/src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - Debug - AnyCPU - {54F237D5-A70A-4752-9656-0C70B1A7B047} - Library - Avalonia.Gtk - Avalonia.Gtk - v4.6.1 - - - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - - - full - true - bin\Release - prompt - 4 - false - - - - - - - - - - - - - Properties\SharedAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - {D211E587-D8BC-45B9-95A4-F297C8FA5200} - Avalonia.Animation - - - {B09B78D8-9B26-48B0-9149-D64A2F120F3F} - Avalonia.Base - - - {7062ae20-5dcc-4442-9645-8195bdece63e} - Avalonia.Diagnostics - - - {62024B2D-53EB-4638-B26B-85EEAA54866E} - Avalonia.Input - - - {EB582467-6ABB-43A1-B052-E981BA910E3A} - Avalonia.Visuals - - - {42472427-4774-4C81-8AFF-9F27B8E31721} - Avalonia.Layout - - - {D2221C82-4A25-4583-9B43-D791E3F6820C} - Avalonia.Controls - - - {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} - Avalonia.Styling - - - {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} - Avalonia.Interactivity - - - - \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/ClipboardImpl.cs b/src/Gtk/Avalonia.Gtk/ClipboardImpl.cs deleted file mode 100644 index db59789bc9..0000000000 --- a/src/Gtk/Avalonia.Gtk/ClipboardImpl.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Threading.Tasks; -using Gdk; -using Avalonia.Input.Platform; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - internal class ClipboardImpl : IClipboard - { - private static Gtk.Clipboard GetClipboard() => Gtk.Clipboard.GetForDisplay(Display.Default, new Atom(IntPtr.Zero)); - - public Task GetTextAsync() - { - var clip = GetClipboard(); - var tcs = new TaskCompletionSource(); - clip.RequestText((_, text) => - { - tcs.TrySetResult(text); - }); - return tcs.Task; - } - - public Task SetTextAsync(string text) - { - using (var cl = GetClipboard()) - cl.Text = text; - return Task.FromResult(0); - } - - public Task ClearAsync() - { - using (var cl = GetClipboard()) - cl.Clear(); - return Task.FromResult(0); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/CursorFactory.cs b/src/Gtk/Avalonia.Gtk/CursorFactory.cs deleted file mode 100644 index bd8166c59e..0000000000 --- a/src/Gtk/Avalonia.Gtk/CursorFactory.cs +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System.Collections.Generic; -using Gdk; -using Avalonia.Input; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - internal class CursorFactory : IStandardCursorFactory - { - public static CursorFactory Instance { get; } = new CursorFactory(); - - private CursorFactory() - { - } - - private static readonly Dictionary CursorTypeMapping = new Dictionary - - { - {StandardCursorType.AppStarting, CursorType.Watch}, - {StandardCursorType.Arrow, CursorType.LeftPtr}, - {StandardCursorType.Cross, CursorType.Cross}, - {StandardCursorType.Hand, CursorType.Hand1}, - {StandardCursorType.Ibeam, CursorType.Xterm}, - {StandardCursorType.No, Gtk.Stock.Cancel}, - {StandardCursorType.SizeAll, CursorType.Sizing}, - //{ StandardCursorType.SizeNorthEastSouthWest, 32643 }, - {StandardCursorType.SizeNorthSouth, CursorType.SbVDoubleArrow}, - //{ StandardCursorType.SizeNorthWestSouthEast, 32642 }, - {StandardCursorType.SizeWestEast, CursorType.SbHDoubleArrow}, - {StandardCursorType.UpArrow, CursorType.BasedArrowUp}, - {StandardCursorType.Wait, CursorType.Watch}, - {StandardCursorType.Help, Gtk.Stock.Help}, - {StandardCursorType.TopSide, CursorType.TopSide}, - {StandardCursorType.BottomSize, CursorType.BottomSide}, - {StandardCursorType.LeftSide, CursorType.LeftSide}, - {StandardCursorType.RightSide, CursorType.RightSide}, - {StandardCursorType.TopLeftCorner, CursorType.TopLeftCorner}, - {StandardCursorType.TopRightCorner, CursorType.TopRightCorner}, - {StandardCursorType.BottomLeftCorner, CursorType.BottomLeftCorner}, - {StandardCursorType.BottomRightCorner, CursorType.BottomRightCorner} - }; - - private static readonly Dictionary Cache = - new Dictionary(); - - private Gdk.Cursor GetCursor(object desc) - { - Gdk.Cursor rv; - var name = desc as string; - if (name != null) - { - var theme = Gtk.IconTheme.Default; - var icon = theme.LoadIcon(name, 32, default(Gtk.IconLookupFlags)); - rv = icon == null ? new Gdk.Cursor(CursorType.XCursor) : new Gdk.Cursor(Display.Default, icon, 0, 0); - } - else - { - rv = new Gdk.Cursor((CursorType)desc); - } - - rv.Owned = false; - return rv; - } - - public IPlatformHandle GetCursor(StandardCursorType cursorType) - { - IPlatformHandle rv; - if (!Cache.TryGetValue(cursorType, out rv)) - { - Cache[cursorType] = - rv = - new PlatformHandle( - GetCursor(CursorTypeMapping[cursorType]).Handle, - "GTKCURSOR"); - } - - return rv; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs b/src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs deleted file mode 100644 index 4e8085a057..0000000000 --- a/src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reactive.Disposables; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Platform; -using Gdk; -using Gtk; -using Action = System.Action; -using WindowEdge = Avalonia.Controls.WindowEdge; - -namespace Avalonia.Gtk -{ - class EmbeddableImpl : TopLevelImpl, IEmbeddableWindowImpl - { -#pragma warning disable CS0067 // Method not used - public event Action LostFocus; -#pragma warning restore CS0067 - - public EmbeddableImpl(DrawingArea area) : base(area) - { - area.Events = EventMask.AllEventsMask; - area.SizeAllocated += Plug_SizeAllocated; - } - - public EmbeddableImpl() : this(new PlatformHandleAwareDrawingArea()) - { - } - - private void Plug_SizeAllocated(object o, SizeAllocatedArgs args) - { - Resized?.Invoke(new Size(args.Allocation.Width, args.Allocation.Height)); - } - - public override Size ClientSize - { - get { return new Size(Widget.Allocation.Width, Widget.Allocation.Height); } - } - - } -} diff --git a/src/Gtk/Avalonia.Gtk/Embedding/GtkAvaloniaControlHost.cs b/src/Gtk/Avalonia.Gtk/Embedding/GtkAvaloniaControlHost.cs deleted file mode 100644 index 5594a3c13f..0000000000 --- a/src/Gtk/Avalonia.Gtk/Embedding/GtkAvaloniaControlHost.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Controls; -using Avalonia.Controls.Embedding; -using Avalonia.Diagnostics; -using Avalonia.Input; -using Avalonia.Interactivity; -using Avalonia.Layout; -using Avalonia.Platform; -using Avalonia.VisualTree; -using Gdk; -using Gtk; - -namespace Avalonia.Gtk.Embedding -{ - public class GtkAvaloniaControlHost : DrawingArea, IPlatformHandle - { - private EmbeddableControlRoot _root; - - public GtkAvaloniaControlHost() - { - _root = new EmbeddableControlRoot(new EmbeddableImpl(this)); - _root.Prepare(); - if (_root.IsFocused) - Unfocus(); - _root.GotFocus += RootGotFocus; - CanFocus = true; - } - - void Unfocus() - { - var focused = (IVisual)FocusManager.Instance.Current; - if (focused == null) - return; - while (focused.VisualParent != null) - focused = focused.VisualParent; - - if (focused == _root) - KeyboardDevice.Instance.SetFocusedElement(null, NavigationMethod.Unspecified, InputModifiers.None); - } - - protected override bool OnFocusOutEvent(EventFocus evnt) - { - Unfocus(); - return false; - } - - private void RootGotFocus(object sender, RoutedEventArgs e) - { - this.HasFocus = true; - GdkWindow.Focus(0); - } - - private Control _content; - - public Control Content - { - get { return _content; } - set - { - _content = value; - if (_root != null) - { - _root.Content = value; - _root.Prepare(); - } - } - } - - IntPtr IPlatformHandle.Handle => PlatformHandleAwareWindow.GetNativeWindow(GdkWindow); - - string IPlatformHandle.HandleDescriptor => "HWND"; - } -} diff --git a/src/Gtk/Avalonia.Gtk/FramebufferManager.cs b/src/Gtk/Avalonia.Gtk/FramebufferManager.cs deleted file mode 100644 index 5ec49fb91f..0000000000 --- a/src/Gtk/Avalonia.Gtk/FramebufferManager.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using Avalonia.Controls.Platform.Surfaces; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - class FramebufferManager : IFramebufferPlatformSurface, IDisposable - { - private readonly TopLevelImpl _window; - private SurfaceFramebuffer _fb; - - public FramebufferManager(TopLevelImpl window) - { - _window = window; - } - - public void Dispose() - { - _fb?.Deallocate(); - } - - public ILockedFramebuffer Lock() - { - if(_window.CurrentDrawable == null) - throw new InvalidOperationException("Window is not in drawing state"); - - var drawable = _window.CurrentDrawable; - var width = (int) _window.ClientSize.Width; - var height = (int) _window.ClientSize.Height; - if (_fb == null || _fb.Width != width || - _fb.Height != height) - { - _fb?.Deallocate(); - _fb = new SurfaceFramebuffer(width, height); - } - _fb.SetDrawable(drawable); - return _fb; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/GtkExtensions.cs b/src/Gtk/Avalonia.Gtk/GtkExtensions.cs deleted file mode 100644 index b9bb9a778a..0000000000 --- a/src/Gtk/Avalonia.Gtk/GtkExtensions.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - public static class GtkExtensions - { - public static Rect ToAvalonia(this Gdk.Rectangle rect) - { - return new Rect(rect.Left, rect.Top, rect.Right, rect.Bottom); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/GtkPlatform.cs b/src/Gtk/Avalonia.Gtk/GtkPlatform.cs deleted file mode 100644 index f449229c53..0000000000 --- a/src/Gtk/Avalonia.Gtk/GtkPlatform.cs +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Reactive.Disposables; -using System.Threading; -using Avalonia.Controls.Platform; -using Avalonia.Input.Platform; -using Avalonia.Input; -using Avalonia.Platform; -using Avalonia.Controls; - -namespace Avalonia -{ - public static class GtkApplicationExtensions - { - public static T UseGtk(this T builder) where T : AppBuilderBase, new() - { - builder.UseWindowingSubsystem(Gtk.GtkPlatform.Initialize, "Gtk"); - return builder; - } - } -} - -namespace Avalonia.Gtk -{ - using System.IO; - using Rendering; - using Gtk = global::Gtk; - - public class GtkPlatform : IPlatformThreadingInterface, IPlatformSettings, IWindowingPlatform, IPlatformIconLoader - { - private static readonly GtkPlatform s_instance = new GtkPlatform(); - private static Thread _uiThread; - - public GtkPlatform() - { - Gtk.Application.Init(); - } - - public Size DoubleClickSize => new Size(4, 4); - - public TimeSpan DoubleClickTime => TimeSpan.FromMilliseconds(Gtk.Settings.Default.DoubleClickTime); - public double RenderScalingFactor { get; } = 1; - public double LayoutScalingFactor { get; } = 1; - - public static void Initialize() - { - AvaloniaLocator.CurrentMutable - .Bind().ToConstant(s_instance) - .Bind().ToSingleton() - .Bind().ToConstant(CursorFactory.Instance) - .Bind().ToConstant(GtkKeyboardDevice.Instance) - .Bind().ToConstant(s_instance) - .Bind().ToConstant(s_instance) - .Bind().ToConstant(new DefaultRenderLoop(60)) - .Bind().ToSingleton() - .Bind().ToConstant(s_instance); - _uiThread = Thread.CurrentThread; - } - - public bool HasMessages() - { - return Gtk.Application.EventsPending(); - } - - public void ProcessMessage() - { - Gtk.Application.RunIteration(); - } - - public void RunLoop(CancellationToken cancellationToken) - { - while (!cancellationToken.IsCancellationRequested) - Gtk.Application.RunIteration(); - } - - public IDisposable StartTimer(TimeSpan interval, Action tick) - { - var result = true; - var handle = GLib.Timeout.Add( - (uint)interval.TotalMilliseconds, - () => - { - tick(); - return result; - }); - - return Disposable.Create(() => result = false); - } - - - - public void Signal() - { - Gtk.Application.Invoke(delegate { Signaled?.Invoke(); }); - } - - public bool CurrentThreadIsLoopThread => Thread.CurrentThread == _uiThread; - - public event Action Signaled; - public IWindowImpl CreateWindow() - { - return new WindowImpl(); - } - - public IEmbeddableWindowImpl CreateEmbeddableWindow() => new EmbeddableImpl(); - - public IPopupImpl CreatePopup() - { - return new PopupImpl(); - } - - public IWindowIconImpl LoadIcon(string fileName) - { - return new IconImpl(new Gdk.Pixbuf(fileName)); - } - - public IWindowIconImpl LoadIcon(Stream stream) - { - return new IconImpl(new Gdk.Pixbuf(stream)); - } - - public IWindowIconImpl LoadIcon(IBitmapImpl bitmap) - { - if (bitmap is Gdk.Pixbuf) - { - return new IconImpl((Gdk.Pixbuf)bitmap); - } - else - { - using (var memoryStream = new MemoryStream()) - { - bitmap.Save(memoryStream); - return new IconImpl(new Gdk.Pixbuf(memoryStream)); - } - } - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/IconImpl.cs b/src/Gtk/Avalonia.Gtk/IconImpl.cs deleted file mode 100644 index 3203e59f21..0000000000 --- a/src/Gtk/Avalonia.Gtk/IconImpl.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Avalonia.Platform; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Gdk; -using System.IO; - -namespace Avalonia.Gtk -{ - class IconImpl : IWindowIconImpl - { - public IconImpl(Pixbuf pixbuf) - { - Pixbuf = pixbuf; - } - - public Pixbuf Pixbuf { get; } - - public void Save(Stream stream) - { - var buffer = Pixbuf.SaveToBuffer("png"); - stream.Write(buffer, 0, buffer.Length); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/Input/GtkKeyboardDevice.cs b/src/Gtk/Avalonia.Gtk/Input/GtkKeyboardDevice.cs deleted file mode 100644 index a97a6190f1..0000000000 --- a/src/Gtk/Avalonia.Gtk/Input/GtkKeyboardDevice.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using Avalonia.Input; - - -namespace Avalonia.Gtk -{ - public class GtkKeyboardDevice : KeyboardDevice - { - public new static GtkKeyboardDevice Instance { get; } = new GtkKeyboardDevice(); - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs b/src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs deleted file mode 100644 index c5de869647..0000000000 --- a/src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using Avalonia.Input; -namespace Avalonia.Gtk -{ - public class GtkMouseDevice : MouseDevice - { - private static readonly GtkMouseDevice s_instance; - - private Point _clientPosition; - - static GtkMouseDevice() - { - s_instance = new GtkMouseDevice(); - } - - private GtkMouseDevice() - { - } - - public static new GtkMouseDevice Instance => s_instance; - - internal void SetClientPosition(Point p) - { - _clientPosition = p; - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/MyClass.cs b/src/Gtk/Avalonia.Gtk/MyClass.cs deleted file mode 100644 index 589431fcb1..0000000000 --- a/src/Gtk/Avalonia.Gtk/MyClass.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace Avalonia.Gtk -{ - public class MyClass - { - public MyClass () - { - } - } -} - diff --git a/src/Gtk/Avalonia.Gtk/PopupImpl.cs b/src/Gtk/Avalonia.Gtk/PopupImpl.cs deleted file mode 100644 index 41ee4354fe..0000000000 --- a/src/Gtk/Avalonia.Gtk/PopupImpl.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using Gtk; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - public class PopupImpl : WindowImpl, IPopupImpl - { - public PopupImpl() - : base(WindowType.Popup) - { - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs b/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs deleted file mode 100644 index 67e5f6dc17..0000000000 --- a/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using Avalonia.Gtk; -using Avalonia.Platform; -using System.Reflection; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. -[assembly: AssemblyTitle("Avalonia.Gtk")] - -[assembly: ExportWindowingSubsystem(OperatingSystemType.WinNT, 3, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] -[assembly: ExportWindowingSubsystem(OperatingSystemType.Linux, 2, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] -[assembly: ExportWindowingSubsystem(OperatingSystemType.OSX, 3, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] - diff --git a/src/Gtk/Avalonia.Gtk/ScreenImpl.cs b/src/Gtk/Avalonia.Gtk/ScreenImpl.cs deleted file mode 100644 index a5082ca59a..0000000000 --- a/src/Gtk/Avalonia.Gtk/ScreenImpl.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using Avalonia.Controls; -using Avalonia.Platform; -using Avalonia.Utilities; -using Gdk; -using Screen = Avalonia.Platform.Screen; -using Window = Gtk.Window; - -namespace Avalonia.Gtk -{ - internal class ScreenImpl : IScreenImpl - { - private Window window; - - public int ScreenCount - { - get => window.Display.DefaultScreen.NMonitors; - } - public Screen[] AllScreens { - get - { - Screen[] screens = new Screen[ScreenCount]; - var screen = window.Display.DefaultScreen; - - for (short i = 0; i < screens.Length; i++) - { - Rectangle geometry = screen.GetMonitorGeometry(i); - Rect geometryRect = new Rect(geometry.X, geometry.Y, geometry.Width, geometry.Height); - Screen s = new Screen(geometryRect, geometryRect, false); - screens[i] = s; - } - - return screens; - } - } - - public ScreenImpl(Window window) - { - this.window = window; - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs b/src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs deleted file mode 100644 index 29f4ce1d15..0000000000 --- a/src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Controls.Platform.Surfaces; -using Avalonia.Platform; -using Cairo; -using Gdk; - -namespace Avalonia.Gtk -{ - class SurfaceFramebuffer : ILockedFramebuffer - { - private Drawable _drawable; - private ImageSurface _surface; - - public SurfaceFramebuffer(int width, int height) - { - _surface = new ImageSurface(Cairo.Format.RGB24, width, height); - } - - public void SetDrawable(Drawable drawable) - { - _drawable = drawable; - _surface.Flush(); - } - - public void Deallocate() - { - _surface.Dispose(); - _surface = null; - } - - public void Dispose() - { - using (var ctx = CairoHelper.Create(_drawable)) - { - _surface.MarkDirty(); - ctx.SetSourceSurface(_surface, 0, 0); - ctx.Paint(); - } - _drawable = null; - } - - public IntPtr Address => _surface.DataPtr; - public int Width => _surface.Width; - public int Height => _surface.Height; - public int RowBytes => _surface.Stride; - //TODO: Proper DPI detect - public Vector Dpi => new Vector(96, 96); - public PixelFormat Format => PixelFormat.Bgra8888; - } -} - diff --git a/src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs b/src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs deleted file mode 100644 index 05dc1bf02d..0000000000 --- a/src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Controls; -using Avalonia.Controls.Platform; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - using global::Gtk; - class SystemDialogImpl : ISystemDialogImpl - { - public Task ShowFileDialogAsync(FileDialog dialog, IWindowImpl parent) - { - var tcs = new TaskCompletionSource(); - var dlg = new global::Gtk.FileChooserDialog(dialog.Title, ((TopLevelImpl)parent)?.Widget.Toplevel as Window, - dialog is OpenFileDialog - ? FileChooserAction.Open - : FileChooserAction.Save, - "Cancel", ResponseType.Cancel, - "Open", ResponseType.Accept) - { - SelectMultiple = (dialog as OpenFileDialog)?.AllowMultiple ?? false, - }; - foreach (var filter in dialog.Filters) - { - var ffilter = new FileFilter() - { - Name = filter.Name + " (" + string.Join(";", filter.Extensions.Select(e => "*." + e)) + ")" - }; - foreach (var ext in filter.Extensions) - ffilter.AddPattern("*." + ext); - dlg.AddFilter(ffilter); - } - dlg.SetFilename(dialog.InitialFileName); - dlg.Modal = true; - - dlg.Response += (_, args) => - { - if (args.ResponseId == ResponseType.Accept) - tcs.TrySetResult(dlg.Filenames); - dlg.Hide(); - dlg.Dispose(); - }; - - dlg.Close += delegate - { - tcs.TrySetResult(null); - dlg.Dispose(); - }; - dlg.Show(); - return tcs.Task; - } - - public Task ShowFolderDialogAsync(OpenFolderDialog dialog, IWindowImpl parent) - { - var tcs = new TaskCompletionSource(); - var dlg = new global::Gtk.FileChooserDialog(dialog.Title, ((TopLevelImpl)parent)?.Widget.Toplevel as Window, - FileChooserAction.SelectFolder, - "Cancel", ResponseType.Cancel, - "Select Folder", ResponseType.Accept) - { - - }; - - dlg.Modal = true; - - dlg.Response += (_, args) => - { - if (args.ResponseId == ResponseType.Accept) - tcs.TrySetResult(dlg.Filename); - - dlg.Hide(); - dlg.Dispose(); - }; - - dlg.Close += delegate - { - tcs.TrySetResult(null); - dlg.Dispose(); - }; - dlg.Show(); - return tcs.Task; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/TopLevelImpl.cs b/src/Gtk/Avalonia.Gtk/TopLevelImpl.cs deleted file mode 100644 index 5c18d015d4..0000000000 --- a/src/Gtk/Avalonia.Gtk/TopLevelImpl.cs +++ /dev/null @@ -1,320 +0,0 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using System.Collections.Generic; -using Avalonia.Input; -using Avalonia.Input.Raw; -using Avalonia.Platform; -using Gdk; -using Action = System.Action; -using WindowEdge = Avalonia.Controls.WindowEdge; -using GLib; -using Avalonia.Rendering; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - public abstract class TopLevelImpl : ITopLevelImpl - { - private IInputRoot _inputRoot; - private Gtk.Widget _widget; - private FramebufferManager _framebuffer; - - private Gtk.IMContext _imContext; - - private uint _lastKeyEventTimestamp; - - private static readonly Gdk.Cursor DefaultCursor = new Gdk.Cursor(CursorType.LeftPtr); - - protected TopLevelImpl(Gtk.Widget window) - { - _widget = window; - _framebuffer = new FramebufferManager(this); - Init(); - } - - void Init() - { - Handle = _widget as IPlatformHandle; - _widget.Events = EventMask.AllEventsMask; - _imContext = new Gtk.IMMulticontext(); - _imContext.Commit += ImContext_Commit; - _widget.Realized += OnRealized; - _widget.Realize(); - _widget.ButtonPressEvent += OnButtonPressEvent; - _widget.ButtonReleaseEvent += OnButtonReleaseEvent; - _widget.ScrollEvent += OnScrollEvent; - _widget.Destroyed += OnDestroyed; - _widget.KeyPressEvent += OnKeyPressEvent; - _widget.KeyReleaseEvent += OnKeyReleaseEvent; - _widget.ExposeEvent += OnExposeEvent; - _widget.MotionNotifyEvent += OnMotionNotifyEvent; - - - } - - public IPlatformHandle Handle { get; private set; } - public Gtk.Widget Widget => _widget; - public Gdk.Drawable CurrentDrawable { get; private set; } - - void OnRealized (object sender, EventArgs eventArgs) - { - _imContext.ClientWindow = _widget.GdkWindow; - } - - public abstract Size ClientSize { get; } - - public Size MaxClientSize - { - get - { - // TODO: This should take into account things such as taskbar and window border - // thickness etc. - return new Size(_widget.Screen.Width, _widget.Screen.Height); - } - } - - public IMouseDevice MouseDevice => GtkMouseDevice.Instance; - - public Avalonia.Controls.WindowState WindowState - { - get - { - switch (_widget.GdkWindow.State) - { - case Gdk.WindowState.Iconified: - return Controls.WindowState.Minimized; - case Gdk.WindowState.Maximized: - return Controls.WindowState.Maximized; - default: - return Controls.WindowState.Normal; - } - } - - set - { - switch (value) - { - case Controls.WindowState.Minimized: - _widget.GdkWindow.Iconify(); - break; - case Controls.WindowState.Maximized: - _widget.GdkWindow.Maximize(); - break; - case Controls.WindowState.Normal: - _widget.GdkWindow.Deiconify(); - _widget.GdkWindow.Unmaximize(); - break; - } - } - } - - public double Scaling => 1; - - public Action Activated { get; set; } - - public Action Closed { get; set; } - - - public Action Deactivated { get; set; } - - public Action Input { get; set; } - - public Action Paint { get; set; } - - public Action Resized { get; set; } - - public Action PositionChanged { get; set; } - - public Action ScalingChanged { get; set; } - - public IEnumerable Surfaces => new object[] - { - Handle, - new Func(() => CurrentDrawable), - _framebuffer - }; - - public IPopupImpl CreatePopup() - { - return new PopupImpl(); - } - - public IRenderer CreateRenderer(IRenderRoot root) - { - return new ImmediateRenderer(root); - } - - public void Invalidate(Rect rect) - { - if (_widget?.GdkWindow != null) - _widget.GdkWindow.InvalidateRect( - new Rectangle((int) rect.X, (int) rect.Y, (int) rect.Width, (int) rect.Height), true); - } - - public Point PointToClient(Point point) - { - int x, y; - _widget.GdkWindow.GetDeskrelativeOrigin(out x, out y); - - return new Point(point.X - x, point.Y - y); - } - - public Point PointToScreen(Point point) - { - int x, y; - _widget.GdkWindow.GetDeskrelativeOrigin(out x, out y); - return new Point(point.X + x, point.Y + y); - } - - public void SetInputRoot(IInputRoot inputRoot) - { - _inputRoot = inputRoot; - } - - - public void SetCursor(IPlatformHandle cursor) - { - _widget.GdkWindow.Cursor = cursor != null ? new Gdk.Cursor(cursor.Handle) : DefaultCursor; - } - - public void Show() => _widget.Show(); - - public void Hide() => _widget.Hide(); - - private static InputModifiers GetModifierKeys(ModifierType state) - { - var rv = InputModifiers.None; - if (state.HasFlag(ModifierType.ControlMask)) - rv |= InputModifiers.Control; - if (state.HasFlag(ModifierType.ShiftMask)) - rv |= InputModifiers.Shift; - if (state.HasFlag(ModifierType.Mod1Mask)) - rv |= InputModifiers.Control; - if(state.HasFlag(ModifierType.Button1Mask)) - rv |= InputModifiers.LeftMouseButton; - if (state.HasFlag(ModifierType.Button2Mask)) - rv |= InputModifiers.RightMouseButton; - if (state.HasFlag(ModifierType.Button3Mask)) - rv |= InputModifiers.MiddleMouseButton; - return rv; - } - - void OnButtonPressEvent(object o, Gtk.ButtonPressEventArgs args) - { - var evnt = args.Event; - var e = new RawMouseEventArgs( - GtkMouseDevice.Instance, - evnt.Time, - _inputRoot, - evnt.Button == 1 - ? RawMouseEventType.LeftButtonDown - : evnt.Button == 3 ? RawMouseEventType.RightButtonDown : RawMouseEventType.MiddleButtonDown, - new Point(evnt.X, evnt.Y), GetModifierKeys(evnt.State)); - Input(e); - } - - void OnScrollEvent(object o, Gtk.ScrollEventArgs args) - { - var evnt = args.Event; - double step = 1; - var delta = new Vector(); - if (evnt.Direction == ScrollDirection.Down) - delta = new Vector(0, -step); - else if (evnt.Direction == ScrollDirection.Up) - delta = new Vector(0, step); - else if (evnt.Direction == ScrollDirection.Right) - delta = new Vector(-step, 0); - if (evnt.Direction == ScrollDirection.Left) - delta = new Vector(step, 0); - var e = new RawMouseWheelEventArgs(GtkMouseDevice.Instance, evnt.Time, _inputRoot, new Point(evnt.X, evnt.Y), delta, GetModifierKeys(evnt.State)); - Input(e); - } - - protected void OnButtonReleaseEvent(object o, Gtk.ButtonReleaseEventArgs args) - { - var evnt = args.Event; - var e = new RawMouseEventArgs( - GtkMouseDevice.Instance, - evnt.Time, - _inputRoot, - evnt.Button == 1 - ? RawMouseEventType.LeftButtonUp - : evnt.Button == 3 ? RawMouseEventType.RightButtonUp : RawMouseEventType.MiddleButtonUp, - new Point(evnt.X, evnt.Y), GetModifierKeys(evnt.State)); - Input(e); - } - - void OnDestroyed(object sender, EventArgs eventArgs) - { - Closed(); - } - - private void ProcessKeyEvent(EventKey evnt) - { - - _lastKeyEventTimestamp = evnt.Time; - if (_imContext.FilterKeypress(evnt)) - return; - var e = new RawKeyEventArgs( - GtkKeyboardDevice.Instance, - evnt.Time, - evnt.Type == EventType.KeyPress ? RawKeyEventType.KeyDown : RawKeyEventType.KeyUp, - Common.KeyTransform.ConvertKey(evnt.Key), GetModifierKeys(evnt.State)); - Input(e); - } - - [ConnectBefore] - void OnKeyPressEvent(object o, Gtk.KeyPressEventArgs args) - { - args.RetVal = true; - ProcessKeyEvent(args.Event); - } - - void OnKeyReleaseEvent(object o, Gtk.KeyReleaseEventArgs args) - { - args.RetVal = true; - ProcessKeyEvent(args.Event); - } - - private void ImContext_Commit(object o, Gtk.CommitArgs args) - { - Input(new RawTextInputEventArgs(GtkKeyboardDevice.Instance, _lastKeyEventTimestamp, args.Str)); - } - - void OnExposeEvent(object o, Gtk.ExposeEventArgs args) - { - CurrentDrawable = args.Event.Window; - Paint(args.Event.Area.ToAvalonia()); - CurrentDrawable = null; - args.RetVal = true; - } - - void OnMotionNotifyEvent(object o, Gtk.MotionNotifyEventArgs args) - { - var evnt = args.Event; - var position = new Point(evnt.X, evnt.Y); - - GtkMouseDevice.Instance.SetClientPosition(position); - - var e = new RawMouseEventArgs( - GtkMouseDevice.Instance, - evnt.Time, - _inputRoot, - RawMouseEventType.Move, - position, GetModifierKeys(evnt.State)); - Input(e); - args.RetVal = true; - } - - public void Dispose() - { - _framebuffer.Dispose(); - _widget.Hide(); - _widget.Dispose(); - _widget = null; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/WindowImpl.cs b/src/Gtk/Avalonia.Gtk/WindowImpl.cs deleted file mode 100644 index ef8f5f95cb..0000000000 --- a/src/Gtk/Avalonia.Gtk/WindowImpl.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Reactive.Disposables; -using Avalonia.Controls; -using Avalonia.Platform; -using Gdk; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - public class WindowImpl : TopLevelImpl, IWindowImpl - { - private Gtk.Window _window; - private Gtk.Window Window => _window ?? (_window = (Gtk.Window)Widget); - - public WindowImpl(Gtk.WindowType type) : base(new PlatformHandleAwareWindow(type)) - { - Init(); - } - - public WindowImpl() - : base(new PlatformHandleAwareWindow(Gtk.WindowType.Toplevel) {DefaultSize = new Gdk.Size(900, 480)}) - { - Init(); - } - - void Init() - { - Window.FocusActivated += OnFocusActivated; - Window.ConfigureEvent += OnConfigureEvent; - _lastClientSize = ClientSize; - _lastPosition = Position; - } - - private Size _lastClientSize; - private Point _lastPosition; - - void OnConfigureEvent(object o, Gtk.ConfigureEventArgs args) - { - var evnt = args.Event; - args.RetVal = true; - var newSize = new Size(evnt.Width, evnt.Height); - - if (newSize != _lastClientSize) - { - Resized(newSize); - _lastClientSize = newSize; - } - - var newPosition = new Point(evnt.X, evnt.Y); - - if (newPosition != _lastPosition) - { - PositionChanged(newPosition); - _lastPosition = newPosition; - } - } - - public override Size ClientSize - { - get - { - int width; - int height; - Window.GetSize(out width, out height); - return new Size(width, height); - } - } - - public IScreenImpl Screen => new ScreenImpl(Window); - - public void Resize(Size value) - { - Window.Resize((int)value.Width, (int)value.Height); - } - - public void SetTitle(string title) - { - Window.Title = title; - } - - void IWindowBaseImpl.Activate() - { - _window.Activate(); - } - - void OnFocusActivated(object sender, EventArgs eventArgs) - { - Activated(); - } - - public void BeginMoveDrag() - { - int x, y; - ModifierType mod; - Window.Screen.RootWindow.GetPointer(out x, out y, out mod); - Window.BeginMoveDrag(1, x, y, 0); - } - - public void BeginResizeDrag(Controls.WindowEdge edge) - { - int x, y; - ModifierType mod; - Window.Screen.RootWindow.GetPointer(out x, out y, out mod); - Window.BeginResizeDrag((Gdk.WindowEdge)(int)edge, 1, x, y, 0); - } - - public Point Position - { - get - { - int x, y; - Window.GetPosition(out x, out y); - return new Point(x, y); - } - set { Window.Move((int)value.X, (int)value.Y); } - } - - public IDisposable ShowDialog() - { - Window.Modal = true; - Window.Show(); - - return Disposable.Empty; - } - - public void SetSystemDecorations(bool enabled) => Window.Decorated = enabled; - - public void SetIcon(IWindowIconImpl icon) - { - Window.Icon = ((IconImpl)icon).Pixbuf; - } - - public void ShowTaskbarIcon(bool value) => Window.SkipTaskbarHint = !value; - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/Windows.cs b/src/Gtk/Avalonia.Gtk/Windows.cs deleted file mode 100644 index fe325f4114..0000000000 --- a/src/Gtk/Avalonia.Gtk/Windows.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Platform; -using Gdk; -using Gtk; -using Window = Gtk.Window; -using WindowType = Gtk.WindowType; - -namespace Avalonia.Gtk -{ - class PlatformHandleAwareWindow : Window, IPlatformHandle - { - public PlatformHandleAwareWindow(WindowType type) : base(type) - { - Events = EventMask.AllEventsMask; - } - - IntPtr IPlatformHandle.Handle => GetNativeWindow(); - public string HandleDescriptor => "HWND"; - - - [DllImport("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)] - static extern IntPtr gdk_win32_drawable_get_handle(IntPtr gdkWindow); - - [DllImport("libgtk-x11-2.0.so.0", CallingConvention = CallingConvention.Cdecl)] - static extern IntPtr gdk_x11_drawable_get_xid(IntPtr gdkWindow); - - [DllImport("libgdk-quartz-2.0-0.dylib", CallingConvention = CallingConvention.Cdecl)] - static extern IntPtr gdk_quartz_window_get_nswindow(IntPtr gdkWindow); - - IntPtr _nativeWindow; - - IntPtr GetNativeWindow() - { - if (_nativeWindow != IntPtr.Zero) - return _nativeWindow; - return _nativeWindow = GetNativeWindow(GdkWindow); - } - - public static IntPtr GetNativeWindow(Gdk.Window window) - { - IntPtr h = window.Handle; - - //Try whatever backend that works - try - { - return gdk_quartz_window_get_nswindow(h); - } - catch - { - } - try - { - return gdk_x11_drawable_get_xid(h); - } - catch - { - } - return gdk_win32_drawable_get_handle(h); - } - - protected override bool OnConfigureEvent(EventConfigure evnt) - { - base.OnConfigureEvent(evnt); - return false; - } - } - - class PlatformHandleAwareDrawingArea : DrawingArea, IPlatformHandle - { - - - - IntPtr IPlatformHandle.Handle => GetNativeWindow(); - public string HandleDescriptor => "HWND"; - IntPtr _nativeWindow; - - IntPtr GetNativeWindow() - { - - if (_nativeWindow != IntPtr.Zero) - return _nativeWindow; - Realize(); - return _nativeWindow = PlatformHandleAwareWindow.GetNativeWindow(GdkWindow); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj b/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj index 59bd58916b..bff41a65eb 100644 --- a/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj +++ b/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj @@ -25,9 +25,7 @@ - - KeyTransform.cs - + diff --git a/src/Gtk/Avalonia.Gtk/KeyTransform.cs b/src/Gtk/Avalonia.Gtk3/KeyTransform.cs similarity index 99% rename from src/Gtk/Avalonia.Gtk/KeyTransform.cs rename to src/Gtk/Avalonia.Gtk3/KeyTransform.cs index 77de8d18a3..de3a4766a1 100644 --- a/src/Gtk/Avalonia.Gtk/KeyTransform.cs +++ b/src/Gtk/Avalonia.Gtk3/KeyTransform.cs @@ -4,11 +4,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Avalonia.Input; -#if GTK3_PINVOKE using Avalonia.Gtk3; -#else -using GdkKey = Gdk.Key; -#endif + namespace Avalonia.Gtk.Common { static class KeyTransform diff --git a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj index 817b753157..368e5986b2 100644 --- a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj +++ b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj @@ -94,10 +94,6 @@ {eb582467-6abb-43a1-b052-e981ba910e3a} Avalonia.Visuals - - {fb05ac90-89ba-4f2f-a924-f37875fb547c} - Avalonia.Cairo - {3e53a01a-b331-47f3-b828-4a5717e77a24} Avalonia.Markup.Xaml diff --git a/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs b/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs index 9de97b41cc..867f740a3a 100644 --- a/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs +++ b/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs @@ -99,7 +99,7 @@ namespace Avalonia.Controls.UnitTests } } - [Fact] + [Fact (Skip = "We don't have rendering modules with dependencies right now")] public void LoadsRenderingModuleWithoutDependenciesWhenNoModuleMatches() { using (AvaloniaLocator.EnterScope()) @@ -107,7 +107,7 @@ namespace Avalonia.Controls.UnitTests ResetModuleLoadStates(); var builder = AppBuilder.Configure() .UseWindowingSubsystem(() => { }) - .UseRenderingSubsystem(() => { }, "Cairo"); + .UseRenderingSubsystem(() => { }, "TBD"); builder.UseAvaloniaModules().SetupWithoutStarting(); Assert.True(DefaultRenderingModule.IsLoaded); Assert.False(Direct2DModule.IsLoaded); diff --git a/tests/Avalonia.RenderTests/Avalonia.Cairo.RenderTests.csproj b/tests/Avalonia.RenderTests/Avalonia.Cairo.RenderTests.csproj deleted file mode 100644 index 98256529bc..0000000000 --- a/tests/Avalonia.RenderTests/Avalonia.Cairo.RenderTests.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - Debug - AnyCPU - {E106CF37-4066-4615-B684-172A6D30B058} - Library - Properties - Avalonia.Cairo.RenderTests - Avalonia.Cairo.RenderTests - v4.6.1 - 512 - - - - true - full - false - ..\..\artifacts\tests\ - TRACE;DEBUG;AVALONIA_CAIRO - prompt - 4 - - - pdbonly - true - ..\..\artifacts\tests\ - TRACE;AVALONIA_CAIRO - prompt - 4 - - - - - - - - - {FB05AC90-89BA-4F2F-A924-F37875FB547C} - Avalonia.Cairo - - - {D211E587-D8BC-45B9-95A4-F297C8FA5200} - Avalonia.Animation - - - {B09B78D8-9B26-48B0-9149-D64A2F120F3F} - Avalonia.Base - - - {D2221C82-4A25-4583-9B43-D791E3F6820C} - Avalonia.Controls - - - {62024B2D-53EB-4638-B26B-85EEAA54866E} - Avalonia.Input - - - {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} - Avalonia.Interactivity - - - {42472427-4774-4C81-8AFF-9F27B8E31721} - Avalonia.Layout - - - {EB582467-6ABB-43A1-B052-E981BA910E3A} - Avalonia.Visuals - - - {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} - Avalonia.Styling - - - - - - - - - - - - - - False - - - False - - - False - - - False - - - - - - - - - - \ No newline at end of file diff --git a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj index a1c323ceb0..445f8b0368 100644 --- a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj +++ b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj @@ -72,9 +72,6 @@ Avalonia.Styling - - - diff --git a/tests/Avalonia.RenderTests/Controls/BorderTests.cs b/tests/Avalonia.RenderTests/Controls/BorderTests.cs index ef33ecad8e..3bd5a6e1cb 100644 --- a/tests/Avalonia.RenderTests/Controls/BorderTests.cs +++ b/tests/Avalonia.RenderTests/Controls/BorderTests.cs @@ -7,9 +7,7 @@ using Avalonia.Layout; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Controls -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Controls @@ -149,11 +147,8 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else + [Fact] -#endif public async Task Border_Centers_Content_Horizontally() { Decorator target = new Decorator @@ -180,11 +175,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else [Fact] -#endif public async Task Border_Centers_Content_Vertically() { Decorator target = new Decorator @@ -211,11 +202,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else [Fact] -#endif public async Task Border_Stretches_Content_Horizontally() { Decorator target = new Decorator @@ -242,11 +229,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else [Fact] -#endif public async Task Border_Stretches_Content_Vertically() { Decorator target = new Decorator @@ -273,11 +256,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else [Fact] -#endif public async Task Border_Left_Aligns_Content() { Decorator target = new Decorator @@ -304,11 +283,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else [Fact] -#endif public async Task Border_Right_Aligns_Content() { Decorator target = new Decorator @@ -335,11 +310,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else [Fact] -#endif public async Task Border_Top_Aligns_Content() { Decorator target = new Decorator @@ -366,11 +337,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#else [Fact] -#endif public async Task Border_Bottom_Aligns_Content() { Decorator target = new Decorator diff --git a/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs b/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs index e4630d8265..8356e78cc3 100644 --- a/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs +++ b/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs @@ -8,9 +8,7 @@ using Avalonia.Layout; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Controls -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Controls diff --git a/tests/Avalonia.RenderTests/Controls/ImageTests.cs b/tests/Avalonia.RenderTests/Controls/ImageTests.cs index 9c1d3624d1..593593ba3c 100644 --- a/tests/Avalonia.RenderTests/Controls/ImageTests.cs +++ b/tests/Avalonia.RenderTests/Controls/ImageTests.cs @@ -8,9 +8,7 @@ using Avalonia.Media; using Avalonia.Media.Imaging; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Controls -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Controls diff --git a/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs b/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs index 5b1d76cd0f..a5d06a1b0e 100644 --- a/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs +++ b/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs @@ -6,9 +6,7 @@ using Avalonia.Layout; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Controls -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Controls diff --git a/tests/Avalonia.RenderTests/GeometryClippingTests.cs b/tests/Avalonia.RenderTests/GeometryClippingTests.cs index a1ce8097bd..01af638e6d 100644 --- a/tests/Avalonia.RenderTests/GeometryClippingTests.cs +++ b/tests/Avalonia.RenderTests/GeometryClippingTests.cs @@ -7,9 +7,7 @@ using System.Text; using Xunit; using System.Threading.Tasks; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests diff --git a/tests/Avalonia.RenderTests/Media/BitmapTests.cs b/tests/Avalonia.RenderTests/Media/BitmapTests.cs index 33c14fb975..f01f78ae94 100644 --- a/tests/Avalonia.RenderTests/Media/BitmapTests.cs +++ b/tests/Avalonia.RenderTests/Media/BitmapTests.cs @@ -13,9 +13,7 @@ using Avalonia.Media.Imaging; using Avalonia.Platform; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Media -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Media @@ -105,11 +103,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImagesNoRenderer(testName); } -#if AVALONIA_CAIRO - //wontfix -#else [Theory] -#endif [InlineData(PixelFormat.Bgra8888), InlineData(PixelFormat.Rgba8888)] public void WritableBitmapShouldBeUsable(PixelFormat fmt) { diff --git a/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs b/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs index 4f8aeb93ac..a8f9d42c1e 100644 --- a/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs +++ b/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs @@ -9,9 +9,7 @@ using System.Linq; using System.Text; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Media -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else @@ -86,11 +84,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media widthConstraint); } -#if AVALONIA_CAIRO - [Theory(Skip = "TODO: Font scaling currently broken on cairo")] -#else + [Theory] -#endif [InlineData("", FontSize, 0, FontSizeHeight)] [InlineData("x", FontSize, 7.20, FontSizeHeight)] [InlineData(stringword, FontSize, 28.80, FontSizeHeight)] @@ -114,12 +109,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media Assert.Equal(expHeight, linesHeight, 2); } - -#if AVALONIA_CAIRO - [Theory(Skip = "TODO: Font scaling currently broken on cairo")] -#else + [Theory] -#endif [InlineData("", 1, -1, TextWrapping.NoWrap)] [InlineData("x", 1, -1, TextWrapping.NoWrap)] [InlineData(stringword, 1, -1, TextWrapping.NoWrap)] @@ -142,12 +133,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media var lines = constrained.GetLines().ToArray(); Assert.Equal(linesCount, lines.Count()); } - -#if AVALONIA_CAIRO - [Theory(Skip = "TODO: Font scaling currently broken on cairo")] -#else + [Theory] -#endif [InlineData("x", 0, 0, true, false, 0)] [InlineData(stringword, -1, -1, false, false, 0)] [InlineData(stringword, 25, 13, true, false, 3)] @@ -181,12 +168,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media Assert.Equal(isInside, htRes.IsInside); Assert.Equal(isTrailing, htRes.IsTrailing); } - -#if AVALONIA_CAIRO - [Theory(Skip = "TODO: Font scaling currently broken on cairo")] -#else + [Theory] -#endif [InlineData("", 0, 0, 0, 0, FontSizeHeight)] [InlineData("x", 0, 0, 0, 7.20, FontSizeHeight)] [InlineData("x", -1, 7.20, 0, 0, FontSizeHeight)] @@ -207,12 +190,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media Assert.Equal(width, r.Width, 2); Assert.Equal(height, r.Height, 2); } - -#if AVALONIA_CAIRO - [Theory(Skip = "TODO: Font scaling currently broken on cairo")] -#else + [Theory] -#endif [InlineData("x", 0, 200, 200 - 7.20, 0, 7.20, FontSizeHeight)] [InlineData(stringword, 0, 200, 171.20, 0, 7.20, FontSizeHeight)] [InlineData(stringword, 3, 200, 200 - 7.20, 0, 7.20, FontSizeHeight)] @@ -230,12 +209,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media Assert.Equal(width, r.Width, 2); Assert.Equal(height, r.Height, 2); } - -#if AVALONIA_CAIRO - [Theory(Skip = "TODO: Font scaling currently broken on cairo")] -#else + [Theory] -#endif [InlineData("x", 0, 200, 100 - 7.20 / 2, 0, 7.20, FontSizeHeight)] [InlineData(stringword, 0, 200, 85.6, 0, 7.20, FontSizeHeight)] [InlineData(stringword, 3, 200, 100 + 7.20, 0, 7.20, FontSizeHeight)] @@ -253,12 +228,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media Assert.Equal(width, r.Width, 2); Assert.Equal(height, r.Height, 2); } - -#if AVALONIA_CAIRO - [Theory(Skip = "TODO: Font scaling currently broken on cairo")] -#else + [Theory] -#endif [InlineData("x", 0, 1, "0,0,7.20,13.59")] [InlineData(stringword, 0, 4, "0,0,28.80,13.59")] [InlineData(stringmiddlenewlines, 10, 10, "0,13.59,57.61,13.59")] diff --git a/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs b/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs index b8f81696b1..6381bceadc 100644 --- a/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs +++ b/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs @@ -9,9 +9,7 @@ using Avalonia.Media; using Avalonia.Media.Imaging; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Media -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Media @@ -366,11 +364,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "TileMode.FlipX not yet supported on cairo")] -#else + [Fact] -#endif public async Task ImageBrush_NoStretch_FlipX_TopLeftDest() { Decorator target = new Decorator @@ -393,12 +388,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "TileMode.FlipY not yet supported on cairo")] -#else + [Fact] -#endif public async Task ImageBrush_NoStretch_FlipY_TopLeftDest() { Decorator target = new Decorator diff --git a/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs b/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs index e7889672b9..062c7d88f5 100644 --- a/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs +++ b/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs @@ -10,9 +10,7 @@ using System.Text; using System.Threading.Tasks; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Media -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Media diff --git a/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs b/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs index 383c8ee0f8..b3e214f863 100644 --- a/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs +++ b/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs @@ -10,9 +10,7 @@ using System.Text; using System.Threading.Tasks; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Media -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Media diff --git a/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs b/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs index 9ec901535a..60589f6a00 100644 --- a/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs +++ b/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs @@ -9,9 +9,7 @@ using Avalonia.Media; using Avalonia.Media.Imaging; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Media -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Media @@ -85,10 +83,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL + +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -142,9 +138,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -171,9 +165,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -200,9 +192,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -253,9 +243,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -337,9 +325,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "TileMode.FlipX not yet supported on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -367,9 +353,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "TileMode.FlipY not yet supported on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -397,9 +381,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] @@ -427,9 +409,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Font scaling currently broken on cairo")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] diff --git a/tests/Avalonia.RenderTests/OpacityMaskTests.cs b/tests/Avalonia.RenderTests/OpacityMaskTests.cs index b49f04f3ee..b53d9a70b1 100644 --- a/tests/Avalonia.RenderTests/OpacityMaskTests.cs +++ b/tests/Avalonia.RenderTests/OpacityMaskTests.cs @@ -7,9 +7,7 @@ using System.Text; using Xunit; using System.Threading.Tasks; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests diff --git a/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs b/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs index 9687e817e3..257607d5b5 100644 --- a/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs @@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Shapes -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Shapes diff --git a/tests/Avalonia.RenderTests/Shapes/LineTests.cs b/tests/Avalonia.RenderTests/Shapes/LineTests.cs index a5897a2948..a30882fb0d 100644 --- a/tests/Avalonia.RenderTests/Shapes/LineTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/LineTests.cs @@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Shapes -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Shapes @@ -21,12 +19,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes : base(@"Shapes\Line") { } - -#if !AVALONIA_CAIRO + [Fact] -#else - [Fact(Skip = "Fails on Cairo")] -#endif public async Task Line_1px_Stroke() { Decorator target = new Decorator @@ -45,12 +39,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if !AVALONIA_CAIRO + [Fact] -#else - [Fact(Skip = "Fails on Cairo")] -#endif public async Task Line_1px_Stroke_Reversed() { Decorator target = new Decorator diff --git a/tests/Avalonia.RenderTests/Shapes/PathTests.cs b/tests/Avalonia.RenderTests/Shapes/PathTests.cs index 0fc3246635..9a580794f8 100644 --- a/tests/Avalonia.RenderTests/Shapes/PathTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/PathTests.cs @@ -7,9 +7,7 @@ using Avalonia.Layout; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Shapes -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Shapes @@ -25,11 +23,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes { } -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task Line_Absolute() { Decorator target = new Decorator @@ -49,12 +44,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task Line_Relative() { Decorator target = new Decorator @@ -74,12 +65,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task HorizontalLine_Absolute() { Decorator target = new Decorator @@ -99,12 +86,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task HorizontalLine_Relative() { Decorator target = new Decorator @@ -124,12 +107,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task VerticalLine_Absolute() { Decorator target = new Decorator @@ -149,12 +128,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task VerticalLine_Relative() { Decorator target = new Decorator @@ -174,12 +149,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task CubicBezier_Absolute() { Decorator target = new Decorator @@ -200,12 +171,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task CubicBezier_Relative() { Decorator target = new Decorator @@ -226,12 +193,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task Arc_Absolute() { Decorator target = new Decorator @@ -252,12 +215,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Broken in Cairo: waiting for Skia")] -#else + [Fact] -#endif public async Task Arc_Relative() { Decorator target = new Decorator @@ -375,9 +334,7 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Path with StrokeDashCap, StrokeStartLineCap, StrokeEndLineCap rendering is not implemented in Cairo yet")] -#elif AVALONIA_SKIA_SKIP_FAIL +#if AVALONIA_SKIA_SKIP_FAIL [Fact(Skip = "FIXME")] #else [Fact] diff --git a/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs b/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs index 415f0b4e85..aae5706810 100644 --- a/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs @@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Shapes -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Shapes @@ -21,12 +19,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes : base(@"Shapes\Polygon") { } - -#if AVALONIA_CAIRO - [Fact(Skip = "Caused by cairo bug")] -#else + [Fact] -#endif public async Task Polygon_1px_Stroke() { Decorator target = new Decorator @@ -48,11 +42,7 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes CompareImages(); } -#if AVALONIA_CAIRO - [Fact(Skip = "Caused by cairo bug")] -#else [Fact] -#endif public async Task Polygon_NonUniformFill() { Decorator target = new Decorator diff --git a/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs b/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs index 684529dd4b..3b586d55ea 100644 --- a/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs @@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Shapes -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Shapes @@ -22,11 +20,7 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes { } -#if AVALONIA_CAIRO - [Fact(Skip = "Caused by cairo bug")] -#else [Fact] -#endif public async Task Polyline_1px_Stroke() { var polylinePoints = new Point[] { new Point(0, 0), new Point(5, 0), new Point(6, -2), new Point(7, 3), new Point(8, -3), @@ -49,12 +43,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } - -#if AVALONIA_CAIRO - [Fact(Skip = "Caused by cairo bug")] -#else + [Fact] -#endif public async Task Polyline_10px_Stroke_PenLineJoin() { var polylinePoints = new Point[] { new Point(0, 0), new Point(5, 0), new Point(6, -2), new Point(7, 3), new Point(8, -3), diff --git a/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs b/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs index 5fa424103f..d48765a360 100644 --- a/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs @@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes; using Avalonia.Media; using Xunit; -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests.Shapes -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests.Shapes diff --git a/tests/Avalonia.RenderTests/TestBase.cs b/tests/Avalonia.RenderTests/TestBase.cs index 80168c1237..e733f59059 100644 --- a/tests/Avalonia.RenderTests/TestBase.cs +++ b/tests/Avalonia.RenderTests/TestBase.cs @@ -14,17 +14,13 @@ using System.Threading.Tasks; using System; using System.Threading; -#if AVALONIA_CAIRO -using Avalonia.Cairo; -#elif AVALONIA_SKIA +#if AVALONIA_SKIA using Avalonia.Skia; #else using Avalonia.Direct2D1; #endif -#if AVALONIA_CAIRO -namespace Avalonia.Cairo.RenderTests -#elif AVALONIA_SKIA +#if AVALONIA_SKIA namespace Avalonia.Skia.RenderTests #else namespace Avalonia.Direct2D1.RenderTests @@ -37,9 +33,7 @@ namespace Avalonia.Direct2D1.RenderTests static TestBase() { -#if AVALONIA_CAIRO - CairoPlatform.Initialize(); -#elif AVALONIA_SKIA +#if AVALONIA_SKIA SkiaPlatform.Initialize(); #else Direct2D1Platform.Initialize(); diff --git a/tests/Avalonia.RenderTests/app.config b/tests/Avalonia.RenderTests/app.config deleted file mode 100644 index 24ccddee3e..0000000000 --- a/tests/Avalonia.RenderTests/app.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_1px_Border.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_1px_Border.expected.png deleted file mode 100644 index 24239d5799ab3308d44bf2ab283758dc0202c9b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggiQCh~F{C2y?d6Sv%?<)A2iyM?yPcbPh2!_C+c#Ot_<%YX7!CwopH zT&&Nl(zxO3{rvlz4{$d+2yn2B5<@o(TC%sVM%xNb!1@J z*w6hZk(GggiPzJ`F{C2y?bVIE4Gugk2iyNuvng7}DIQ8!+sU@)6BAGi1H+9ghSBRH zZv>hZoMV!=l|Le$Xukg4E%rtQ0S=~7Vu*%8!I^2!!coe${k}9u$q-*SzP(`7@7M#h9+25ad2&&-vu`pQoqbvUKezArishE?GVM%xNb!1@J z*w6hZk(GggNzl{9F{C2y?Nvj*!v;JojyM1R-+XC9L84C6lv6&%@(-H0ftnZ?9t2#^ zxw*MuQO<*TtZ_Ae9rpbP0l+XkKY#Dbw diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Horizontally.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Horizontally.expected.png deleted file mode 100644 index 77a7601e1348985970742148a38a0d56bb43d6ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yu_bxCyDDd^)E+vHWA)s?x=e)(d7jZ+<^{0>krzjQ@)SB$v|g>_?1oIjk)c( zF4k?Y>9*G=WtzR$xCb@PiMM+kemq9{_Q#OEq|Dg+Mds_P>)$kgs-VOnAHf`t$5H9C;@`$v(N6m?pPwgTM~gz6gPTo(lJ$U0;0t`ccCj zrQ+SZ?sogl+q~_3stV^Z$N)`8!bTi%EXc8QZq%2YgJ4 zPnnNC{yaVR-2UJB#a3>%=Q7=Ip6~C!o6U3YRN1%V)Aj6<<`&Pm-2DIZd+p?c*Lt@c zAMA~|>v+defrI7HC)t$f|NMzN*uA&2fn7OlA|Te_d&Sn!1HGG?At~=b{R`{aH#8o6 SJ6r4n67h8Pb6Mw<&;$V4vhaQY diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Fill.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Fill.expected.png deleted file mode 100644 index 8e08d02f66d15179e5fd004f39bb13cbd4fe274f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 601 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggiP_V|F{C2y?d5}<4F(J>2Q&WLuJ)K$$lYNq6T@l^)Bpr#rDy(^>}|HS vWlUjyUX$RcAi%;jN(}Wd07osue&b`j+h#Kt7)_eY2omvh^>bP0l+XkKIR;Xb diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Left_Aligns_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Left_Aligns_Content.expected.png deleted file mode 100644 index 5f0166406b236459cb9bac884ad96469e7814b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yu_bxCyD z7*a9k?X5(=M-B`P7Y|m5oPSokr$>(M{iVN(Djr{oW1i*wz=W;Nw#-&Sz;gbcg^2h@HRKae0%l5uw~P>$g(s!DAZ_AxO?;CmZLon z#Ap8FFWMrXY?EUk_@nnul4FGGgzF#wU3;Bc#FKZ>=vc(G!>?a{tSS2UqptqPp8rX2 zvi7sxlezxUDt^lx-9JxrF3z7(9Y?#}y}z>F%(CY==6^S7 zuHK)I2TkYqt~E5=aUewDvj68Qv2N+&m`n4XweD9H;9zQ07$pX27;KomBkg95Sb^=$ h23Zzx`eOL!Tn|jO3tY^m9=-??@pScbS?83{1OOxT(y9Oe diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Margin_Offsets_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Margin_Offsets_Content.expected.png deleted file mode 100644 index 1fa36969e55506aebd240a0181de8f5fa560cc73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggNz2p4F{C2y?R7`4LkOBO=WnG(qD2zKPHVGB?Rkap}xW zbKStxFP8mkyg24rnF!4Px%Te;$2=A|Fr+yr+%f!4pg+bnI=VgZX+_1b?~l1x$0|S3 ztwJI(*YoJkhC7w!@jQH9guS_kE|Oby*tE3=6;gv43HbA6wbY1&3OD)OWLJ$g{$YYX ziC-k_`t2MzHyg3TvcupsA)Alqfb#)LZ9ExtR%zcj6AR7}VYXp_P;=cgZBhBxIjeoT zCFX7#n~9f4*pC+gBH4)TA7TNKha_Xm0C59#>u!79WOkKy5)%&ypRlaH7o4d}v3IA= zgw|H6JF6a8{uJc?`fh;tD{Y6D)+nT&MacbiM?u)8w9PI)1VRe3%jJOHwk&MQt?2+8 zj`UZr1bSJmwjgf~!2XW(i_UfeY>q{fw-AK6k$wwNAn`Om4zb3#%){e#f4P1N1_RvQr!5XfZMqYtE(``(tG3k!1MK|B;s_!}PDK@+ z39Fg1SudU&WfL-avzj}TP9K;EXx z!MvM{_*0RTAx2Qo#u*@+<*Da)V_s%4zP(&b%APa+lcg3$q2e@8Bn;t|dg^P8Qldk7 zH>A~_QCd?{*>#NZb3{R3JSFD|=kwfQt%Ms=vV-YDp0Ov=YbGbzNPNKR+j9ajkXFZg6%h*nw+d;MCCl(ll^BW(u!9v*7a7ELm%u9E4V>YoIC;M?IBZqWCnl zY*VtnDiH|f-dTk~#+oFytV#@m$vbOnF9;f`epg30&yccz!e5K`M6{vpg z`=Pue#!B>kt+EyEr<}Jtk67@x^>TLSDKTC#GW@%N)3qK zl3Fc~0^);=P`(-vBPKw6PC3yI-hy*5A-fsIlhrs3GQxTCP;hV)1_yD3)=1q_P9t$; zAg`|Vag1+{<#N*&+)Eg-631jKp^~~o&ysQ$zTauhu$d>qvg;0xDNL|zd&`7-?`2^L zKTE8{zo>gsJxq@Zo9>(jN($2U(Zwy>n^WrUs2h4ZQ`IXMd?bhpxWW6KgbnJojco3}3-SSN+PwtG0Hu_sU?xbQHy<)GV&ASkNXq6#;Cp*GMls1E uVM%xNb!1@J z*w6hZk(GggNz2p4F{C2y?R7`4LkOBO=WnG(qD2z(My-{9|m+(HvNSm;aJ0i_TipO!PH zFpj(B?AfD7=68Gk|GNG7ca5x^HFK_Si}>IjCSX>c!)m#$_g7xdjiis$LlnBxyPAvp zdV8mS{xxNL<=*b2X?j2Orfsi$xSWN_Q9)po7_4DXrhRUv_Y5i_2A}*C4*9tDnm{r-UW|G>xxO diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Horizontally.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Horizontally.expected.png deleted file mode 100644 index e255633894cf752016d95467835891c05972557a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(Ggg>9D7ZV@O5Z+nbJlB90Ob7aNOr1obWa{(wuab@B_z2x;*RvC}9+TL=sqynuE}4(V^99xmeoOiM zpt||MeIX8(Mh6Sc3EhUphqs-(Znz;`eZOPg@iWZ7=bWx&E;}Q}eP}X^(e|j@Yp-uN zTpiVXJLi}RqT(|NPNC=>vtt{+=*ug&$In|$zvq{ z>3#CLV{4x6J)fL+?26PL*7Id-mD^+bSDIG%`rS*4?Z27V|7_-?8)jMm;mdKI;Vst0BgwS(EtDd diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Vertically.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Vertically.expected.png deleted file mode 100644 index e255633894cf752016d95467835891c05972557a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(Ggg>9D7ZV@O5Z+nbJlB90Ob7aNOr1obWa{(wuab@B_z2x;*RvC}9+TL=sqynuE}4(V^99xmeoOiM zpt||MeIX8(Mh6Sc3EhUphqs-(Znz;`eZOPg@iWZ7=bWx&E;}Q}eP}X^(e|j@Yp-uN zTpiVXJLi}RqT(|NPNC=>vtt{+=*ug&$In|$zvq{ z>3#CLV{4x6J)fL+?26PL*7Id-mD^+bSDIG%`rS*4?Z27V|7_-?8)jMm;mdKI;Vst0BgwS(EtDd diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Top_Aligns_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Top_Aligns_Content.expected.png deleted file mode 100644 index ca04ee9121003564bc934fe149f4116418b6c783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yu_bxCyD5~5}&o0Hi7Tg;?C6^d$9ITsAtdg>L=24w{U(ZOS z0ZjsecbD@L&waic&iGzk`p1W`)eX^KHdtLWJ7gPaX?6C7qXH+(A=kz?b=9@|j&&tC zPkXPR&u9F(qP6vam}QdV5B0{H+422x@#4o5UhDCt*squW_V-N9%*Xqi_>Dgo_9gzw z@5?WrKR#1qb#}HyasNZH9nB6A|MaeX&iu4<|G(Xqa*O9Z+p+k~^W*C8 zP1)Y3mVdi`UC%CQZt;xA&Hq3Do@#hwS9h7f4)N929o8HyjSdm}n%`X8ugJ4K;pMdi z_C^H(4yI9J@Pz@t_?g;$x3m%#zfl0EHHHuJzxc#fsNG++H2MZe#M9N!Wt~$(69A&y B+64dr diff --git a/tests/TestFiles/Cairo/Controls/CustomRender/Clip.expected.png b/tests/TestFiles/Cairo/Controls/CustomRender/Clip.expected.png deleted file mode 100644 index c64045d17e89beba95e3c53999ec419f1e0203a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807 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 diff --git a/tests/TestFiles/Cairo/Controls/CustomRender/Opacity.expected.png b/tests/TestFiles/Cairo/Controls/CustomRender/Opacity.expected.png deleted file mode 100644 index 66d12819f43f98f17113f8b7e753f127bdb3786a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 988 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(Gggxy{qXF{C2y?M=h17hdZ7L^FEVoc+GB-#kAe*VNwFh8JiF14D!D*Mz&5 z_b1nw=KDYYn)2`9^y!le_+xtt&GPl1fBmce{&;4#f_7hg>p{Dj3+J3S{aX>YJo}ZG z@uIc!x|(Z^uYbAN^Q8T2#oC{H&B`a(vmCO!CA0k*-^Z_2doEpbc-DW0|IKnq2eX37 z%3^==Ia!(<6gWV{n=iW8W*1t_>!1Ab_m8wavh3Mnc6$!*{MC2-Wra~(OkaN1?dUag zSvPe)zWKvX;?BzR$9C`Jn%}#)a9`T3Z4PB+M{d25dGui2-r1ddX8b;}?v2ibvm3eW z*w!CEY`SajT-K!T50W=pzI)%bJwkwm$x&gH7{D+n6FYIRVz*ntcE01Y!Ld_h<9D6o z-L=CXt9tYD(;MgXJb!%o*rEOw3jgPyVyBZA198TXxZhv+t&` zSMGebA-^v2d-mNY{}qmZt}@;Kil&t_dkF8@s46$wSDo{wbmzi9+$-RKjZ&r yqJLcX-PWCL=bwFjER)yE49qAD3<>qUALY-oh3n5a=>*J~3=E#GelF{r5}E+GL_jM5 diff --git a/tests/TestFiles/Cairo/Controls/CustomRender/OpacityMask.expected.png b/tests/TestFiles/Cairo/Controls/CustomRender/OpacityMask.expected.png deleted file mode 100644 index 212a4f1eaa6e207ae9446bd60b2ef3cba7858a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5622 zcmZ`-ZA@F|6?T_yUD{=oA8Z;*F;diJleaOcYT76PmnapDDqu^74F>F$jYY8qE+jJ{ z20Kcp(b6g=TM612xJs0<0JaCgILsK9B`k?)@Cb37Tw)jkj}o{heAtE&hwu8e)6-toLw)czAO+3b{%=|@KN}A2mAWwH{iRe(A*9`UO0I)=a9fW zwtE47dGUC5Zni+sV|ZojgRct&DPJ5poc)W_aum7eEMF*Xm}xtkdhWf;=MS&^%AdZs z>62aUjUE5}=Y@~HRsFTJb35|i`S{ga13Nk{C8zGy{pZCCe`~rv{j_G(==+Do@w?;b zrP08icT4lVc6-ei-wAZ*ReH>&b`6SHRooB8uZC74Z-gc$QO~ltJ{p-_3oD*=33V%o z)iR^g*z2pJ3k@Nme&e3y%gp+BriAB*htfV%8Snd(oGqd0iRppp#&|db^+#UK^oA@A zvq(pOczMC)Pr4hLG7N<02gAnn=&8(fPu7T|)aKV8+WL36swQ996rP@o7*(FEdtRX+ zYe$Z`&|}^n_6E+D*neM|bjPZCMEiJO|7pNrQ`oo1QG;4v8}_4$%His0Yjo+R!G;!@ zx+RiUiKwgD?NpXqdu6ddgs)5*)Wavk_Q`phugN@HJXPKlhCR7; zDT^(SPAsSA@NoxuipNA6XTsPC!&+zk=c0?iLX1FaOAPjXnXazjYNADlN3wK9`XfG$ ziYm@nObF1-U(G3Nf%b07`@BH3N{X!$mcq%kWFCm2dWrvm=wYz#7MC6jxCSZO7hhf- zcL7ZXU8T%aw|;U$>AP%f1$|GR8Oa+cL+c+O=ZYO8w!)ztwG?U zG1OP(#a0X}P&LC_2_JDwNZInl_9C5a)gwr_*Tsek*O=+as_5ZVOZ{)yiN&;l&J-L7 zyf%j!8spixkC>!OeKk#(pE1(H&wzf=`4s3JGj`fP;7XY!eS@)zixUWd24e0<`srqs zyr)Ip^ME&<)!9L1hP~`6BN@_beYJ9HOG%X%p^Ibh@@aS zW-d8Itg=hvOi?Y5X2DTKFP3Pv{%X=J7$uPn4vqvuWg$$OL%+Odf`c&G;FD+Ed9^R? zF9TXPznTZWa>Q?$Bw5b~PC(a^*5;on2>*bsNutkl0ciybFETAax-7%NLYgetce~at z*NhycAw~0QI7c%E5=Fux+MythNQwx`TS6e^Gb2d5fuSkVv&{Xk1xc&G!(I;*icQwm>Li> z#|9e`V_G^A-Cv|=IlZUi7!}1%;XfpboKlH2&lv#IDv2G#SIG%6X2$eVeBd)k!q_4( zFk)sQ1x$mt*)6HuWO@`m=kDOM&bH??gz3Zq!XgbqLzs@C6NXC!j?1`j(oyU}Yu#DS zIL34kC4ZDI`2a-Hs48VpYz|NV`1Z?7%O~AqsMi)>jbqH`{*I{fC`fyKXgWQ#i8TMA9 z#bs-Xb^-4oHja{3@ateN?lqih_LWw+<%IQdfPmK|lp01^5M%Rm^MOF4HB$%&9v5O6 zHZh`!m#N8}_f2-63C_zO594oFk9sy|D6*Crh^s)A4+-ffbpCdO1ac4;bH(EN~L;#g~6qE<7nhg|GVDyQTjlKjjFL!khj$0?GNQW zaFe8-jzsiu88ko}!(w9-UakY3uZ#v}=2PG%YAb@e)M9+sSJ${rYjrB4W+2^6aQaQ#Ei)X#Rlq5pD^M-pc6K7+e!x z_3G97m9Zxm#M!!y$eLAUL?TbO=bv1NzBXs`izEMw+)&g-uc$mjL3^}4VhiWP)#T0< zn_}A;X^-rz*8fy@D!O714bK?8`Vx;xrC9Xplk`>5m5!RM`nMC`kb1Jbki)Km)MQQa UPj?#|tFPPDeBD#La5>z6KFVnD#3>0a2b|BP!i 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 EZxLVt5C8xG diff --git a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Uniform.expected.png b/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Uniform.expected.png deleted file mode 100644 index 588c6515c5a22b67f55511cafbcd6412ff826e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6939 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 diff --git a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_UniformToFill.expected.png b/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_UniformToFill.expected.png deleted file mode 100644 index 98d421f98cb971998bf8fac7c8e6d842b4e45a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7542 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 C)09^L diff --git a/tests/TestFiles/Cairo/Controls/Image/test.png b/tests/TestFiles/Cairo/Controls/Image/test.png deleted file mode 100644 index ed4f82f847472e8d6f681a05a3a6a2deb401e23f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17223 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%0AYg# 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≪Tsb$e!c={#?1p9oD*E7W_tg8Hkgl z&%NKA*!!@#KCj~0pEX8=gS}L{Ed#9PBpgDOE|@%fC=!!%l(9Y58L1msE0(KL*yikY zRS&MAq3tz5QM!6XSUdjfs#gL1I^Ab1n)Cbo-sU1Y?#yg(kw@Bjy{56WstSvD7W+bh z+ZT%?OM!h?YeJVw<}@uvr&gj)qT>WQDUPJ+ohgTjG0-BfX?8vluCc?I!Hsqelmv`- z?5y_f#Hmm_w(hd|?{@OMd)+#Afj;rId||9PuvjfHor|`S4qRv?1gs@ zQGsZ;Yu^3`GBQYaiI-d`3U)6y(k(~hjjDs;AEL>yL*}(}TEaJY_pEus=u82Ge`&>Sk1v&I_}w(Gow)85^K*8idI*==1=m~L13 z(T_1J_@A}uPeP=KC%YrxqtYIx6_i>}BAunTeRK+J84$44c%EG;jvv>;;NrV=i!` zd-YeTBLGj1xJn}n{~cP7(4rrUWWpj;-F-xk-JfGaSeyNidt&ttK|&{6rg}Gmgn;g) zub!{e$iguVar5snCpxH|Z0Gu9H8giK?NSz#@U^JgwD7e@PsV%}!+yr=1Wu*dq#o-G zIlG512{CU&Ynm&q$bJA)?1EIFf8Kf+^Kf64m(!@UJ)Hha z&~B%n7Vy;<`Yz-A3IA88;P?xspEM)x7FXmcKC6+{b6A?+y@yj?>G)`rL7}o9>)4*< zhnRe>Hc9*~W&WM}#=XJ@qvRCPoQ7K_z(999$O+fQ*KVziL#=+QgDm>|486Q2RkST=r<6F(wk?4`QH{r%Sx zYaUKIycl*MmuS%rNHBPIs&iP717?yk`%;>DCHOHAxJ+8wI6EY=+~&;MB$Egx#&>Yn z*3}7DhVbgoHQ~NP%ge@H+ZsL_I4wPD`8~r{TU{-!ybIN*gcum)W2d3bG5ZdVu3W9X z`@2D@O4oWY!7pCnG!({nBpdZMx8CNUhZbr2SMtRPRF?mk6a;1K^U<++oE zqbu2Y&qt2zlnEmdEk;-W7S5qm5Z>u0yzM<0Zu%<90SPdzX9I9|mtQ?A(2Nl)0L@e* zPB_U07YctAO?a4gUE1h>5u1N^jQ?-tF=ZzM8CkCf@^+7u%8inslrrQ9I(tMc?{<#X z(`&$W8m$DWhA+LT;wC;kTpHzG?Aki?O`Fxyg_^#-*crKNmod2!JVsOR4PibM-``)b zXga8zs+z>=F3!@vagik|>K&o->0zn52b@iMTPnKQ7_Iq4LNHhR&jXq28RIxL}1fNDPb$CncXf!Y@ z{AIZ!o8gONB;xDB*RCo5!;b?lNoy7vGxUDGyEV0{C+=;pMi%U3hZ|8!LU*ix!2*Zu zBy}gqj~DBIJzbomc=qR9C&F8kMjs}>TFU9tsAW2uy!`z|@zl*DB|0&V2g`V%qUCA$ zqG{Cm*+(BA^k`nDle7J0v~c;%7--UMf?CDL*Gc)cI6yzG-2Tg`@3QtYf1<)YhfI&m zZF$CunF$ZXF8kj7gD+;}#~Bq(<0sFooR*2rtPduwHodDOKJOPvR@H~M`Y@=iQk9AM zX3MoPt26jjArN0@)(7w}XqnNKGT1GjjH~@U}{5*iO~f&k{e<7{B~&|07y* zh0L2P(f~5z8*T5F;m~LGv-~3&J6qa3WKCZfvNrOfk~D$2>#7-W`GN3O@#({fxxizg z8j(fS0-|QFuOzFSTZVqIE2$pi6;{tnm}&DXxdkawkBj|hlu5ZAvd>Y==p6nNtH(b) O7Bgcjqbfs0#NPozu-#Pv diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png deleted file mode 100644 index 75c53f0c2839cf6c33b6881581ad582611da1db8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2767 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 diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png deleted file mode 100644 index a13b34ba2da477314dbfe9a45d877263def58453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3085 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 Hr;`5*+IO!% diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png deleted file mode 100644 index 14704f751c71c35acf731829cf41604593f76abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4712 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 OqR`hd(XK@~$Ndk4)RJfb diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png deleted file mode 100644 index 7ebac13d30c4263181ddc99ba576ac5b4094f8d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3611 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 diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png deleted file mode 100644 index dd41cb98c3c754ad6a3a678c15797bce4d19a04f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1421 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 diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png deleted file mode 100644 index fea4a2a8e95b9d9c792662848adcd17100c8d10d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(Ggg*~inxF{C2y?cGM-+YS2Db#J7c4Jj z4OeJA^uA+p@VQO@FYe_*Yc-ySbNanH12mI*;6ZoI>pCN$&)4mlXY=nrt^YCi$KkDS z4BvgJ{w^Hhq#(e-!qn(MJoR7^ud=cJuCotw9wxEJCu#Hh))m+^lVAYxRv}bYzkd33 z>Fr;09BxFXr>Eb&_MGKV+^!uvX577hzkGX!+uwO#4(jep-1ArR#MP^zH}Ag5UDR1~ z_)p0d);DJDllN=ymu0pwDK9VIJbCiuch^?`cu>)K^j<|pMa1jxefulfBqh%)9AxA7 zwM{OqsIaK6s(SVB+1zx2Z_&MvfBdM3l+osFIk`H0jhwvv?&!Z9EuO0j@7%dlvOOd2 zuWU*|cli6a{{H**^iSJY+t2-d^TMRO-1g9N>(-YK=YO}l1mxC&xsk#B7O!0VKKJ=V zZk*bEE!uX^vV`8tSFfkm>6u*@E!UbbQP5+9(u8&+d$HNIN9I~}A62)24_<*Gb0`B z*DwEnn9=sjg-M%|PV;~AU1oUx{Q1w9FJCUYZZC7@_KXwDE8Ul^xpB(%_1d&c9oxBe z{=EOM_@CeIthe;5($%k)R+dSyuU&awq1m4~FF*e|J3IT+cl-8#xp@_4VA_*yHB#jW z?vb*RWm>$tn%dj`DBMqRTQP5?m6erN`TN6+yI(Vclm89p%{S$J+m0UO)1Q|N67h8P Kb6Mw<&;$V4cxa*k diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png deleted file mode 100644 index afd39c2360afe675194d905b2bad7f2755a48345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795 zcmbW2c~DbV7{wDnpezPw1VY<2qJq4n-Bzz3KfWKQx+pjLXcMKpn`yO zhz&agSyW_Sk|$Uc!~hax(Lh`<5Rp8arGbP%U*goM)3JZ}X5Rbe{^rfO-@S9ry_bBj zuKGG#bYL);zPsBIKdAOAUu{k3+YofC7%K1tKi9*sTSH&-p@Bw(qn9HL)|jKaa(W#M zrrF?r#PR5P{Ni+mFK7Qo%~SFEBRV*^4?Gbzaj(iWGDC;5zElHEsiWi@MVQ0?ntG6T zhrzW?zWQ5Hq_wvw!m-On3sQxiostT9Dt&@g@(91+;Jm>h<#~&qjB&mAo3uQj6Ugw^ z*4EI_P*YQb!!sxp3V2Fm#&3NzAG70*G$hV?1!r!noVo>Ppe-6fdHJ7T}B| z>RXReOAfCa(*{6>>j&EV>?6fEZQ6-5Oy*dRVdNvAmDFd=1`IF0u0J`{g_R6H z=c5A5rb`XI=B48~l?N4L+th@)Z^1TpkA`U}H-rQ)QtS!D*XOtSZy5m{SO-vm(E`BQ zewGd9gc}=VKP@Du#}>jHgJSs7*e2ay`_6g-VNE)!DrcFYjOunPkl{w~fjEyhBx3f{ zi)4g!5#GUMA|+RMv*(GYmuceQ2WjIG(N#{%!TS}fJ6I%Y?C-BGrv04ap+pvn)#FsT z)%1Sn6UUFwUJ7VP+;LL3irZDy;my9{|A$ByjI%ir7&AqRhdorJA?`1o5DtT^pX=%U1pKXB$3T|&6 z1qq`ZC)T;f!*&yH!!DVDR%P6fY{1Nfng1W#ea4NS;(35@pXYtXvtx6wU+lRNSD4Kec-4`^(sZmdFqmmo3 zSgidnqoj9Xz$OzYO2Vb3NxSk^C^Vt!d7Bn^ylSW)8N*37WSLGp*5)FU&JBx)Z5)gj z>(RpYsG4g~?^aU63?it?Wr+mZ)vD-*@tJ?9=9bQ&j@tg$x5_l1WhtANwI$n%>Z9+S zn@OropTTO~wB&0xL>>m($fnbLy3vN*tfT1wZM_)^u9$hN+y9Q(C=8`_(?%)eHNrT2 zxg}^V2I+f)oNo1;5>($RmM1jnsZv3_aRRd|Fhpi@BS2NB<7_^}$D&EwjqHyGyF%)1 z#HsCZh<=GgQbUX`ashM)!O96sUXy*;PRNwKe5tF-lpAelw~zTNeR_c}og3xQ`47H( z`|8y;@A|XK={g{|TX9Lr$>E_PVP!22vg$8SKr%s47GAOaK4? diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Fill.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Fill.expected.png deleted file mode 100644 index c38dcfbcfde254168cbc928634d40cd7617347c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3945 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 JHrJ@T{{zDJ###UX diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_UniformToFill.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_UniformToFill.expected.png deleted file mode 100644 index 59e9aea5df705c8a2744b7ef6709fe7c0d44755f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2340 zcmeHJ`%{u>6vo^oYcaFDpkZ_&ZL<(vCsWrPNlh}*Xfw-IyfmqqTPWdW)h{(o11u?X z)3mm{bU~BSE*c*s21=!=yODWelQKzx3@?Ew``PqMGy4zhO!Llr&JSnKdCvR1&zU&| zLB#FGi>(*KU@&8XpEn8eZS&U%4%ym}x(dj_qx`pf!}Rm#GPmX|3})0z@b>y8<)WfL zkRG}RB^-a}cA@&*sTGk;^y~)kI5sr43;)P6qU3w?d*&N$C`E;4ZejUD#Bv|XYV86s zRbm>ZU2qQ1$tFF@rDLmUEfk9Wjcrm=X7ccG2UC-QUVpc}UBfuK#KrD`+V8|tywU2f zjg=h-{+&D9JtEzxJ!GyFoS}at|poRPpnBWxG z3y)OsF}oZHr#4wa(USqJ4B1B!-e_^}+f9UJlfl6oM3E8HD5UFib4-yltKsh5;EYr{ z#&7>wXKUt_=9PxgMF_RlEKjhC;5ntg zhU;e3DzIlEZ|(;ANdNN(GLfAyDgxCwK2&pQrOso&Yp>6Z6niAT&EeNSB`S$_d7dEX zKw4dQIuf}(A!L;IB9uLp(P!WQ++lT+KulDG4$YX2bxZnm2)CX_u4r=SN>r-f6%sUX zQTcuhVhM|gpDo*aW@cLD&l+q_n_Su#Pa9NJkstMo_#qKjI}FzOZP-eBq86xlqtA}; ziYp5Q-PB+gmzcr}a~rJLuP9FT2hinTwtXJ<>nn5ca~{?)&M# zAsBUt_;HC_rO6HeP)x*?yU}*4CTvwCs{ro7_;~-&Dga0vJwJG#O1L=-($uL7WfvTA zO-`k@2zU z*2WqWn8AJfd~b8Q#?F8VDC!Mxpnuxx*yDJ$;IFAE8lOKRu7APPSd1o4No%>>j7|?S zS)v{Y3)6oPScfJ!k)_8)D4Uteo zyznK=F1Kbb{ALsW{CD?pZova+W^HU5}Aubkk9Hd|^&r|DnME{Wv0<)81$4j26 zS4==1$rGGB-%;-2K8}J5cdcNW$a_wr36amXV4kHNPDn^dZ>OW`akxULSA7;pLae?f z8I|Aa@+&y>Fw1@&Pgm>r3OLZh57{Z>^Ui`U)=a77EzcRP8F=koMQ$l+aEV62eeLp! zw%sc|5u~k3t#WrIu*|R?w%4Z|+M*#DMpku%vgz``P);A~fX?usdy;I($2gg0yK?uQ z$6|&C!tVY6MHB*(SZ;6K|jT?B>9;@qrr!Vc joaUI^{(7+(a?%@YHNAut^#W{Y?ST<|h~9Phi0pp>yVkMF diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png deleted file mode 100644 index e173fa6cee18cee4282eceb0ac3d81421aaaa3f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14445 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

^wFxFT{}9BsdrjVVGi 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 diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png deleted file mode 100644 index de73af81700872b7babfcd99189a66ea47db7eed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11325 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 diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png b/tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png deleted file mode 100644 index 5799bdfdce9e4bd1a897b946186a043369d5a1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmV;R17G}!P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^MlX|MGF00R(7L_t(oN6l8hYZO5gp2A;&Ca}eyKG0H5>*axsg`+LB{;NgnD*kH@Z*(cv$-FK^5DMu zP!E!RMh*ceZ5l$VSJs^GQOZLYMw23lU!rBh;4)gO2a1?0>7ykN+iY`MMlM>JbuDUc98u;X2)h$t+7Y-P-KNY%u;!^-n05r=tH+eN5K8q3 z(~cly@`5xMK)4ytG3^LK#t$iT5rnJw0Mm{Dt0K)sQ0Kz51Jq^mnKBkisXk%)f8YP2 zm?jsU_%0>>4?^ADVU6w_DQ462~(T)7O-gCZx93{xp`(tVu$s-VM_Y%hG4*7G9 zZr@=8S~I;OP(M&&RjIC++CYZ|P=!)$wN7FjGm9-FN;%j*9g7k>+YV3Ly3+-n%lMlu zOtrcW#*s%)lY%?jLxX9D|EysP_zrxb~s<_1ia!#WzA|^2@!_# zd?sFi!dhyKd6<;z^buArm-muE+sJi~FavdFTcueO8$w0OQ&bn+427Fa;Ix~=WV3k) z8p$Hmz%!_U6*$LLl7U(V&r|M2i_k3(V)#x5V}Ai{Q!>aK4CsRZ0000zopr0GL;M=Kufz diff --git a/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png b/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png deleted file mode 100644 index d09c0c30b4c47e6c2c734bac6b5c4abce8db89b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 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 V(|qmP*cv#8iID}q!oZF4{{SsbnGpa0 diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png deleted file mode 100644 index 842e541de9f6cfba94ece612ba99584ba285bfad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116569 zcmbSzhdh*NrugB;5T<3Y5$MIgLi2G^^q$KntI5;?@_Y~zcaB%Q3$e*)>@NeFC z7}df55LzfJ$l;tK|9w@L7mtH;73ZGZEiJFKm5Gr@W5fRI$0G9)1hS8}Sv1mElwQl} zXLI+tjK5jZcl0Uynrb3bC$aEmq3?kYPv*kMW&J#xiagcBZ+Z6ySYm7pEA91PSpP?T zqnF?s84jO%i(4t~gK#U-+_Pkv!v?;%1c6$@hV+d@Q*{lO<^F&F!`QR+_MFnjDUL#= z8ISLn>8a4spy{9wZS9oI5&qHMDVcykMMme^&&}iqp?HO81;9+OYYZ9)20vZjl)s8|$w3KVJi$g`N5^7q@x0K9!R;YVPz;<++vE%~%H9 zjH$GPaC`h5jUt=(B8$W(UBW>O&v~aDUoxrVc5WS0-sdun=b36SEb}{lQiwZKdotnV zb~#*ftz|t?t@#@@3#Ix|c6WETin_YYmUzKnSB2g1g9i`1ruXVhc%?JfGurKiFEhpx zg*6BFpqn*L)_WJWXLfuFPKyVYT4tQ5-Nj1{iqwxJI(TvxmTc5dMG_|#;sU?LQlaGK z(2azZoTV4lDC>ig(LvP`PVZYOP`~ymk7>`@PIT zckYB^`w2$IrfRHo#Gd@f#KwkgVq#)Xa(>6h*1;iXa=m@k(~`R(d7{dRX?1lKM>JjS zansdc*&s92+n}4w%zZEMa>K(V6VE?y)Vg$T?r>@A*#2PI=wMmvU|C6<-(&bK!6)|j z&xn(p^L)G?oh{O9)#9+r)q85S)juqCXL)&9j(Km$)R>3vL>4D@EV_BA1y7HQHYFwH zEa8(N;v$ohDshg%-j5%}Kbi1))?UdQxMys9g(vA;?LP|U#8Kxk&X_i>Yjmir-zV?&d^(Q9jIZAnq`yHQ zJ-LmUyVkwF7I1W8XT(G2Sd|(RLuO!TxalRie;gn#Awf*|#7mMfB{g+vWu-9mYj3aG zzYie6Ff;ppA$-IUwLC|`DU*0c2bINVT+bR!oanNqg_<4DS44N4+H{+;@zG%MVyi?n zGSrr?`F1hwipsLaXWeIi|Ngx!7j3g+)vRj`27`I4gMu2^+1VK+LHqklNoSJBwm%tO zZk^q{aGsDjMY z+)}gFN-R~wb;CT@zocIA=)cPJ=x9>c8is;`g2Lir>D|7ORnNywW*+XIo?pkt3?10N z4GrmBAtfapoWG+}KvOUn*@HfOa`;Gum69TE;ufx^oK;e%`QzDR%bnuGWlWIw-dnBf zoQIt8bAg=gOr9PIb$NPRFBDli=3M2n|8tzG?}@%F@=o;`M?z0+*wlJnR@O{L|M%}+ zeZxFS1w#!f;oFeoD@Ajl}HA`7uDW~Jtt@r2IwL%>w4{Kv*XU7tM zkCv9!`J+*Fni`Zs?^aRw+~@VZfp6cmu4HYx7zB~MB7J}-S#j(kC-;+>-7GTPo+{y& zRgTh2r5r`p_`#C+P8KL>SmLq|ALK+C&&x%({;;s+G6r@mE_18IlR8lej%z=&%}h4 zG6E$a(T&BPk8{POB`2F(TZi1vl9kS6%k0xs%z1an8ugYUc13c@JtZgSMq*M@Pe89d ztpux}ILb-uwyek(vJW^?bN!F=oeA$FMZ-f4O{4OD&h1OF?GddOg(W4rPTBqJP$Yxf zWJyU$HU5XfrFzdQDum!!_gE+^PH5zWwQ~wqtB5UkDMZXZTM4l05q4*1`CV?*lHjZg zSX-H+rid%bg2qr5QZ~ZX|KO!zm7~k{e2;J2(UByq@K0AUr5sAw(&*^uU&l@oWB08@ zlr26o^x@Dp8q`;qeYV8^LcG%8^gE#;4|$3Q@`}Rx;_0jjN~Iq^c6D_r?R;wL(lazH zn4FaQu_+4Q6&_`9O2Ry*mM=LyNvQ3O9Vr&WdKXm%@uHf_aLdECPbfI1eE!3~MiJMO z3lH6TDJ(3^P8${IY^dMsvpiJv3zL%aW2nebj+x?h|J!$Q%&AuRnlmaEiC-ss9_x#b zJ!~&%KCZJn*Y-L!h*h$5esF6R{PhllyQnry(HBn8EyRi z>wHo>t*CkAD;0^$KX?)=;+Hqdzp9rsK&3x4T%&i8rOW*Y-Sgjr47J|97_m=;D(6YM zp4#)G2d!^xJl7U|dHkbCRPu;Ex_j1>fD6Mw)e{gmG}DIAd&3%RuDn;M@T4&4%yx#g0E`Co$t*q)xa9(2Wuww$nhj{g1g z7DuBrDgVzCT*N?;Zx#t3Y8EyTG7~%f|1ZACBsWan7Y)MqD`tPR&b_##~khGpM8Tg;EYu>PH9Let(wo zjOu(6^7C)L=wwM&3B8?lU+S@(oK@9mBLP-h#d?5rAJzSU951gsn-r-c6IhxztWZj@ z`*O@pKYlQ8Z*OCI; zN*Tj!%l^vnAYZcnGeO5yR=o`TUOYC`wSnezfGy0-hRDgORN+r%p^xSl6YKo>lcl`8 z9NXK=58dqZXS{Rg&cSkrC{x6>-^bHv#M{8l#b2$(JVcA+-nuVyp;3^Ol467e_G=3Z z6TWQ3-h+#qn@>cf-6qq&4PNOY6O&CqK!&|=0oi+K#n%iOIWgrz#xy)Y z^@rlx&?4G+nm8%sT{4nki2&GCyUY?&QBfh?85SC5qrSerxxarpJgF{$nK{)ApGvqH z(>2evA)U*2pJ^Tw-?ZiMN?4ORPD&OYBiwq|yCq0ZTKz{GDJ?!Ok7+%2ut2xQbCq5| zKmgm|6 zJQ7Rk;TIMT9b0W%avyTfU@ntDYDqKyL$7HoS9_#cul*r?bxJp%_p$gn9nMax7f?#g z$&ukJ4hjA#d|0;~1{4#S!0B2owx|#VMdIcrz|GD5p`rqCUN~?S^njWwg|{oR{8}WK z^6$lX4MfE_Q!km6?d_kdv)&Ba)rI49{S0<%q%-FRdeS$xuYMn|VX7|}pGeg8=h>1^ zTO`@p*#u8+L7jSYAkWcLl6@&b(=Dc=d_-)klpy6n$6sXMIr zp)qeANFpGnJmT=rpT%Fl-suQFX}U@qr8Ynvr+~Dku#bm=U8Gpb?{NbKd%SPc1{T6JBiN@OV!USK~W80$KF1NJ~6G ze`3Tc<{SyivSnxiDvCIp8_6pC($Z>z^mAKt-M@EtzfMi{ZET>PJbCi;_O+vcz@j`j z`v`5)a&XS`RwvYJeA-1GyccAv@*dFB1ZRAw7H0}hQBl##SXC^Ysb8EGe`jMO&Xp@y z27AlJf5^$LA>BjUTg79Gb%W;7yTo%Cv*foE-{j=p+_fmZDB?5;Cx2^D*R&r#7+(6~ zl`A>Gd@C!3jd*nbe)vgJ5_waTl^b0(Y7lLbGcH?%w=qVYWS1S14T8e z^^A^)Aa)$DZra-7uX38og{REVqw#`q7-JR8HLYS{Ek|Z`g7sBi9ld~!VMoX2_%ua^ zE4H?^5ds#1)AIYb;CjQU^zrfWv*>7-U*B%}`1m|yjWRC+E{-U-2)HB{xRp}x>3VS&+CyeSgP71y>O^d#?B08_qeHNWu7#`jcKl=Uq)uisY?m0bE zQ?{gTis-u$?XxOsYOt;9rlw3%Qc{9KLKJ5S-jCQ~$kW3Jzw#Gh3M*Vdssb$LOj$=Q37hv^^a-PNJ4q3h3I zE`jmyU)rV1YN<)iAf3&`WFD$mP(%b-xf+0R2Xjf67#La}R{Q`dVr*5fNQWzt?GG<> z>T73I;*4JfiD_67mQ(LiZqTqk;KAJ-RaLd>{)Ug+*x774&M>zw^0Fk*zUeB1^!cnW zmZypUmSMIS@hC`V22KmX6oS8U(O##GlInaW=a~i|w#cwbF>e5wYW@BFzZRF4{t>>1 zQmPaOF;GIDZVwhPKzEg%J#wS{p$xU?a*aRwbb_wc}_F6ZTHS8zU~PUyJ} zv(M(n2lRXX!+NN!?UT&f)N;u+6As^ouDyEhr_%RP5AfzUXJe1ACv5CHbenQc6}ZoQ zGR)z$kz{0Jj4dxMy_K)^F5pURd#4pY4j>+czU2*Am5=xq1C~lJ z8`ZdmOx8=sFv;{rP_c=6{~!Q~A!+&Kv`gNK4S3>+`4H;xCLN!$1uu@N1xF(1)Rr4_ zYLSMuyBphk?Zj6fyJE-IKIUp_vEp__v(0!=7 zV>*?1tUm852KXyN?y;Aoi9?#kfq0yvRH&v??{y z3nkSKN^48<-%sr9JAx`kOn~=oaIk-T+{ph^*-C{Tmrg3dM4eUTSEIMCs#*81#&=$b zzN>Fwz?`fCybUmu9CO^SlRjV~z*VJ&!|fAx^qxi0@w#r$t4?|^T!~?n>RKAe6MM9l z1}B~j*h^WDb#-~WE6G6Pg0f1|cU!E+h(!@ATdi8oA3gm_`bGk|VdLi5{Hx-qU_QN* zQ6jJIs)SeGdqUD{6E-)edLLF;R2YJtY#TtJPnjegA zFUf#Dp-r!}ogEJZ27$~0$K6BBQ8?9qkx?_QU7MXcynPnH6c7}s{Xu^$z? zK2EF|sO!qrhrrtkCw)#cKj7IAX0<9dyPZS(z7xG|_SpN^dJ}wlQuM51z7G|2Xm^pF3)wa4N<>`v)ZrJwH**iJ4&u+pw zg|6~uVCmN;0&d*JjVG4%N7Qv|0#6;7J1;zl2l=M{XiM40 z*VlU~C&{_SXl1G)Gj|>h`d`eJhHHpw+$b`82_rFPVz@?4X_nqJ<$|8L<>Z<_$GlJp z?N=WqR)?axjX0aT)1_Wa5}junWxA=}3rZu%x^{NWplMA^sB$E{i|JzQ10{fk(%joS z8CbK9t}fJYVPPRuH7GuBH1Z8j#ml1qDIMN>6OWS9)2*$no;EAQIPZVC2H(V4lwr!d zuPof}(Vvq0Z$e2hQi=bm3~otoT$^8vvlB{7vX`NaIs+;#2+e=>>mEf`mo^JQvzUWw ziTj>76SC?Dp1kfR2}QaGweB@Wg2KYmzds_~38V!e3zQM>tE)R!R=5Dpf+RrR8-%75CZY0A2vrayR-Yceoy?em&RK z`%#rHc`pCbEmF@nyIi#AR8>{?{iI=YpuNHh{qj!hfACF^;!oyje2D3BMHXT*u!7;Q!u?7LVw?>F7qK_4Hk%R>_Yg-VoRe*Pyy51}Ez zkzZV2&nqe-Eg6n#p7}DV636`p-l|ojk!!=LQK8Y}DqdmsHrJjw>>)_GMMcpW8H|4p z4*>q}=9UhCEPFU7b8w_SKLk^@t|)?n=drm}bGP z8WO+A5t~c6Wk@-3|5c~6LGf>xQonNtzsciUN!l}CM_W+%SxIS)GYyn6Q3(oN*?Hq zHC>Jbc4`t(Jzl7=7DVSzMi5-Te*HWtY5(A$yrH3CQ65Jb8*=dDQXAKUrYv@ibflAq zFK5=ZqRVGIYnK)mUzL=^#>G*DhJ}qZ1j;};!9<$&tSz|p4P9;y{aSijwW`C!oHJHf z1;60QIC0D+l~+cMl6^7wQ!m&1UN)30jMRY?h%jAHU^4x-h}qQArYnX`W_N~7b>ZkU zLlf*%q~Ff9q1;cAXpdE~kk(F`=$qZVudAz|tbDGgrw6{j)_U0OYxI{dBUVmLO)}`s zM*%Vb-W_)3*EC0@bcs_Q?Gf#m^*ZjD$ILICiNP(v9H&%5mt=XN|q=D*#in)Psn#svt^?)rZ96~}OfS=#(D<9%t6~dz&VSoim zWse;>b)(rQam$z!!5k+o(f2B6a953~UcKi;%v3kN0oCKbvC^M9zudhUN zbMv#97&!lOfq^o?veQ`#{Llq#TGPlcw{WEwDZ1Jubb4TSL+mhJXzFdhjMk?;lD{_U zE^8%X17I4CgACc~jHwvZ2Fb?X-yhlmct_NN^1`6ub+GES`u#a3+aPAO;xU_S=~(-* zcW4VfNoWW1%_k?-G&KjLu9yRI+PN!lmFkL1+KBoRJW^g0D(2)yftgp^FLcjOn7E#- z;(D-U4UM7Nb&kZQH*E&iJqM0DOl$*nb*pw5J>Db<$Koz3)t^Fbe{4%&%f5?>$2;Ve z8x(;_1x_946PbMq;M4(&1?cNM-H1y_M6|TLoLy0o0H;-Gfnwy^%G^v7SJs(wCIK=o z^F*u((MLWeS{`$0l!{r546wPhUuv}ibKBmDT{PI_C0l@vfWEIQ#Gw49aiU2{!JPBh zp!HVr5naPyZ*E4D6%6pOC`FG5LVFz>{jLZiQAHIff zjWkVABbJu3pc4P~bEl#_F6LD1W3iK#CXizrpJEBnHyxNz;bNw4#N}^1FHyYOrFri@+8ZEBHDZa0)Yy%PO&Ye3Ss;ca|pL9@Zz_#FtsZ<}G-DkrFPg1A| zX?hl`6?oG9Ulu?qJ0n{m)^+7OUt3$-Kh_A=vWqCg_f^jo&)U)NQ7e3o*o+<=bRU|L zN}N->hnJ5@I3U9I!keHPw;mPsa%!^ep1}e{Wjxw%mzh6U$jmD#QODK%YlcbQ#w|bp z&NXpV9!tTZ%cuOt{ivhYqH1jOzz-Q){r&$r{Q3gjSyxxr11a1cpNbL<921OyLb=456}>d zK6%A;cHT4bJ@$Zcqf=1valwSsK#oxb7T_Ak!W(}b#w4Ig*%fIoB}?JFgCqv(0D@qP zi+R9E2IK{b))SbR|5Jf#gP6+I2hKb*`#gu2`&#UY*ooDpE52p%;Gx#<|2Rk4$)XAN z*+2Q|9`vx{;^LtJs*yw}zP0#fztK-Yw%Vtcr-v~)>ZPNq%8XB1Et&x1xr@8hPC(=N zSX&E6&eGleC30$@=O`!;IaV2_o61{hYA5!3nsFpv!qy+VVE@xeLXB~wyQjL%Ox#G` zmem;Fpd?1xJx7dG-@9m+9&0!O@2^Ys8b3C>+rtVBMs}Z-|P1yo=js zx%+^}Y<777MHDFAr zOG!9O+3x;og2)}u0TVe-k50gfqt_cg_B-;z!S|Ey0|W^q2z&?VJMeFSo5FTVXR1%M z$pa}i$9HQRQN?O}SF#K}OOiBZ42C`MPDJGT*+GHyx?jIugTpI(HE3#G*Up<_L`PDV z)0t2-+?H7+Y)K>F(m=jn{!z8P`sK@){kD5V0CJ;1c+A(#^O}to0YuimzGrtBvf@pG zDa&g`X?GW3tV`D|6S=sv)MKlz!%PD!#>3siqkmwaxd~R9p8hp_+xzTK0mGg96mGA) zyS0G>)=}vMI9qgIqDE5qqKK0VFu!tRT1HJkCj@C8SWl5vOms9KKmTn_O{#yuEC13N zm63tZ7y<4;T)&odI+t|)N~tq=xMWPy*#7LlD~XSf54z?L*BWQ>bm$%S!l{XD5gjpR zxM>*wlxSGaR1Be;2&zQg)cjov31&dURK?ZY zeWPzixzA7?ly4Hs*W{WVy8S`|QZQU{qAL;p37Bdr8{eWKP*PLMk7 zmU6wKzf^Mi=Z=bvgLmT4@U^(NJ6xVcc+c@1vAwP*-MlpyA~st8h`V9X(i*-A>g!{u z!#F|*VZwB^k7J{Y51mSc*WoaKFB}?G^OV>;kX0_ts59!7R9|pK0#FNkPsrYvyi3cg z3AH5@H00t>>J#9T>S-x5{O93->hp8^7vuXY2o@e0Y;`+6mK+{vz8Ci7RvuL>;Qiv! zUV(T;%z~|VC0AlBx6J856}nl02&-`q*NqbbSWQz$szo-X%P&zqK0h$l^6Nvx+YO_m z7(G)PTig7~c&fr6Qn$NC)?(jrr!P8_h?<;a{7RVm(Qu->J)Y&C*EiJ8l)A7KD^rYw zsxnU*0(Q#{`Ygt}An?I|38A>s$G`QG}vo=TP z+^~3e`&-(X4Re#ASiCSkQl3$ia&ro5Mx)M5UTzJDK=s7huf*ViJax#19L%RWA!sLw z$C#OcEMAd?Jwd4=V=aRgpY?~!$&Be~!sWQXmP8miQ*LeTW$>n#mm(wu;B;~(pt>Ux zQ4@R8ZD}rI34QV13;oKD4tjj*;sLL49}xZFTWE^Ly^i?;en0s?3WB&KLqmkJ{K-~; ze<6fJd6ob%l@N-X{U4moklVLtdgwcFMpQx7)6QGaAH7szECcwlerKXE-9AO-8wye6~I`U zxJM+6FoYr_E*Si|3z}hq(x6X@uSUKWb7r3a7-VBk4Lv=nBFUe;2d-#}~_vx4?EwSc_tz>42Es^0J1Lb3@;N8HS zgc10mvhphoerPd(|Nj|y>MWGk=%XR~quoD#8+ssUQvV!F*na7xW<10PZoojz1Y>$bYyEQEjQp3gRR`+Mxtr~Jx+ab5F0T~r_p2i70 zY7fM=M$y$c&)}`s?J=4L9t)M~so<911u;}C@I(^)jQP{!3BIQC=({vv93NsD3U5!)WXQsv z0HT8^PmTsLkW#?;|FZ{|I`5&2P1)jlUKH&--FprY29!=TI#i1zqB`eG;z#lJfk-fDW7^YCMhBXHLEC%WVhouP^gETS|gm$|2y6c3T!o z%h}##MwVVr;&;}MP_8SM)5!4(j7~_@0dH+;x`hm|l7j4Yrqj3#-uhRFup}o}nbB&I zFZ=>>g0QhL4OGlrU))h+i*J@EN3H91q0g)WMBXB3GrUFudGl5}n5gH^-e1D_}A-Yugb!N%~Q{u2fATxZ~x3ZlbpxoDR2E- zFpK1V@*_D8SmLF@xMrocr)V=)J+frB!aghGEUOfGql|I!<~8*gCwOq2L*?k#(j6qN(^UJuxlfQ$(yE$!#;r2!xYw6(@g z!`3$ariCkKFJtJc*}+F5Y77Kyr$M?$a$P?j|D8e zeiQ_jU`NaauGj$V)^|pgMR&`Tg(5r`m4Q!PcBPV+L8U~J26J=PP{B8;Nq}8IN)eRE z!C{NIRY)XxK4nJhudp>XSSD^i!(XmQ`^E_98>YwL!?{w+_KScJ>gv*Sb6Jgeu82bY z42bcyD^=jM2QN3uPjjkR3q0AiafFOaSB`QLFn)w^AFl^y>Y8|;N$LinN&@(fz1i8{TOH4o3@ZaP1zZatH|B~&8+??g`{D&-V`IpQ+6#kN0*x=Vk?<*s zrpFOmHiA}}w*M?RWY|*3sx@6c8ma2_boEH&SSC_h~$30 zr^id*Pp+W@bMfZO>7rUe^*#Ef+h75wkm-0)0a4@<6KSDqJd~1(3xl5Oa5Gl_#D{91 znhMp>=w78f>}*n-4*UT$)A4bYM~_5^$QY(O;;u7@yN5p^BLA`D14+?}3?v16CqW=; zVs55YOV|OUG=CMH+C@EoXW9cBd40qPxa&V6vE)t>UETe24C;gv{Ysn-EsIJ2vPXhVG`fCp=CJ$`HQP zJos-2c>%>6b+K>vw#SKw^8V&mAS1|6*!+`AM+)DftL_l=vg?U$rn z-wX{<;zF~$tcb^_^7iNktJUP&rDvXOKqw*Mu&@oDtEkU!_W!xbKY@~h{PEY6hLV>E zFOd|7?b*Y3z|6}EW0!p?2Mn{cvc=Z!LZZs3+8N?jN`mw`S{(g<-P?@=zlw~E6&DhW zhFg5&dN4W4muL8)cG&25y5~uFxi>r8nKVbgU#+k2?dEMju)CcU_sA@KpY8^u0dbhSY zd-(pB^^0^?JSBj`0H<&Py+$ofw28Ci6R>qU(4F;)K>C3h;3;b7Eod1dXiMaSiVmXZ z8#9|nwMWnWr@P4tDOYW**eGWI$eN*5gRG1rr zWi{|w0S%eR=|vI_&;r3PAnZHY=!mRRjH~K`+SC0Wm z1?Dh2I}7qBjCU|1VMG8M(C&Q64IR-i_vt~4E93qdv}qgl`~%96?w&!=7`}hMh#(5D zHll1r-5NGNoXTbXtG>p>51~xM|y$-7J2Ic@^MPLpvG?ARcU-a@1h*H8#J;};(Raxn~*h{dpw_pOnu2y8cUcvQgzuBji zFR24#KnA~|$vv`X2s+-q8%CkGuOa;$QCkt$5|*!G{WidW=&rJn=Ek%0dhyDQQr3V0Q;pv&!+A9BRdHE6}W81>Ed8wXO&r2I6T+NJp763O+sC0`G zv&3fVhhq80Elcju(i#y4d-?J#(pDwCoyQ)kr#Ji?sRfB}@ zWZgG|{f8s>7)bhMr%z2x$Nfxj5Vbo0eMAH^t6V5wLieMf(@nUlSw({CNUU8c z2WTsxHp1EowSN*Wj405{bi_LapzZX@S?6~XHOg4Tuynqzqe*RA^+XsXl9iYVp+iO? z%z8xcau=^yflC^m=g*-7(L@^@^DEf@rthd!9T1>L3MK0-N)?4u=ODxfIqdCOrc=zY zX<$0=`M!mMo!?e;(7RO=+PQ+$o1b>=p?ELc)T%iumShCCBnWOK05NWd=x47oZyloY zz~O^l0-+PC0tQ=3_Sg%#ua|BH2GYY93w=C4z>%N?zF2Nv9(a9VnScl=29Oyh_P60- zcuhMg)e(7U6Ph>pnzpV_%K+$%f9qOv3B*iMVd1uOeKLLU?H0l1sHwSxFroYi2=qsa zzoHwk-epJM_!fpaPA;!V9V))hPOX@u@oBqP0=)W71WlCN^tpm{05A|zVP!W-FgKtf z949j2)A5l8Xw~?M!*0QNL|sG}KS-_H;}KL0Qa&&HuPcBJD#{S^w+&ehh;}uH*y33= ztqj<=36i9>xxenqs!LXXr_pKj*Kvapb1zTT*vr}Z`F-{`*L$oq7fTd{^M(Gwl!qv3F%46&l`H;8!P?o$GT2Mi0P?)G0`S?MIrmdf*?;-ZZf%Acy8f zB0(;(ARQI_R}^L!sl=POk|t!ktuu$Zx=0$1SDo}tP4mD&gJS_^CvB8GXU@<3r7H!J z6)0At6Ow&ywCPjHE8w#=&zJ!sK-5FncNiehKR-i>uos8Hhmeb z>wCzV5>m*(z|xcoO%tN~=EmMS>_39g0pJTO;1D8{UQh0Xks*-eZ?|WKg(<4QV++3O ze0HA{7M&xv|CMA7v|wPLomQ0aa4=?oC|6`8uAoRTTi;z}@!To_FU6E*4!hr#(9L-` z0u~gKA*=gMDRVSK{?AVz_VHncMv~DWNe?)eGWWAsjIFF*KDukRK#L#JhahHwrwv@u z!^1B3BBMDryq_9Vo$5Om z7ujL^y(BXX)Kvj)>7K<~K=lNM2ASfYGUdKVE|~e`3Fxg=fyuuGDiVGcF2X^1(V*ty zs8MrSN|U32j+HAWD^0hJONt+4Y5JKWv%gbDK(F~%7;lYPTC#+37O z0~VqSF5$bSNgBkc4tfSeF{Pw>5UvI{d;qT=AMOnd4duG=&t?7lAnO}U<{w+%W%Uhg z`qY6gvk8g34Z6ThI>;e#=tUx+erK+qEDiU>6wAkYj@?W;AFxLN98fS|Lg99nW7WXu z=)0hs_J z;!WWjpvL^`apqCR=($Z8P@B7BPVp+NHxrZ)-(Yul7d8}0*3~HB4t!gn-Qe3W#KxCO zN<;j2Y&93GBt$_FnevMV)$v?rpYGpYymGU6OBA1>N${l9LdTXS_`G=6PZ#YN)X4Ym zuj=bFpb$ZqAq&H=HIBQz_QmwcxaFDZh!M8~r$%=$@n%6K0I-7?&VZGWi3t*D`W1jM z8kRiMg7f3pfN6ngy!X!zoQ)a#K%Wmh-3wG_HYW>Sf*?UfMMYcri&Z&XO`PqP6arRM zkKZIwFLHFEfJDtWe;FC+1hP?5w@Z)gq?Hvx!;~p#Y0z`MJyqV@w>?#n$$jBXS}r0G z_AWU#TcfkEprCoqwY0P}_%G;Q!uJ47o@0Myo8XXap8ZAgsG3bXuv|b-lYZN(Ccdje zV7tRzy>ApO$dPH^rs+V72=nSp5(PR8djcSU){khx~1Cx&(|L39vod z%U1vMVf&V-MCxe#wY8@yb|@gB7D20)V?OM(jTs-9oBt2rn2HkWnVGD@^Khti4M(#JniGW! zy_aTORND2u-~R)DkhDEoojT!0>HvBHz|5Vu-|zfBU6OhQM8kmwLnPhG6>F@J(CuUi zA(9b$L`a5QE`t2*O6u-{I1$j$@VA@C*|ZS5o28sS1u{^GTZJN}jCz}La1~nM?W{&f zWdj8TIeh>!%n+8zx_`D{@SV~;4vZbUk#uDD+-v9<2t{8HJUv8+ z)5Jtk7a*h##u?m?d0%d+lXxhh-8 zqWFBeKA!nT_uM^CTJ0aN*Uo*~U6-fNCK6w@suo#2!E(niU3g4`@e^je5SEiLH z7r`vA!E)<4PATQpTNb8N#8>wu$Quamb-rvp)7XRcm8Q6aa}OiU%uls9?iR4nVgZ*s zTp+eEG(3Dz(C~*-EnWOZf=cT1_4lM)*+d6^xJHDmamGo3k&8WC`jx1uV>sM&L#-Rc!mgMl(5bI~6%~H<~`+)>!mf+AY@F>3*qAYx}aSsKWWA z%K|PY|M+16AV}12AGOeznU|f7567*0u1s7KUj4S7m76a5%mso;-1EP822p<&{~Iq` zEE}Hx^8&;b5U{UYak%=3{r|E6SD?wmv(6IW>4dRWMzCPK?a%C=_ct-SIKjc$IrnHA zOnV_Amy;v!fIkD7Wp=|nBqSt1Q6DeB7s2tLVUT6R)b`&A(vX#TVHQ9)Ac*9oArgax z+%UQK^!1bBi7J#>$(OR3HJ?I?O{8UY1#Z;%i2=5EaNzdcU6}#!f;hS$oR5sL!25?g zegDLK_SK$MJrQ+QpN+Jv`f`#$av)Yvl{xM#IiqCb!uEd`&$~jm*>!hUOwwa~K_Jlg z=8MDos^BSH)2u$T$RsyW25M^RFGE9Zz)$w4pO8OraHtUHLRQD>W(ebvCP^C6!~T2L z^b=B*kt-JilOf;%90T(F?9H;cq&qv*w6s5*MGMK)?XTTKZDTdfE>uUV@h26MvMmci zv<%vX?|NN(XFS{7bPci+Cdy(P_`gR~WSp5UmI}UJsr>K>yJ}d)P7?CAs3-^2R)`1{ zG*cQX!b-%+?wye1W@e9B&h@O;f}sjCn5ec^%y*ZIj>qU#dHKMv_wb@;<1BACUTcgh zHv0HQA^vl6?2ptTW{SJlDPSZgBqXrsuyb>_u6ioh+Gji`5Kw;_eDilP+%lJ@n*!7t z4Obl8j#`MxJRWK4>)U!L!aF|gFt2DN?~g|>f2nPEGNk{{6YQ2*B+{yM^WD35Z;Oj_ zKYaN1>wOC?Jg@ymzj6Q*p2!y)oMqXB-C{KT)62m4;V+){#leOH1Ye`UeDWa&zar ze*O6IV?0<;r(2X*hJ?F&2kKb`iLm#kN+qY=G~3lB+u*hksHAHD{YL?K=T&Jb1=t|w7vW4y2C-no zy5y?bV(?F?CT5v#wOIrv@lP91YuqDlCug|IGSG$WR%tYS(DSKSmp_6hKP(VfsQCDR z5{ADb%V%9ve|bs9yt1+vATEQ$Gnf@2!a|IWF}SPCEhEpnn|?=EsMSr)J*vwb@lF>} z=Se0UmsaWEom(pZTU>sAJ2ot)Qdmou&ZH#ivWTNI+ztFZgX*;U`U_QlS3Di<=okZH zt@NM8>%g~=*Dox@{`%5#`FX(#gXQajm*t=$%HUWwh9=yyzR7!^^ys40U=h7PEwU&V zEZC}zc|1jg{_|dAfXdO*)fEsDg7;;kjL^GcGK5l%2mb~R$HByU0Nlv1+*_NVrlEnG z_CFOhW8&K88K~~)@|+Sm6GKhJg8)iR;oP!9+(%V0YaIpiX5RinU-KvH;Fyg@YgpDn^moX^DLc;Zm3L6`I%dG!v zcvl-$8<=n!bw zaFr2smudk8P%To}IXOZ6GPsiACI7-~{yEzs->^uqv{l~MDzPuxU6zfR*?lHDS%%gj zNMRSwZy&sU_YN5h@UqfJ8+QkLJ7BkLC%CL zq>xJdYI|wqEZp;lY!hO_smmNwgEytEP2*T~xyq1C%313QXMCjqZ| zr(ZUW*Ip4i>tA|_ym-qaXy*VnCwXtRH>D4fY;>0|o@L zaTg&^sB9D64jc>afH?ZIYjpbB(~)BV`f4xoYk53~qRKTQMXl=S~Y4K^7F zStcdAlvplSVl-_kfg_HtKxX&z`GvGa+tPOEP~=&hNha>vn#ePm$HW-OAl?V`8Zl-L z4!k3yqH4fXhl_0BEf?Iul7KAZlf5uQUlZ8ANOVG6eWuVR zK>dN^@2B5o6v%()-x{@miujp3oUhgS`QT{QSrobox-UZtxCYdp*U>&7gel?Y;pzn7 z4&)9t{Jw<9ND@dp-B;?gV?KB9adJpvkT0wX_ z85UEoPb9O3cjV~m2Gbc1 z>rXlKE=-pwmM@wXzCm`2bxE#kTd8E(RNdEQZ}5L%(=EguXndxD#hK?cg5NX{k8|HF zg&^4C70v`Bcap~KaQh^+Jebm8|IpIWC8wuaf_s;od6B5#-{ZqhFUVbxh!(Z~CWqC(KU%xY1z-Gfs@^9anjg_esFD!(B8&KEw z<(;zHd}4@J0Z}je#NrDFFlWIjuv8h_z_;=!W)x|9dL$$;N(4coR2Plm2|2z1+j7tcZN2ZI%^FU3^| zedgrk;^9Fe-ao%l$H&J@djENuzhnz8C~;UbeAOSD`<$nNG<0;DhMG_K&%fi~%m+|W zSZIIwbh$-s%*gyJM0#y)Z^A_fBvTE~fvc{AGx|J#MGsYIQp3f@U|VWxY00rCw?rHr z^$|j?MtGQ!?4RF1izydOSs5VsbS~|7RY#ZcyYVf#nG6p(v>B-`Ro z0l2~!{VTTgyU3`u>E5Z`QU7(sjBH<>Ct9y#BSvS8+8;}T_J^e3jyBsN?O||5X9$y- zxd2&ixNEg5&!+(TBM`QmvEQ`0_V z<|n-TVt$cea-O%aBuriAOanG;LT7pTzOKT`)X`@m{w-X%Q~)!Nkaht}DZE0>#l>~u(3S*L%<9|v$(#!iu|XME~+8%^;35F2gI z!&}Z68-JTAkHpCZQ}e*m@(E~^Yj72Ju1iU+&4S@ir+Oh-H{%H;>3%W=uG2(}eA&2> z>;14BkCJyM&`0t}B~nRXDn7H zgxw_fHQvb#lb)#8^T|n*6Zi!UCu3nu{Iwt6WR5wdoKI$rT(}b`T#(8eV6wQUssCTo zTH9SPiNT}?y(a;FGl|l+%hz$x;UJ@h* zD=4|#xw-cLXu9rjEc^Fui)=!6G9w-ll2P_nkFxhnBrBV!BucXK*eg`_-YYvh*)uzP zMMn8ucklQ29>@Df$J_hd_x+jIbzbLrUKa_Ts|wl1^Vg#~Y=w!`xuOcno-I6qQv$-D zzaA9{4bD|OIKBmYbhUeArzcMfW(ryl;*y5820#YU_EbSK!t6Tj{P?j%tfi3ud6GxQ zFK%e?Dg=$F*`qpUPJ3py8~y~JvB?#bC)k;2hlM@8CU*Ka!8n}tvA*P7xJD{>>ohUJ z#e*Zgkao^0`HCP&p`A~EJHxHh4pHN|>msvm_13x-GX+syAt8B0_iBwKNd09Z<}AEp zV}GWk*h#< zF|u52Y`4g&@(V&sC`ic0M$J4epBHd*Jz!W&7K^Mn(=#l;=o6_~HWP7eaCtim=UY^#uslz?cQ@n|&G2ZHHqE z_#Q|_)+cIW5zYtG4OyVjn4}0+P^&}as+`7MrG<4!`kYVIc@Tv`hsJb|==sTslS-mU zz6OlD#T)#z>M$hRmkedUCb!vdzpvDYWxT&9PnVxJoT{myu5uA&Dd@m` z(Lf+gn5@UBISgtFBqc4ZNtox>?4OrQe%gK|vG&zKovgnPR80e5p=p7+v#ut_x?T;Q-QRfUT5)9|u{ zQ~G#XB?`(P+HrpfY*!t~q1nO`O4j;Ddt|+LahY&@Aa7hN;ASKJ@yl0JQhvwLe5Ss) z;a7)-h9HQBng;C4_Z&@==3K{wUnHIAD)A@FAvJ`W1TPN{qgk`=Mi(9d|OucNnC!x_I!Yj{}w=68!|H{9& z*G9TGgHWq(T5|3bXcS$*Y=_eUsr$K9@$m38qDYP|);A-sud<(TOJZXP^l{(``EP-@G z+mXQAvk?%KhC|5$3uH?W=|gfq>r%!4_NxiwwsLJ=WBJ!A{9-19`m*b&-D&(ym}OS z4ldP%K(tp&Kc5Sh)t_r>!K zOjeIQ@1a;>=oZJ9^3?B)J(K?@sA#>tOCe1c3H*iU;hF|a7P<^#?E53M}oVZiru9+S$L-btk zP}3{sA(B(UmGj3J_Px|==meqG1-ZKKPAeUpy8gRSDay~PkU78PY(`c|K8Z!p?-BP+ zhrn70qCXHIW@ZKx;2=7(iw9--t?8BRXyc1@TwThrQ_606k?2R1py)*(V8DS>&esVpgN>bM1YsIN19Ss4N`?@)+caRF6U%98~9;hgyRG=aXWd7y7 zKAHAK7w3a@eHE0)D-O(rgX^VDj%t^q3w_!CV=?CR|2YhTESw3TJzEIeAk>Cv-q6g1 zmjx#$?iX8CuZRYyxdDWPl3!76Z8w;EfsDTD$P45RV|6}aH4F?0=u}+qxVx3Hg)_^n-BgSa6Fj${kjko6tq5F#|Q~28^yb~8IQPhZ{0M*r&r>R6^k%d z0Q&2fFS0$P znK}6L!{^VT$TEiF59~@{Tk&Krv?gtGb)m9eTg=-8A$Y04juwpg~*Pmsx$0Z0L!wN-y20Qs#W-s8(hu~Uk7 z_v2nAtaKK+r>t7j6TpZ=e!Bad^)vwP3$%%eKuyT5yu=L4m;ecWygLACDn_RdVl}l#$D$&}8MP+}x_Wmr$XGIB+`b;%$$?v8u=$AV+CueX7nwGuNLcM+0ey zp5B8edR}T&-H-Mu{5E%4jwh}2-^$EfVF?e03a2v+Y;|=tz>_gGN?shHj(rBQx-{#R z!HAeAOcCV5R-iGT_BniD=ePt!AH;j|`zViXSdiy=6}KT5@j>3As)k)V8`X7mmW7?} zTH{Ca?G}+of40m#G*f9t$xrckZqrE&=aGE1fHVpqlg+7`_AQy?SM%*}L6~ceyj%We z#cdovXDJfjXUQL{EbQcm&j-nZxuwhTz8%O6l)-3a^2S%;wUsM>fC?4GocYgV1_A_i zO^t!GS!_T$EbYAF0Qv$h)AgYtNc3w>3e-!e=PtAk3{@%YvlSVtI&1SfG7@AY*z!L* zuHQ??pu5vYigVMlLsi4y{Soh97E0)+I~FoK=Nal(pd`lqg`AXhr<3*XE$6$GP}Ko| z=I4hA$iy6<-*;>9A>YRL7L1sJm;~W2J3%N4Wo;m)=mc|=k6t@ok1~GhS*H$}1E76c zGAC~!D7&Mr-Hg;DmruO_XaK0HSVI1i%NHtCX`CJdL3oS>n)m%cXLgd|nTZXvpHW() z2ycl5z4=AfJLF7qrV0K8zK+(n^vzscB0>KRnHHi~&dPd;;0MiLZ^DbE^$0)EZoEG$ zaLoTA2_GlW_Rr=P1mi#sgwiAgEfZ!6yoxav`k&ABL6LA+OcX&vpw>YW{-&_DR$Y=d zqb@HjYpUi`{^#`ET$0!>&gTIyI+Qb_K3JPw*_-}WK;v=ke%JlNN7*eodfK7fs&^sS z%d5H;uCqV3c)^Tg&$;JIWiCyKJounZ*7?K&iVo!*1xUvLVu~mXf~!i_F1g~;DZ@&I zXkzZ2yLX$w;}@Y~LQNE1)ot0evhy3=2T3;}K?W_jGO%5q9sugRx}YL; zPT7Q27V9{7k;F-t_wU$`S$`W(EqXt5eq4vYrRThj@71A8J4Ey+`0&ZnUjxtTq!E)z zslNq_4(YWqt>4&VR3yv*H>n1^>DZzqI5HZmJu>+ z5A?5Ko<`cm16%|^E(ocAg^_~W8(4=*dhNa_FE6*X*MLYzGh18d@SGt49)M1>a7Ddg zARrI)Z=SWW`PD|?(z|pFLnoi^XX#%JTtzcPim>=D=0|xuKSUNAKM0$ta&X zkoUim9y|q{snq^iRZ&qBTv8Q|Q|XnJm~Y?EDyV-i!xpG1K-f>TgmvK8B=HZl132`w z)$|k}9>+m(u4AlN^1W;W0efRQy4DAXic@69ff|oBx8y>R~k~5_O zxDG|J9Jw9|BDeMqg6f#vi4Y|ma3hPkY7|Qya!ZSxgX;0G5uQvib%h9#_&l*m_21ouaUeD_&90hb(s-xsTVOgb`cjY z3N&JArp|E7$oHKOvFIz`gX$6Za^VMJwEX5cOCshO*$%Wrj?^d_k(1Z&K41H<*1_wWy$k z8Vnf*fBL?EwP107aN+1=@pa16nk&DGuf%k+YMl%FQbLqI@c2(v+)>?7w@J%T-ti%E z@Q)=8Ormd2gUue7(OqYuq5JnerIKZi8DK@;e{!9(wH25P%VI0hvS}%}eaVEX=Duqq zg8n@ftYc<-ORD@V+{M*jVFVDv0p0r3$bx*+5z}bSqNUHInHa^2Tf{r;xZ*g`X*n3J z{*CYMx$fLiDlBi`KC^?Wum)h&fw$PQpHADHS3%97asGTcrK#I<=^S_BUv#O0*ktj~ z;mk6W{rb2pLr=>CS=uh;6+IS=Q!fTc9jfWD9}dbz0iPE4hVb@q6Wn9!O6OuWzO6Lz zuf-|RC|ePfJLEg7rh6Rv-MnO^xFzK)w4-kGH<|u8|K#;k8ykPYe44eD!5Kgw?!>3gkuuT)p!XZ;o6SV}eh} zVpfXhMLLNlU-G1Lr!1Z=wDqP-7_f4YK3bp#<`=AhVn)~V3)3;G0MOFOST^del*GE% z8CD*pgDDL%G6-2HJv}|KmY%l2Hfec?W5*q0K8SQBnHcAPjM4*#jf8}ZD!d(Z64AQ% z?$8iRsY&Kqr3)&~t-N?FJfODgEBK?NpfjD%5XWuC$m}-nM1DHOj7FN^U%AGe?t=D#cB7?%tsm|sVD7syQNhd4zW~8H z%+c4buOFTr(Jri>UH#CXqb#k&9hWm&63pBPBxaD-G~_ z$?{UIoX7N(X(lWW4X(88O)QUCb~wdq0G1E42h~@mxIMzK|sKc zD64_o+tWD9hO8!GVLA4QcMC4BGy4meYji%e9J=Cg-nzLhQ2pdUd;Nx&_NKv0Pl zG*#qn1^XzVJLv?!FX6!Tlw(}Ex#JO-)5u{cuFl?$978}pMs&Jxz5^EvCJk<$oASNK z4k>WkLzMz4IayfLMQ=F%KNsK`T$5H$5FV-f#<;?LYtBtK23$Wn?;Om^*L}q$N(J(s z5Nqj~T(qWj{o!659*i4`+f*4vx8Sh(UInH-N+o?jj4^Z3NgO!3eOz3$Hjy0=+QX-R z`jnsb;lsk%)*~_o@TBsbbTq#7%M-*UzkTa%A6Y$J6*vPzE!1J(Nc(oc!2^lUJY3gc zJW5H{Rnz7!6vH0m&n$>7-Dv+vnZ1iXfc4{T@;^iwwy)Gv&vUt3#B+h84I*eXsZoS% z8jMz;NZCpI0t&55j0Um|6pzygPe!Xqfu@@b5Vb3ZtERfin*%DPtwy6*4vPtRb*LyD zfjKEX*x9&lnE->f`DCj>OP{?-CnZ-cEhkFr+QuhsRiPXj*Om7}+vlkb=2yO25gP|h zIwWW`Y}-dL!w$`|D+VujaVGy^_B9xU8%dQ?EJg`=C2`?p*ROvc{(i^AF@oXS^o)SfgEgYX<#O zUhbvfgOpd$kOg@Rd_(w_~1G7L(gxHrvva$ZTADn9-ssO(0&fk-*L8uO(=u0K| zi<;+FN;=kb2qW7?xAJ>?dy2~IHLV_nh5hqMKA5gkOF+}aaTV;XP8j{7RBQ+iieZ1| zsBJ8_wVTw#@&0@xdMR-Oz0@bR@KRP&HG2@~GrF4FSzO!~1qHKVk*BA#hrSMlxF4y{ zM@B|I){#6>!G{#ziwJA?E$_Ho-RO&{T> zF%^h!?d(DV3CVx|o)5?V_~}!T_~%Jv4p(vi5=mwDS(7m zIPrZ+cq{m$>*}CL<{8N$sl9z08?3n2A3gvAKt!8y4LrYT?boiS#j~eJu}{sN9zZ?u zNX&8Vg6#Smf>h$E2oFL(Kl=(i*FhkXBe#*~Zf^xA=a8wjWldr~LquhRPm&$sT zSOg=24>o?ADM){0XqVTKN}h!#=(#WtWE*2 zMQlq!;|qp1Aol$RfDwzN=X;~C6s-0i`j@k{cee!V+if^Y&i}r+U9dt*lpr^@ZUqP_ zKw+CR4Si4*MKFZ>_wVZj$7sVhC?q`Y(ds`D*fO7~dkW-bP-g@Bclty^qeEl|mux?%sT94>tMGJbAe$y!I7b#8sU9j; zI`)u}EEoz!5ko&-#VV&7GH+CR%htx#-Ma2=-6`d!FzCpgB{nmGyb|l*Z9NnA|g(Z(}6Fm3j8z7zePJd$`mX}hZ>H*8#?jwHkx-6 z!}Tjmg{n^0=8ATnQO7-Ax@**?8}7OW=W0SygWaxUD__vA#UZ~#k|>`t(10`gYkwa| zUaGv15ZOUjfvv+X=R#drf_&q*!W}o2w8F~fli7eB@*g0EAm*E!j(}b)I=_#4qhenj>pcU@Q{m{kkx2g+1953=5cv>Zod7e`ge2MaMv-OvH&T>rM z>R&U>&CLz=!9Nf&AP{~b(@{a0MsQ#X9uWVwos~F9YNI6~7_0FRY}ZOeJdEH*0g#YZ zHT`jE?xmPQhX}=|GFjKC&9&o(tv?Bzzx2YBd1&RuuDJJ{C+opvJQNQq{r^Y+AalBC z`j=BdK|v=tnwq2O6aazq_B55mBxVhG+PpzM`dJe^O|u=iJrNv3a7$e%>LuL0vUd9q0iaH#Jj99^m$-=fsZmkF>d07cl|TA}MJR za3jdgKIh~>aT^$MadNxNFgVmyD^t#)hNBJHzVir07vdnu%>Pj%+?8)^ zFRzrho4YMXP7w>hHUyK>3k4%xzz_TM@gqR#DyW9%r5*mk9LEZ7xSlWS4J|8v>Z|gC zr3Iou2aFmQ8Zh_wc%DQ1)ZEWLcM^&^xujnwqaMYFG zRbT(&$-zbj_=?~XlHK`N9AfWk3AmA|hyLn5J+ZzT`h1*|`YL@qiTU;6RGma>#iR1#J#^^FehpN3K&f(yX2>)P!S#5J;hU zr0rC&FV?4O5WSHrK#0JK%Oz7mSS7MnAy;O_C7LE*J0_JSK%60ccIpc1WDwMWDY*eN zS_ftV|Mg1w=xsBmsbgC);D#gj6O*(reM%p?1i+2Di1oX$>zkk<*0{T0WIsEy?vtX8OOEEArd=ByhX_pr;(s2xY|6ZkD zo9I|_$=r;#?&h=r(NY$8ssIuR^$*Zk?Vp?xie9=}yh5ZWwemxHzA-d&V4Xjc288$H z;|7{360Kk+%>!$z%19@e>)+26N1x}xBg4uLlyFULrTzW=!cwdD z#g|XjuV7Y^Vs)WphU5L`nK5iLxXee(?CHSQC(ZuMU()erFD^omeL+#sOuDXAz*|Ko zDQl|4ok#MJP$A2h;^7yDy|<+qpR=ut-FY`Lh?-na7=-l_OeLJC)b?*e>JX8 zgV}IHrG5C&@*iWgD2V2m-IT2U)y5J|XrRr0W6E_mTQeFTBh&1EmaZ#RuE9{-GKfzg z3X%mGi8a1(nE#v>PDP;f`gNT#;MN)#sKO0z+m{GMrpeWJ$Osm-Ca!!+F3;sU zrxuNC8{n8qvTeZF`*!>lLYG+v%^^bjDKEE~D8ZDgqoM%*@`IT^KWaOE;TEubVGSdv z65!b2Zvs1NfsLEumTB$iZkRj}%M$xUc$-Ya`! z!7IT(XK?X5+4?1~@e1i<6RmMQ6A+ku#^$Hy~(lm&!I|M0`{yX9Rd z#elxR>{0G25fa>ri5>tWk4j`tgrV~J9ExgRGd=BhNvLFBtuM+~@Qvrkv+-BlX!0cA zzHBCT{2$NJdU=hlzH@)`DF6KOfSex-j_XQm!I36!(7)ziZxKn$&`=N% z0r0dPLV8#kus?+IzMvTEIA5G4ulF^C<=iNKqC&yd9gFa_mjGV^97)b9jYvxYP0W!S z7lQX?#br%9G#N)iAOOL^oQ;fGLS9=tiX+ydOESmIB14P{nV?!)!hSp^9EpI3NDUR? zxMhS(&p`yE6I^V$`?nhP)-jwJ*AaVg_+?23SmeXSiO88@@uQ85_@gXa-#cR^cQ@nH z7u#yUr$3tzA&TSj&%vd{NphgU4r`<|lc_%G6aZ0f)sr<^xbL88)r5tZ&9p5e-k+7!vK~w;~I1OvmIzGB1OeR7>wlS!?SyML?n2(6p zBnWBXM2=8yS$$V-Jk56|mk>mjPo~;s`#RwGqk6Ew@)lstWc1wtyw7k@#sH|Qg zlm5EL^|AXyIhwIP((h@yu}pXj{Zn_2fMN#wz72vh=r&+wZr=32-xdaDA8vs0=KPH$ zO~il!xb1Kw{$tgT{@~=#ohAIN9+f)D`;X)7;e-{mvWKw^)LbtqZxPV|UE=T4y}r1( z&NJ%}uLQHU0N(xYqnFHReK;^sVuJDnqH=~22mWR&iX^(YxmLg&U+fNv%P_K-y)TuP6k~Qy*)N;4TMdYs**=Ew=1*m@ z;8F~bTX`Wo19dq-5`h#s+3++4JQtu}(2)6~s#-NvMx*imQJ3{=%P|#@*43VD)&LLN zkU6yQ;*ICX)^8=HiOZ@Le4W_;M*6kB?Gv_}51{ObfRS+SQiUzenAg{;pfuRt<+Wlq zZl!dUHt)HE69ItsARLcNOypo9vs@bZr9I7o!8$J~<8y@PLvjcgE`s_avQsd?a&|5n zx^oNwVW$=tot z#6(apuPdaz^4X>ytqO)008${Xh)_la3mWUIA*0U3N%v?|`z*fxG=(hUWxL3yZuJBA z2wOTY_Q#L%ua2EhB=|f){Vpcv_9Njz5$N9qanKIfs$Y|o1lE_~6~SpA^?kOK+q14_ zZR1YvFMyO#XM)&ixh|1_U?*Y$t@j!0<8=*U*kXv9>HK#Lm$kB3NXJz&Gjb;aKiWaH zWDedLgqw@lGk}d02!^LiJC|Ay9pjesio*M&EccB6v*HE9IQss5IJlKQ`PPqIE;f#^ z`^G=}z0wZib~Ey$*_(5gl6RZs;C1kI|H z3c8{}9r%u^v=49%`uWt?osvDlXb0@_cNaRT{~0)bU41vLs#(#|Hjud|;<|8=e zC`Q+S|E5$L6=BP)~8)RiI>>>Uz=zZ-}<{%2QKY>2PP~a-h!Zp zi7c1{!_HSZukC_m=R=EDp&+OGWKa0j9Y#NXKfc>tdIW5*NX$5%4w zhwwC$xL%@HtcsO**~tj6#H2TgJSsW9y-?3SOMwbxIW2ivuM)Wh8S`(T z%mZydtGs-8)oEH!6A5@Wib@*&Wz*RLd3YY#3 zOAFLDuQAH7&KYv;=jN4}(=>9`B+q zboWSUxi;di3rm#)J=SB|D;OfV968Fla0k&A0*xr*!4}(iwv7oGr?~5xdW89m1e&QF zNm*R3zPG27;D{lZ#(p1AL)%_V4eW- zN$~szhBuV9q4*7|5(DN)ilFzJG8se-I>Gyj^$nn0_|w1_f+zI@^=C&s!YzK1W#Qxx zaiZquQ~&t$#1F{v*r*1`caDcg($aBUN*CD}Gc}?hzU)4hI2;*X5h6Ku-F8d>`2=Ss z<~F%(t|$o(8R2a(hVBY-wNWI%cdQuG-##kd^_HNcv1Ym2$?;@ITzhS;#p3AZk4r!q z36Wocv%mTqdR2<$YkHMf+x`i4_t}0*aemKL@GCtlc-phlPZ3g9R;xwJU?C*HFF3fL zV|rUFeCWqQd9?&|@`XmJtIE5IlC;o7z-e#S+JC2JW``~A1=Gw7AUH=h%)iG`saY>W z)nc9KXwgS0XTtgN^@oA_-CM!9gtL8TldH-u27~kMwPM%4*yPA8(1 z^^czDRc&y~1fKn7O-pNncWc|-7kMrxH%U)F>l*yLk|P!_#3xj7PdLfKgQqTB@T8;N zKHK!bi+%6JW_ztd!1uu2Fxm&Ijk3d_?og>3JXuN(nE`Z#dWO2EpQHq^F59p z$kvL(VHognaJ4J7)g(QF=AMYP1gujCaiP;j*914+N|H>_3imK&>gcxzFFc`EFZ6fD z^lv2S%s_;+dwd=4(ke%AGbIO$r4Xfzdj)wvHwdo)$P{rpv!( z4cO~v1^TR9zsh{8@oTDywk8(_0XME*jZj~5{eu>KKZRS09kXy2sUKko`UbDv1tPJ> zQ*+Sb5}^l1-xGwRDJQR>K=^q366YtH8f{*S73%{smmFF4bxw+Nkkx~dGZQjDZ~%nk zDVNNCf@2`c^<*H&Aig6HPdJ;)8K@GFD_sOj`A3g>R-MX?Ih|0wMzR13xW9K4}uB2MYl4*z2 zQuWpTNx;_urwA@2^Y5U9I*~;@3192g=GkJjWRV2VrTSoWC>WC?c8YLr_in!Oy?@sX z$Mak_R*vM%jpPlNbcJCNjrXy!$e2N14AQ9Y5Nr=EdA*XDWvdnuAj;~XO~_j{ovChx zPD%8PtnDJMi&wSIUBX*=J@OH~k0sFDn4mexzqQEznl}?nkpY*4OC11SXaE6~1x7!~;3cTfA8@b6Mt2BPe=2o!qx-ueMU7zo1Bf)&e830G!JI za#{C1NJD6(uz2XK{GQpxa{<8v!aT>R>eeq`o()}k#21uI>w_nb^*fhT>D=tmniDKV zLR?&=CmFPq1#{>;GDxFZ4E64X0y8Ebz0W|fcPn(#u9f;=e(wmHzRkg-fV7rz&p+0j zHqdYdPgvI^L4Srl0oaJ9rnVLq5TG>G)~8Hb`hws;1vMR$<{i1da${EW0U{p`sv|Pa)=Q~+Oam(iVjxu^H(ElIQ7+(89J$d zU?ToV9OH61bon3r9&^`w+9+wqlva41rCr%YK743sYPGyN{(ftIP^;hVXKVrTI30eb z{vIrjTpboApRp)HOqY80LONy%aOf7uWlnpgmXk{~^K@K&RB-28-QG%#_#~PA7Gx7* z0p|!vgBIrPM-YWHG|Y3WF(v|d;|rBt=I<)B?`Il54B2~GlFJP6^D(9>(d-KF+)7ok<3`rlmpE3&k{D6x(G zrbRgoo+AxMQOcinTcB=N)c@UgyN@y^r;g(X6bcy(E#;J6+p#23l(m=^Fne7i*f&e?fuB6pt?b z8K!V2G#YL6Jsy>%^{6+qW5?@vtN@c4Ur@9Cccr0r6>zj!w5Aa$>5?|2d@WE!1Rp2z6rSxLL@> zq8Z|_w=7P-pE5zeD~<=c07R@*C`&~mh-PUxW& zi?nVim-0K_m)`&iL(He>G?UoL@Fq?A12ToMmuR_Wnc74q`|&Yv=ldUsbl8+kf)BDf z*Ze^w!NbiKqG|t=NAEQg3;jnFNE*EBdczXLs*VSg;JyfU5anxvv*OJsob90YW;)d! ztd5#GwoA#NJqDJI-tLJP<6vKljbWpPIzdU3ljA9T)ELYI4KWxELb>axcB-NTkf~{} zLu1tNq2Ay=FAHxgtib&5cVZVp zb{1jW@o@OP>uPbkYwA+5yDYz231c);%_T2OxnbL6qJMymA8H#e6)p+;$`Zm*H2V`=Fcm7`m*yHjQ#-DO=7%L#JvbGf{&n(Zln z`)?^FJV7yA>js|GrI072okw*oUIUl`I@%6C5OGR0S3j+x zEbYz^fy@ITetCFfLel>fqnPpIpcp_FlE7T_Db#IwuJ2FrwfkAOD?I5ZV8=^6*45Shf3K#KptMH$~SKbC^L zfrn)uM0DUX#Nq_bYW=q7Z+Tw#Nt1UJeUx9`oYVyT$vBf}l$#}3T5}yG(Fph{P6iuh zYRVXj=Z$S`FNb;*jFpqrkC2FS)#eCp zMdJ}OwQvAZ5;|j=UmXjBdP*# z@9_=J5Fw9~gGYZ?3(n$C$XWV-x^ehGs5e)2PatsJc&)l!0dFL53<<3>oyNu2)O7;5Nr(;Du}_&!-rpyCoGDSy`6WO zAHMo`_3_`AvT3sik;wcOWuX_!mdLh)(DG$mO9$yMJli<9nkz`Uajw2}jc&jD5!(Z0 z-L!1}pq?f8N@Fd21gxhtostR}eMy$(9E-=dMBWl6Oe%aJ+ks zMkX4TYZM$=J!V%jl{u(tk5_XLInFIMc;y!QE}IhH-vdgLzQ3LLZF=Fr_jG2S4Mh7c z?G(0dU#FwQQ4jFK_9RutDlgA`X!dO7f;!t2!AtWlTOOQlu-O4_#?6~IVF&Rgyy3}& zB?P=*0i()B=&B(-)6em)mEOSAbh%yTuh1c@q>~RXtRux2ZB`n^m@JtbOq{PQ2{mih zSRa13Z#R}ZL7cI=S=IBOR}63As5d6!PK=Mwfh8;$liDwD9r;RUWo1JfLd2U0C>_9A zpXj2p{5a-NTvyklD$zqH=J>A1X38WIDh+qjXdY$q@F1r~HjVpmQpnvU{47+M|N8*D zmn%lIl;1GLznHQHv|j%B$U`5B<;t0~w6`{r=XedOIO0z?nGnF=#f1uVJdrohU+}@$ zSkQ5D7D^H8o0|rPk$^^9IDKw>5+2OR5{`$lSm9AW995Ym&cc4%lcW{eNQZG5GyjPD zM5+-yG;^~CjT-!uEQ(f;wM0Yge3TiB_-w&k0Qdx92_N{jvHI;(A}nH)0>hhB%5ZPY ziUgFRCGUm$ZjBrarG(tgMCo_qEio-wvn{NK66BmSQo`w$dOQD4GyCYvE{P2&7~n=m zE`Mm}Q4xE&ZM1h&K;~=~*Kx9zHw>xKGO1F#F0D}(X3$*cXryW8Ca8VeX)(@ZM(ass zMkY7jIE3Zu;Smco9xzkoiR~JeUWeX_pfwb)DlF7x;cIcW7h!-K-)VW%m_^24y+|*5 z9qxfw&38ld(GGmApnKK*l-7}WZbw80f+v-3{qE?Ru8SD5tT8QuO2YN(8YU0iZU@mW zFx?*;A5R~8sDD(L6ODLO3)}Xh#Ke>!3f(OFa-qyS>88gP5|B)>KIq?2;+^qP`@yN(Loi+nACOp`d#x z(t^rJV0q~p!B=2nLPuW{zhCzwJ3mZxQCce7YrxTl{^Ydv*N;WgS6L269Z(ddR02tK zD5-iOudq-nN)@L7s|&LvQ~uQwr~7K`$Pe!TJ6D21FjM~LhOq#r`L{`>N?Ci2G6QQ{ zp9JukfKX|}ePY8J*e8Vnas@xa(Wk|94~T^v<{A~cZ*-&Fds|*`V`oiVRM-9M#~4OX zW)P;%)eOd)c4Y>R{Fbv^TwDm(1I+BeA%uctTryCJB*(F$OGmT|Y$u=%9{SV5zY|JN z_Avg$DrQbNQyJT~bU*4sGbavMiu_4zwEFG9^cGC(Tf5D^T3@allp2X4v5`($2L1?y zi~SCwKixOhZ;A>FH-l&L7YLidc-~VoUn_{x^5fu7r^8L-e7{{Huh&Z0@DWa0WR;(y z*W#!zCAU8(D%CVowYHsvqt;F60zM-~J?@zct&+Mr7*hqq>cO(Y!bXq! zJ!TLL0DqFoj93=}cSxp@a*=hX37k&!0ngBr2c8`~3a@|A9|*{&5V{_?uy`^?^^``m z`EES2Y>TOk$$Y{&2Z0})Y440*C!AnGlK#(IJP6-V&{BxFdP)E+Ehe9C2dI{<9=O2X z(BmPWgz3wC0MQ7&=K01$RFA*Idt4o?if_dEco>K)Z&o}mNh&LO_XR9H!xW)u<2*Rx zBa@hg&WoIy=BlZKzOE$)wIxte_IMJL{)xsAz%j`gE=5x&anf$=yNz3`4+(4;E5m#^ zi}OW}I+yp5-s-uT*ftQ~#i?&z|4sSj>LMEHS?liZ4ja%>5JI{ai{&wM@6qZH9&OwZ z6RJ+H8zHfAQ(-AAD)4_VB=H>Z#nJI`3w!(5&{DY0M5dSgsRO_tp3rOuD6nomycXSn zIPCq*PAM)anLj|or@jeHL_~)wW0JilZ>kk$H6W-AB2i}6=BgR;VLsg7vm`~W{gMDa zwu7T1nx8iB>PSL-{9KsW^gAr=N=H}MsI`%TsFG9UOJDtXhs(mVI6fwL>A;fG6Bpy| za|!p`m*`KA!OED$Lv>3Jw;L>zk-Cpcb{?|^4m44}dQn}7#^p$o?`LUrJ4~oJt$t?Z z;?BERk}P_Qa$8iB$ha!*$c?|k1MLiE@4KuwC+oWA%dYd`ssq0tgu(z1gThT%_;NP+ zi<>Z$JvLDg%M7!~yx%N>%jK;CrCzhuwKZiieW65~fb(^%a+TkIxivD)3ONyqZ;CV* z{q-4sczu{fioK>TY+k(mC@maBH&$>ALEC8<5?3{C#K zRfPJnS5=F0X!PHnt;bTFP&Qc!E~9SS^iM64ym)SRuy^j?1MvO}s*&c31qD%%2wZD? z16cD7*O!1bL&Zlrg-^pfDAgdZ7+lL81(fnkvMtS91CZg&h)E~43b>#7ZbL)pjW34H zl}P-&I^>{%PN*0>M$Fe|id%fHrFlcK@HKKoum-y z_gE!E55Xw22}0MH62UqXL4Z||sRO5H#SEUYB5DD!ewH-SkDx+~l-hf-iB+q>)9Te9 zG^WvoVQ`%r-_zK5z^oLtj2aPYT5=XIry2v+xIL~qfB~S9foc>IYKO>gdpbCH@+&HQ zGU7_o)aGG1T(}HBIIn3LAG*#{Cic0dzL(MByB90uHy!>rS*|=^g7m~*pbUEx*=Gx0k1J} zm~uOu9KCz&YvN>Z#2X2;FD-FFfaNC9KGd-C8>DH7i314K;R?@Rb*~X&AiWX;1@pj{ zL5vcx{9h)b-D1+yXeJs3sLVotTxi3KT`m-ETsN!kaI|Q9|DFD{GBS_=Sw8T|z(9Tc zq$I)&)dA5zQUObQ7Z#gEe<4iqd7i_2i=qdMJP2 zp%@Y!{L1j3TsK#|SaAD5xaU|5F1lqlwyZ^9Dgyly{QZ+*R&cNr1T}=#<9oPjYHFhS zE+8O`Y~|QO0P>KUwt+6vdr@HX#+K473{YbMPh@kN|E#OaqFh%f*~Lmc!B z4`Fy34Pm=;KIc`G$ML-2N;}wQ{``pf%K~&!|1V0ux6Utm9LHqUt?rS6# z*W+J;d*~gP3^IjnCIs3z>Owek7{_AnBH=~{i)UR|*}{p$39Zct3GB-lU_HR|+&w%9 zf0-LC?j7lYts-PAFyU$aD={6knevbgzUY#;Wx@;CzRts~lSn2ms%Dd}89R(1XQ3)4wtZupxWWBkl8_77^ zPVY%ja_5X5F?E5_kpsqOd_y$TBEle#>!SL3&$2dhp8~eo z5eC7fr48IuSJ&UM@5%lM!QUzKX3jqOke%2TZRp|6Ig->HOGx4-!3_T;Ni*2dqrYzD zMFNfibz|xJR!YL2MZOa2lK1-A-{~#qO4>8ctszWuR+2K-l0nYUTIs~2M8{a2nn%`y zwf!$ft{mhWn8H4@p*-WnkOg zbHb-L(ysHGDcVOGP`5;Hwv=)G{mRGjw^Jriu6GuC{D5A5;DN}2zZPzf;&auquLlRB zLl1wcJC4e`N$Q(xr#mMZOr?T(AZ}zNDe90ipGJop%!+|ch zBpI#0zecbDX3LfGS5Lc>I`H6K*D`p4`#1HeGF6D)!TYRr{g~21?-y>jJu=R!Z_Efv zrY4NLq1Rc-n4nbYXyZRWMChQ6xcpx`Lz7%+cU~!-h`i5$&62lc&N7=}K;48FCX^TQ z%l|3Ps|P*uTZd6~6~8Rw$>jq=s%~&i`yKYL!5dgrRM?dzKWs?5p68yRSf^QkXm(cW zU8h-QkZF)J;Jef}os6J?Y0Yw<87E^N|46e3}fhPgy18Ox!EWh?FyeNqLPWmywH z`yI+Y4m}j_^<0pbHK1;@B5b%KN55*U*5{LewN$-xm|vHDgu=F%jhopbjQq3CQP&_7 zSS8KveNlbr?D|r?-@%`CCBg^13gAfmwPEjOW7JrEjB1chjYgFbwCcQ*Gjw1w^f1Py zN*(@uPXK@+|HX0Y%~dSU%#RPR+M-(f)v)LSE_T-yyf)69B30)eW4hBcc}VWs_g6xR z#Y~ie6wvA;-|4UBTi}5RXcF8(i1YiJl=`K26c&?50foc-4|{mcK$j$J;L0FA=%cKw zRVUeZYJhzu;#QKB&k9M_Fhjeu|Ds7=53BT9U+Ld(Yj*HTvT22f-UcN@<0pT7({3Hc zeKSNgt=S;0=ROQPkQDQDV*-Ff6Q=oB;;mtwyJq>Z8mFIw1MTu|44juwq2uqheD=k* z=CUH3_-4CyTBaUaXVZfP1wIqczZqmer@^227%kJ3Ke6-TR^{cRlanCTFNBar6?7X( zHk?V|To&wJ^Jr?XoyXp?nCtqw_Z>R-P)pG+8=)b3()DV`g#E9>J_Q_?DUdi1+$o?T zlg{)c9303MtfA5QfJ#VYTx(-p?ZBn-<8)jnUSaBW?K+ncue=-B>JK$O>*`=u{&-Vq zrCG2yfkf3$PXbL9#Dx^?d1Uc*SA)nVTZ%l@Nd&XJ~NE7Wt6 zyN1yD_ls!*RY9MUB(0^nf3mA>-|knwf_Ghu9gBMlt~Yj%Bq!jAuBaHB9A&GidsLii zS$t8*fvH=rIx+b|M&qE522NKa0T)F{NSm)FA7(72=(7JAtOe*&z#{FdEd6-mX%J<2 z`wiEnH;@3!WllMkO!!nvbTpUKlMLOA9VTc0(il0v{eIZ!TYQPZUgWTmi$@$TGzbCw zg@dYZ>B~zw(FAMZsI&pT=BWxsF}9?aJw2E8gUPA4H7s9xt6lAGYOxfWD_WMJis`b3 z*99k=A8kDer@OHY3rM;Lk^hxgXC~V%>v_fBsMTF7vaHkBukQ-sC$>gMjMEP-1O{W! zvr$T?_2H6@{4uIJgcyjz;Dm-eei_n?(RskAr^iI4xRwWAj`4FDda2sK_bC9%T{2D9 zy}QR+HJ2H}TwKfpH7iasd#h$X-U;Y8HyDvjA*8D~w4aiIrSTFcQi(cX@W&nTK7&@w~IAh zVTB^+fmY98+W_^-)p9I^l-M zAxZB?si`y(f)!pM4^d4{yz+VFmq)HYVf$L~O6*ecUntKc@elHAaLEKC>^zeSK9q}bB zSAsnfrKi%)dJBPs7y=`ujSd{>?x~hNn0AK;_M&E$k@RN|DH;e_fZ-0#kU&P+@toY? zB)Vjj?ycc9hsl!6_Ky21#vEL6GB0mrl0h*?^iSE(K~Lgu_uSLVE(GMEpo5D`NU{dR z+(A@LAU4CKV9-l5+tS&IOiMzSSm??erX=K#Ko0ZzDwkoK2bu}r|_^Qei{FeAlSI%QyZw!u=ajQ&#Yp9{{FagR8|>(p=PnUg_?rhp z+=ujefo?HCW;Z%n6g+Aj%0ZBHmjd2*o^0F=i!ijFaB2Vfbyx zsI9o@zhIRNJSYTVjaY1VIim|;V^G;s*U|zN#rDwxCHj>!)p`$^Rt?cQz@6 zjEL-!aqJnAR5nTW9@#5iDbfgVjOYQI8M@dGH2M^ygDtRdQAryf@K+R008Y>K@yL~{oFP;OpN!vv?A6J| zIj*wd+}>g4dmA3TZ=-4e0M!U1HN1rLJPsC^pEV?*HB?02u_L+eJoT9`V~B#*TA&%e zZDuaQuROh$4aWg$rdIxKyS-OO@(H@G-#yxQggSmJ6f(P$`Ve0b z^2NaM0Pi*kxvLV1XPxSHNC#;Z8t()i1qKYUG%vNfjpBoQx35k@;kTHJ>9(cDj)ub< zIP~bqKbEVpKr0`uaadosU;SbByPI06@VUHc-4)$5>MinTTaOIW*Do$}2rx3Gq$j4{|40)Ob?zG&!{# zwrEA9b7&84qmC=k*X8@+TZ;$HFck9KiUu`S=j9$=KqHVtzP{_XL>y+&yMi|R?DSnB zBrWZcE6hF^5;ZNhJ=8tiADu%s4V zii_`~v`YU~Kf>RZlMeQ}I%F}7_p&&5s)pX!5@BEw`y(!;bHW{sAFjJ4M#^WwzH?;? za|qR2(V{Ox4V$88sq;?vZI=+#;Pd9WdwP!6JffrYz&-|KUtPn*(hJ}?nWL3oT_?%V z8hFGv4v&cGJ#9`_!S%2Txr)j4L7Q?2g9U6G)QmBv1`k>w5JE_Z1%{*|Z8clQMvIQ$ z*HOm?9lz~ShvKbQ8QS$4QmvuT5-#^AD6kTQwjB9MaW0mO8_!O=`Mi5j7)t$|KS(q5 z^}xrYovL^arAOv^m`aGCMV=+wQX*{6ZL18*m}F?AVUhuG|8C9KeGjhOoE$Vwlbz#j z#dX=}e5BlALM`Agr=my5kj_RIyW756NOl$X9i%IFNFNiRxv$C;p}ik6x*V_S_*7-1 zu1d33y~m`hK{wOJ{G}2|CDba0W&SWDbS35G4{Pk7N;-n!6i~^?w6ugPPw~6u%2;t~ zvxPRrh&HWzZ^l?2s^FUx%G_z(`$dipQeNF3MDv#D-ny7YK%hZ`=8N%YkvAXRStG3z zX4T@3F778Rb3QA+`C8A=CPF+UKv96+@xO~I$5?`k7P=Vt_W+9z5tU77w2f(jf9P_| z`L(gb*FkQ${^=9)$OlFZA8@px^F_`@0+=vzNGPse*=>~FT&}RjN^2C)`7{uDvUFuv z`YgQgd|s=%=b$BgZK__mqxr!`kWEr(zqHk-aptXYD-t5&B`js7M(IIkE=>;&y|!Se^WO2-f4ZH@+2jgvuFhO#E!b5R7tdPU`PlLkw& z`b$60<=d6dO&b&zX)^AGg%%!)*OiBQ*hlXyu}(Nw<&*0vRDAV^{rs(+ZiEodcGYCQ z7@c9^@r5Mg=-%UeP22;nbq`vKTi2Js;??(vVPO~RSkz(V=zI-!vi<&%qZCu>k5_kT z(k1GTIZlnvBH?oh=NO8FKPjAGRpa8nOvpgMpKIDw-71LFCm(pQoxMRFq4hbi`2K7CTXEU4I4QJc*2?{Xb4gNkK&uD`5?I@c-NzVFH zgQLnziW#5&^`x;))l2e={humZqyMi3XmIzriN`5Zr5E}{ZS)^xO8I5-f z8{Y{y6fSudpqd)aQkIS%TpN+TT!z??bD8uYOccfLu_PgQ7Gn=tpJMi?y`Cnd96Mg0 z%{f=SToDQIt9J@KzOIYB;!0VAse}^}M4l7H)6Vz4E8bB)I5#ng_>UAS0z(~@&DT2$ zP&c$=JVxJJ(cuWY(;l;sGWk*d+_t~j*8A^^b91IgudVh9->{&LiHa6Q*+B|KzL0uc zaxpqkbygGAy)4Fs`_kUaPYMLHASVX~4p7E@@9ETmD40|MLjo#jU1d4+^14xNB$p~b za+=c5>Vcez<%|;M6D37^hOi{cQUcP4sYAXuq4m5%sX4{mL;%!Ai)!}L!RA2TCC8Gb8z@P*(SO#kjL%5{0qE@A{5%Q%8p zny`~gk*97QU8>1Mqgz6O->6Ss$eKtUU!O*b1+R(SQR)8ipwb}7&bA%?G$28s$ zZE15Dp2aES|E_>}2nr{tXY_f(=S3ZOS02BtnXbFC%br?6C*JrAKt@hWgw=j%3co%% z03ZXuF<{0^Bpo*zpnqFmR@RCRD&Gv)^zl8NoMoj-EVN^29oWTE3>--Sl<{P5vH=Y)q^VmawJiqqzxK&5Pc9sOkbC8W{(ryX+AC z@SmaZV@H3!R5-uj)dcwVpZ$r^%F8eONM2fF%i>D8ii{@Oen%|Xs0wq&rtC;cFVLVL zk5tyPumJe~T*;X86Z}-YnBe*CDEmOPJWbm9m8awej3lCoPNKDx#=2=uQ!}i~Bh)=S zmVyz{)IIE$$`JrM% z@0-G-Kj#r}=;5`p1A-Hf=W=0O7CmRB8NJ0ZMrr!;A^ZSPB6hb|rYgHvRB}9~9M7V} zTjH~Thcy7*LRSr}ldn3~-e;uiSeDp(as{w=ekmo@a6;W(1Jt|QE!T2LD$uHSNV7r% ziW)JR`NI>oJFaWgN_a1@Sd`w5OYMcztDIkX%8xYF+^e~XOEnwskWG%!kbypEe#^HF z{T6QmlL+9l>@^(TB|1M9+xk^et}9X~by6TBT?%@QD|A7N0I$Wm`{~d7OP?@%gw;0d zbdkGAVF29uY|fC?sDxUXD2EYOzMC4RM-7Y$Pm`IVu-sNHPT8o z>r+9J)iZKs$eC6bMFE&IU=cNbRf2!uXWn9U)#<38BV`60HI}lJk8}~|-^?R@XypHd z64qW!*uKB#8U`AGyLzt)8RRFKbAI=Wp>zgy0f5L5i0;FD3e0SO*>*Vy9TU{X|d;*hJY`FmyE29lKO)$kJ|XG z5ZRFhBrU2OZ9RK}%YEsKYt^p6=63cdGPJ7gVo{do;GU`3Vk!)@3aXc>!)@hl8D`GU zacE@{8W9mujE{&F3LXc<|HA{n&fhly3m;6vU(!z_$!Z;8 zrX@T$Bo<^}o8$zNAW%XnWlIGk*wco;u6WfMHh&^%l9AcyZ@vmIzmuqv;4PN8$0Yb; zLgN)fD{6(K*5yPZQ9EiFmShrGJ$K%=3MvpVe3)+iyKVYy+WFsyf4isX<$rX7%YMVEJ=*5BCJ_;hjcDgGtS9G}{~U*WWdupBPt!y*4X;E}JaZKB4Q zA#)n6Cxd9<*A71$CB>9sU-93U;(}?tb=?nuEd_F3X400TE|7p)>OAtxlp{Pge#-j zoG(dZvs<|VmcAIa!-x@kND{L=eIU#wC` z^RHBt=Ld)LF1W7S3s2B*JtU&S#|s+JeOfpQAT%fd(Rmu6!$2=7T3CcO*ZCv{UBAexG&7rj5?EcMcyssM z6W3L_f6w2KV60icV@Pu49pY;(l7F0fu3*HxJm(|1LCUDxFJCEouuqD3Ecd9$+z^i_Zy}9c$*OS9?&Z8Z(QBM+EHt6}6)LI% z)fp0Pq>kpW&=EGEAF4dOvimZ^u4Wp_eY{wDVka)*{vz!b4M+~gy=eYXlIrfh88I(g zN)N@b{QrK01tX{E4a(}j*Spc2H-BvOK1DhA%~~05J*QhkGxGDmJ?(5IZr=zmlayZQ6IkL5F~%xT?=P@M2iXo<;%kvuA-;+=qBg2$idX~HXLMVNsEzk%yx$-8LPP-Y7EJ43Vj(`N_ll2h zhyh=F%b^7er6OUQ6Pl?6q*YwZNEz3JsE;>M4vOZLsU(;!qfJ7&09p?QED~^?X({bJ zkB?VMgE`{LizO+Ph9ZZ?j11Y=7Te6{>^Fx}l(Idc+gP%+nl}6qH>eA^Y^>Jv<0fMN z#@X}f+3iSTDbb18Ada*;tVHj^1mvk9IRT<=;BShS0Z7)QFL$Mv0R%GVf0uPm1%gbT zoaV1V)yXZ$f-`o5?(_NU9CxyX+_DR7KL6eJCJ2>d&-6TL9wL!Ghr z<42>E7R|2l1@%@2Uv!||v?O_lBM4pS&*t#{vmAAEOVY>_EQ)=G<$y)MZ-@jwaiYk?UoH$Vh9xXyB$03`&JIZRS)8NSWnBXxXM+HY9J zb+Gypu#_5Pk1Cbt^{1I^%Rk#p+|ZPRI2h&pmqtO^aD?+tX{mAX86H&ai(^{QAB3!M z(U|Y`QFH_e=$7V@2TvM``-7#KIU~T0mL3i6USP4}V(Om`V}Hh`T0(M|%6}5It*ze={tF;m zpD3r4%B?UGGQNIS>Y%;ItcA{g$~>SciZhC#e5=LtRqJxuFNDdIzgSR zqo+klC%K8d*;0W6{M2C&WW+6D{iS#?Z=Aj9#4GxKv;J*@9rLX!kU%CL^AWR~tkotn zLGKbkKj_Qpk$MJomj|YJzaIeiSaqul)H6 z*(Dwu{As=Z>voOz$6MdG)CRBgSx?GmQq{t%#gj4*nAsBiq5E6iUATMYNO3OgF8z7i zo}#&Zw=u4_72;`L;!lL!{m3!yTQ2x1<{u2zvrV`3R^F&}oj~32^);k{3X@4m$l;)c4DStdn;* zid@(3LXYfB3+XCVAb|tFGhA2tKCUC)7#|b|j7FeCy%_Tg<^?W>3(XaNsbe zYCK|L@d!9`V*M}|&F{#;vB}0$q|Q6pwda+Si=c`2J^CFEMf`cmmLH2TPC}Rd%DK1Z z-m*zMRWIv9qqfy;lC@Zl8_oQxRtS4SMC{@<%j;v!YcD66@q3J4DUClT6UH~8)395` zy%iy+6aj<35XKU$JRiYF2hjS{v_s8-8j+>^(k;thE#f)4*{c&atzZ612Ts-drNv5} zyauJ$^FlK`*9y_=zOTDXW3Cdjeu=W~eLun!Kz!(3$NXozt|vxAfgjl{uD}7@3~VWn z2p#8X<=ffYs{;Za*7>Q=nCP2xy~K%uIZGpX1wLj1h2(q5yR;ESfCs~7MyJTp0Q#0h zJ6*vI_@A!(iYvt~Sx;Sk)89Ta@{ZhTho^a(ReqSEUmJW$14 zC#^G?t`K~K9wf8WGY9^5;wAe5dSg@m1H|rOoQ>G7g{oLa#(mR-+iuW)h&W8aQHX>I zyi$VJYm+Nypx>;=O|t6A`$xPvLc6+T)Z0E)8gIbT4nZQLqvpog`W%)fU@y%!UHt^w z>uCA;#>0I-dp0pi4l!%f*_aCAQpFde>A_T1>c%>@4%KyUnPBH0Bvq|kR}rVEhUc)- zxHT6v*?k=EALw;E;o&=XHzCt8AOxT{nppo$Fu#MmzTMHtv*dIB<^7fSS1ij|1^+C5 z23HFhAVg`~??M-&4K0nSX>+PoqEv_T3*j`-MZoVu7i(qoDDhx_cxIE%r|940zyNQY zG9$H;N%+SR=AfUiA=(;d5>pUEun=>M+a<$#IFYj0@1gHVh(>NAKP|4SyZ38!N8GZ0 zmHqbSwn@6OeBGBaBSr}!p-@!?^U&->4YZAel@&p_y~KNSxKQ7;{i&}B-dufxl72l2 zBWNrEj|EXq(L*ZaNb2iJLNUgR+`jFxowsOZIn?Q}oljGsi>-|%K-5Hy91A(uhIy5K z4&atHFT?C1$>DANVy@rtrhk=%E*6qbQPm!V+u$h$rmz6Tt$y!37`73*8rnR7iv)dR z9Wt%@LrMtMBeF)xoZ-6bV50&$nVt+$6Xmp1lK^&J4VjT* zk=5-ldRwA`#DZ52WDVc$cmmZ6)pmvMZo$&wDM~VUe3Te*=yT0<)(Vk^EWIYYZt8=$ zZ_#kAtxr)lDhnT|b3R1{bLi>evU<$?sv|z_5cn03&6(R@m!wo}P57m}dT5)TEYNY( z7Z?^kMQK6jO+B$X2B=gl6-s&M?MQ1-!19O?3aNe*@ zV)vpSIEOzVblsd?JJ)}m`z-$%+^b>U336ub`AOb|oH=&xWBX}mQ3uoCJT_xGdh7K1 zjIVa@Kl(aOVQhnf4JI@%Ubwkg)KvfHD`$?yIgxu(=gHe^IYpD7N8XQkFZ7$9ocW_G z(Ovf)u42 zL3*#3feM3ab~jCTeQm7>3RC0c`mc@`f{{wGwD%~5-(awnu}c1-R*KcY z_G$TkC=g(c9A4dz^JK@{y<=$klI};_HmCyu0ulcZGpTqCSaNmq3;pg2!Q<`6T_35K z6!PkFw6ZP=b}|q4$8FaLd76B8e$Uv}@?x3fSB-GJ=na`9^t%5a8s^^+upn_`WEF0m zwR#VX=>=oDPPjVzha4(_V-rkMu1wj9{w~Rpa68mi>}rp3x~hEA=qd~OHPT3V6s-(z zYblKSVASR$YKLBLYj>vIlOm%yJz1+k3S6rY^4h{0LTaL;iU_ zyy^zRYk5YR*|zshv`N>NzC2ZkQ(y(DHxv2QYLNNGv<)fy+erlLz$}~8U3NH*bTXpu z5x1Ok-^QU}4H5M}ca_Z2x3qxiT$msJ#iGz)Yt3OfVa1qWjW?aG*g(90SBfE-m$wBG zf%)Bp@x!H~dPQ?vBu%NZ7YT9Bbx#uO9i}zGAP%fptox|#$E-tc|5X6-UuYsuosxhj zHd5n_Cs+HgU*z}S1#q;>HFT+h{q4pzpt&-&^4Cv2V+}ISF}jeXCN+p9TFb8{c69{`=2s`|Y7wDD4WZOH|w(LsmU1LR&r z1OXrjAl-D}efXM^Ut#FeC1h%m^PhGbEf$mbL)`-f8pM{gbQfgBSBIDt2)dh>|2X@%} zld`Xyj@p0xybkMG8*`(KAygmlIO*D|*eZ9fx6!KQPG+ldX|Pi$Q$W5d5&N6G1*%Ze zan7P(0{%y64>=eB8R#Ob>&O{eZ@_iBuuB*s<${bo|Vt*u{(+DT<4Rda{X z;MQDIu%qv!<28gt)Dm@I;d~SAUWRO+(VMI+J|kY`o|Y#6K2hPoT8(h=NiAGXg#nX* zo45uaiF`kiC*8QpgF%b3*5$`5-P|j@yqUdnnP5|{P%7rjW_oie=!{%7^(<=SnQJR4 zL6uX}8T%E13_x&;Dh^&hiXHi>n-#tiwbvpYHhk%~nPMWpd}{>hb3k%#yD@14IK1uOH)R5#(8Fsq9WNIKaj(JmfYACpdj=lb*CYl_36TC246F$dxF|AnE z0xh^RI4Dy8LF0$-l;#_7hF`cVzQmcWHq7}?te@`RyU|j~{^N7U6A4pM=&@k40Hhv3 z2Igb-oZsrcLYCg+p0Le)0HRV5W`T%&eI&*86%-ZO;>YU;_7fyV?92-e# zZC6B)4)tI5{VAE!hWV*~4Huva9>cufvMw1D+JK(M(dE z@okDfp3xeCIvslrRP_^Kj>){_G3!$6ho`V`j*W$Z8APc{4P%1o>56~;ubGbPxWPtZ z@r;m7W?lKN$|t2!V0`NB2(V!foBQqFg!7^1WOX;AU+?VA2xBVUA&56w+V;eUpM)7y zyv{0-jFHpq`^TTTQBpq9R`uKe>6{Nz6!ObP;IH4Ozja9-1k5@+rJt1MCMmGM z00P9ya|I&cGRD{Ke~37M$ks_x^v@DpUB#fi2rsdo5S|cx-o(t&ac| zVaE9{vmYC&Zmea?n#lO;wA6p!;Bs@1@YTJ*=eD(yUOCSsz1r8UWbYwypVwQ>v`3oD z#il~a!{%Y^K3C87c~4vMs(THHl#Mt(bS=8rS@IikG61A``ng!`|Fr-hMftJFkJ2K{ z^$51F)P>dt7BjPVQX#55@0uR;6gvx$RyQpgAPN$o-3_WonYsFh$VrcYp z>Jw|ck4d}0Eh>MdVUa~XJwE)(;S~1$s5BagxOA6nb(e6c0WS^RY3@801;(~_T=7Ch zOJD0YS|)0=xt!TGm~APm{TtyLc}yt!KQ-;t zYe_B6n{V1oAGAKR6|x!T9M1V-3ZGM-2RHzlQy7H+jMOnOnBEfazIzv7B6Ua7&|!tp zUpqVB8_PEGHS-e{S(3T8tF5B$wSUWQy;7^Ofizuj7Qe3@JMQ52)6k$y72BuH5LNcH zvC=GbUw1$@r668}g04g-K0+=xd{^#esp!ay?-(L9-5B3FtUh+mT%RMNVZaVE0X&47 z?pCu?^)Inrgj4nOkzc*R?akC>;{D*S1_|-stu^wsI4Z5_tP~=23Sq`)e_nBE`6HXO zO(OzmK==&!dJ>h=zmG>%%A*|^5m^P1io9H6K?LBS+r)Uf8>p!l8CFGzzfUIuf|3vzT1*MO?pklZRoQ;PyS$Pc6Nnf zu5NxF&c>nz*kD&qdzhF6y?giW{MJT=rrL~|7sIUvXAIAR)dS3m52ULVeII%`N^m(t zB{5sqei^LtPmmKt>$pZ%`DN@=Md#e)M#N&2>nfwFlDealDix}0w@VfseP*G0RxOH)({}Z3S>59-_&Yt`{l>I zk@(OqArV=qF|I*-qK4Pgdm)BxBgBi%9Jn4&>!%Sfb8~aE%*COQN?x6V%cpI4Ptv&} zwrDBHnM3EstFC(ue|~FlCLuG@%q%PxwZE5G3#J}yw}eT>PZvk!uwNYz;wTA{2?WzW z9;5o6?$K{I@W0qRhXf;Ok~=qIMI3CyVYIaoSFY9+e|wC@ZnXmgpRSau_y>now}0ig zl5CPdKggOe?mn9|{0ug$eT9!K*Pt7$FVG~1Iv2?%UN!)FQeVx;Z(;98n>2iVm+85i- zv_EIJ`99j*CK+0JX{M)~+x2@|@?sFV<&TgD< zKZ+}6o;r109Zd_UtjSJO^3&yz9YvnWHJkLsMx*2S+S}W=PEn<~Bvi6@+;!q%e;-nQ z@Y1tQ`*qv}p2uY{q9w%0Y_Ds^k|HH%3H77iyWT+ziXkWJx1;1yr|Zg* zv042wv)klFtphga7P&ZrlutZp;B|+YWhWF9@a)>fiR4lq#Wu!J)8b;)Vl_~IOTqF8 zxo}OL_GeAbd)uN|{?fmls5}zVl1Jwm=wb^qLbyQ1Rh-Pa1kC$m(WueomU(v(Sc`BF zkt$4iA$T&j3$ZftyYnOM-E@U1jUb9F(i#_*aKlq)-2I|gw1-L0uk3(-U+#y&;m{iP z^@NOJMG#@;Cs5s)9I98`vUnIB5S!DcB zdXq4y-=;WThCo%Kgj(jIRLgL zV!3Xe9YKF3l9oG&Ktcb+xuVg|P{(%qO&epWt1H@yO(j=HTN}0!W5%n+0Bd=iI|S2{ zfQWR1RgKeWM&^FW@x{{Q+OuyDI&CgV+HC)+_e-)wZ0Y%oth>8u%IZIJyZYEL~Eq3Ua<6cY`J5uW?uE6 zHiLfB^W1S}@K4(coY}3=hJc+-!%~%^A*?a119eCijQwtI3WJcSv~c^@R*^8TEta0S zeV5j9g>avjn=#Q%D$Y-G)&!3UnrLl!c-3(OB4xUCTeX|syv1~rAd8MxA6QyN1x#Xk z;!N;!Usde-n7F4K*UP{`UBQDFa)*b-PlNH}jcYIZdPvjkRGJrEApSX4pS}mw0w6~P z@?gw)){Hva{gamF$@sW+X##8!S}rf4jsBAqga-AW=8@-vL62{`Y4PL#cAEtM-61@d z1g6_GZ%ZF zCleRHAa_)J$wwL?nLPM!-7xY1!Kk5p8|TjufX^qoJC z#@zMbxmVqJ^g)rPFkrVY;aDaVYfl>j~p}vetv$i z-eh(v?aYOfBNIA3FDkI-0MI8d*Ve(Lqw6J@LEQ6hZT`au2!kYeqIu!r2|&}qlcGo< z+0y7#o#u&^^5*}ZwNLM*)Ko|Rb9C}-2A&~)$q5yRPDx1zaJjnckChY17DA)7_zPR zbP4-X`xrjPIh;`0%gc9A-BAahq9FBWl$#F*i?*_+W@#8{R`2L) zLGHSx8l!veYb#BKllAM1#*=rkm$MgMCF+-5yJ_E{&o)=A(A509hyrfs7Bw9PQ*&(qhb zGdz=`muhHWkgcO5rn{RlWpQ45bbb-GUv;i)SXg=E_pg_Dxt|wq&h_#rh$-g|p{b%s zP}lSG53c-{_XC=xm^J*i^POulFun(m-^Ksg#(? zJG+fAt}PjSt=s9!m^MUCC%-sUqGSF&Tx1HF-gO~KT7RAr&&he!Mq*a0V4|N>t99sm zeUvV3-bcB=zE5AiY*YATP%-E-Da6W|sT4OTyY+fsYT?G5&d|c8pmKV}M9yDq`{j>G zfmq;7q14~ww0dAa<9%umTgf6*j#Rk7I%kYV_HRD-nn{j`nS^{g_xZ|e4*wIELZk>aEri+~~Jy=;;VW1_N-}jDPf79*EOhBc8S9 zAR4@^;O5^+sw3>-H5&IcNIMlx+rGJ&I6>RyACH5p>`{uVq_YyP0wcWB#o2LmUvcWU zjyCV^Qf?pp3ZBP`d4qZ5+v$X4J_Sx5v}0iXC=O<(4Zy5>OqK|MT&Mz1zT>p^4zL z?z#?xfXT&Ov#;)@?^Mb@h(*nIy3ekvTbDmA>d|)jK=+s?k@q-QRG&mx8x&^BW#7gT3L;0CaepyKX-+<4K+03!;MNgJ*Q<_54Aki^ zdQlXeKA+n1fKUk!qC6mQZK3&i7rukHdU{XGi9V5lCPrKEi+4`M#;j~!!U4r0X2>n*w#thOZ3YcUbEs= zFW{~CyN>Gdn^+I7{_vvcxVt~kK9?@tXWemZqTf}5?EQ#eWoGrg$CdaABmJ9aMok&@ zJD%6sz8qQx)Z?93Z!SBUOSu0N;cWO<8yZ~q_CYzD^?LAMK{#{8p6`cpRrvV%GoP9Z zQ59KSZsBsr^$Ql=v0##Y_lTeuNAt7m%}%`=z3r^n7Kwpk+$?PBxH972D_mubFYmy% zTuPw<6G#THhQn!x9nspVj6D_+>rAB^|9^IB=9bN3&9z@4V--&IufAG+(LQ~} zS;qVE#Hx4W*npM}8bVFZHc(oF(D{00g@dK9Mb>z~!;rb2kI_Zf;ek|g!^Plyr9Er2 zZq{=nulo;`iEC2k>5Y8!?d)%IPjdY^7&ZF$9zmzLVQ=#B_*^(ZWG6p-=y0#dp9vMy ziTYFQX7W2J;dDsxpeQdhX17~wTDPz1h7t!0RPcA>Aj7TO+@Aa0QgNyoF3a$zc&y?S zH~9Xa?W3H`;SJswjuX6@HN~s>opZe|@Ir=pZ20g(2`oN{i)1 zK1azAs96BofzjVW;J-)6$sQ}L4VL?h(2-5VHd9xjdWrX%M%J|iV`K@HqAe*O|C0L{n0oD3 z!KAB}^LK+I``W_3t=?oYwnhvmoG580%KC&Tkj+y8!>knI-La&B7Rorb{O>+<2zh0n(>h>IG zCUo?DJIi3J2QM8PY-`hD7xpSs%tTq%W-lHY8@h*RLr#7wqNbn zJ0EB(bKO`AbarTmx1pilIT%)ljZ;}=Uw<=lbFkMLQ2B1O8WM2#w=+pp;meA!;&Se8 zt#*0Tl#BN9hP(PGs%m*bwvIJ@Ph?Pqd&iOxcUq1PS=Pri&4^GQ`mD_bwnY;6$Ymn> zgD(8xk^1Myim*Rm1fCjFBK+#=u2At%`e(#yOZFKDNE_y_fn*4Fr>Ur@?wC-sTMCXqCiSkU(tqKy-mNowccea_{l4{~ zwGEGW=J43~B0!EpslEVsO`~#mJ9qVcpYTLWe^G<#D zO9QPV5Jy@2Dk4KR2SY02zcc*o=J(-cD1VdOaQ1$8;;o?Bqt>-flbX%C;m6BoQV$V_ zKOBa{Gnf_5KhrKbF6`$W9Jo%rYI5kpI1DkSSf+FQ5M!MRmUE!eA9m>_4XD`u9UM-) zttUH35n@>A5lkhd&ojkCc_DKpBPnzB@bpRRJoc;maOFeREAY_#@9gB{&ZX!h%;Sv_ zuSacIC`;a72H!s75=>Po-Bns^C19suNC@)w>zJ;=Yzg$FHRW?#!ESl4faAX%sS=x+ zU&Lf5RB)j%Vi{Rma+9U?JL=l6O>mb;df5FKW3^Zy`7LHrv-mVK;%Va>x4H_|0X_z7 z!+eoE6RK$ZPj!D*_C1{()w4i(GW^6Pp?K_WF5TVU+z*{*8VcT@TRXlJ>J7Uj)-{wg zOO%!-etq^CYn2XKfv1o#>#@t)9UQzTs$q?J3NZgjL-;zqv66k zv%0rOvOVjz_J+W{U?MC`{2t@cNab9^<>7x1L{(Hw^M|zpezNvvoFG=Te~g!=z|7f? zs|6@^=bEIZ=zU2R&CfSRrq9;Mklgx*PYtW}c}TmM2S7~NA8wMn<0*dWJe}*f?k79gUpqZ##QB?;125Ovsa^t`C~)*^*rT*=M`O@=;D@ceSN` zCa%a&T7hk7g3_g7Jo@Lf9oOt}a9wscopAU*jaO#pLbWS&^ZWTf=L_bw>vUOCdigKg zX{OF=8qC}s`UWs}=X1I?hgYKyNF~(oe+VzN`%rC`iTx*)o2ZtQXd#boBvU<5| zuCh*Qw%{cCE?e_W((v&0yh4z)#Fl@w*2WyL&+hs@wGpPahh&|p7L)BVe-Ls~JJaqp zv3v+YI)7JJta}JyRcYV_c}pH)j>=;B=$z_h*{;0IBLC+hn|w|8nFc-fq`4*Ks>;&H zxxR*}0d;M?;H*6+k!ycf)Y&qYGr|R|&`&EjVDN_0$V0PGH>+XEuVDlAs8=?%dPSG= z)dk=12b|PV9|!f<%l~D%)x9A6W}ur!$N-VvN4196@(;goFJbyOkow4yY@LD_g7aR7 zH@5^%$GW@7pc8;b1o;_xqpSA6oU2ebdx7aHbK9S0wBDziyykOL@K$7;67zxGZ^Ob- zkaBP>>`J=MGcDn@ZkJLIa=Ml>qR3w8bpEicoGN{$Zq8AVURZVujJ%|w3EMF#a-x5I)0`YzG`|v*FvPZ zoo7ge0eK=N>$Q)>;obWuGIm%^!D&lGpBa2rB1(KBI)~-g0>G`xmuXj4F z4PVv1S8D&EuzTL4HgBcU!dG=~^=-fR%JmA_1=&u-!qKCQ?7ZhMBKtb*lUj)ulQ!xP zj%hY&mn?=ODy&e8X~mrkPj-?2w?>3h@ni7Yn>!T2wq>W)8ciGY@srBaOH(*_)8X6*vsYGA$v2k$;O{NhC{pNK%I&q^-8%zH(_+ zeqFyIU&tN0$hgO#w)Bk-_J){utn+iKk*|w^!!IW`cZD>B%!<+BE7-wJ@|S~J4+7-{ z2Tvvqai*g_6pV+O%$1~j^ly$L;NC#*ldJmwAp^kc(N!h2*=_EYMm+t5_+0Timul6r zA+p_FGnyf@!=b6=RmU&(rS);BG1<(axJou>r*&qd04$zEd-B!*-`?@^!k-@+Zse+S zB_WaT&36Wvek|_v5&tDQ*Vu_leE-nmpt9!W3Wj$e_M{cY6Aqf?71R&D3dK@;;f+!b z4C|3)qJycA%yKQZO?};^ILq-Q(LK2~L-VU?k^wc3IY3bPpW&5k3s>j2LvmTcsE{?U zpgI;(0^E~Rf}?Zn2MjPd^CJ*}{hMrbk$gXARr%jBQ$#`{VOirZQCx0>Q1~kYws()p zJ3I9@zIt&5)7}kbwSCCC&K+zc`Jt4~?2%wf=$)E0f34)FUuQSjXd{0YYv{=SMnJ?` zWq0W4GLzkSTCffN?Z~!UZqdc8r>;H_PuH5M9>Ve$CQ3k5RiBpe14I=qPm>=t9mwsC zhlh9EdAAS&W+J^FGYm%TYMl1Tjlaa0f4p9aBbg$5^;Cmj#wUMOWr^2tmR+>o^TN4l zVB&P=4(mp*kedWSl}ffph5Qwd=8c=m1lcnvNcy^bM3A

aw#tWXB&_!=jFcJ{``Vqef@qOoApb=WhTiK>8k`;lDLvp9LxOie#=)` zI&UTOs#PTfbL}0HUU`qLd;ok@SKmG1t+kuwdb?rFT+i(51fA|>ufu5%ugekct3(t? zw(NzWoblAZn=d3~dM0$o2g_7`++L=R4GbUgs(-cPpbz_Pj$e)4S!4 z_M<I4!_51$LyZ z#rtR2SXr1fTnrVwSHAVUUGJMxbYJAfK>n-5Hf%pa<15|RtDNGF&@=Y$S_U>)=H`~(;jP&(CYjfJa){!^gxyIkEnEp2Xm9~ej$mk7JgX4O!{=K3My(`lj4*nAjc3MDt#y+2u5Z5PpFT9#69ujeFfbgXW&E$eB?O{`y5>4|UGAHMN$ zxc&cHfD;Fn!QF8xN&Lr^WgVgst1|G_# zpFwO}IQne;tF^YgXIZ7#!_dhGwhbJCpmxA zd*z-l`+W~^oEKx)Wh(x#=1QzX${gMMg@nF zwv7Joy}>NEvOg35O^BCLRFV&(TlJ>@8A%%d-Ft4Uh(<{oxO7l?!BBEHKR^1WCfgm< z?5gBemk?EQ@8Qt3oN|Y6A2i#wK6!YMQSOf5qjCI|gvsrW z(TawKB=;;+sO36BF=^3OBBovvM1NeRzsz7yxYJd6>P*%Db3W#P@R0aL^BRp^*j1RMqx2#e1vW@VZ@6Bk!7$3ceNn%jS9 zY!p9p_gGtB&#o$tf?vR8zXs(0?=N=U8o+(PQ#|7z;lEwJ>8fSdtXs?69a|#Fl2|{V zsoq&)|7!0wVu^w9f9}&+_NqY7#F!?3v*ei(CmS}IWauwLZ9XmKjvMRIGIp`FHjzs1 z{miur2Bhf7d{(t$Cp*v7{51cGrh< ztNZTp``)0bCdh)@=&Dg1dBt*z{(*rY!Ka3X@zSHDPw@1bD?2$p4XEvZd1u^Nn|@2J zK&z8+efyUAkYdpWe%ir{7k_169cCj`H=6<;E6K)u(TZgFs=)J}Al2oLDFIcyGq}Mb z)6SfC??X`GeK?XJ;iJ4zE2{M~rW{s_4V~*t%=G9Or!?vz!hy-Yt1fl^u%OE@XR!X= zP1K*7jDExGcfdR|aaM!u(6V+DGgKb=72d6IIb-{=pipSdY!BfsCK+ zLahvAB3O-Nl$0j+_8+oZB;DQJ$;E_0eFi341^}r4$5;e@h^uIIfnH`xb`Wt=hcBD# z)1FW6w-m5i=pSg+(4xT@@UA}_8@a`CKv`AVyH6=x$J&<|n_V}%yljbtpIR-aQ>S<{$A~j{paW$7n_|81+@)<^HZS&6cyPQ9Eny$PiStj6;xrD zY6qAUbn$)V94xz+C8zl&j!f0k`Z=cT$3kk&Pko$>bgClw6Jig|rig!p$!Xy_aj%O{ z^jBcK;>}mls-vkh4V~FWTEOTuxW`-3TyaTZg6Bl)eiH*4fd-1V4e9%vy_z;JKTSvs zlv)$#2Lx~*m+C8CoNj$`fN5S&h1U(5(}|<|rp1c+UL7v00=$i7<)q`5sUnADV%GfO z^;;wuyEQaJc8gz-5@tB@s_bT#doXAO2PQi(MCloeWjo0pxaa3xPX&0T^W$Xqd)qt! zULr`^!9<-Ymd-|KB)33I;oRNZCZfVq?-~EYC$P<>nLdIsaZK+DMRZ>`SOu5?$zTm> z3|A+uZ&&;|0z7Rdj3JFZcgiGig16Er1^rL#LX(R6gSJTvkD&3PYKh zv9vo^NEq@uV?xnLICW+RGp_jF41&$_v=GYR{Rk}sx0!Jc?b{4fvQ{bdUw$o18jTLy zFy9~F6dC&?eWj*r%ji1pz-aT6SY#rn#g@P4n7C?-*Ii>{X@BCu`DKlOgjtghy>xVY z`!nQJa=PhFcxNb<9EO?NiQf#DytsNXuRn*j&~MV<{?%LJ(AmZ9l@`LuR#q!(X%Sj; z>IQ5J@YOOla*PSVquB%H>E7u@WpQlR67p~~a{&qoIl!rsAS-|g;9#C2(lUcX;*bc= zc&M7+Ry4C`6W6Hsqd2{UWO{kF_#d0%T3SOrLT`FdJ}WB#KWf*QZRnE zD|g+Bg_qhXmLC&_z(%Ke?LDs>+)@eRe=Upa}EDB^$tz)FTk zq?~YfTWbge&opZmz6@+ev%TFSL5BW=kF4xpc&)>;tGWdb!W$nAZ%4R{6^~AJ30m*| z#jU%1f3-TXDXm*IpDF%P&1GL`qYaL@5+CD<_4A7}im33vgy+1UnRE4uzg03oeirA< zDel|tDW}iX8?iCmgNvVDjT1cO#HTUcsO{MNMkv>esA%`h@;RzG7cQh zp9@D=G#_AFjsmDy@S)q}*Rmr~VdVpt-X1e33cprpwUQk}gSlD(>84_05yY(Ehy+*1 z+4(uB1tLi@-VD{({W+3MwQaqFbK~{IO&bqZ;3d+2>t7;cemq5^qCU7_gbcqF5U_1Y5=rz7rwmlGsvKatJ*wSt*t-u9eKp^4$`@|ToYO5A^RO^ z@^jMWcgTu)U(F@vx$%FaIGA?o>(At#!)>~}yaEKmxw$qp5X&Ls8bDjWOhT-os|mdL zFTzTLP#p_!*o;o7vK{{2XClPn(5r2$DSr*ls5rqUK>{uaMW;D%po)9h8v47GVPeOm`vGY<7$(mB$3zf_K z6ss)4#+u{k^Gvbrkq9ru65Cym*g+zz25>FX6htghUOlN{x*mdc&neS+4+F~};C2N@Zep|$mUMX$YB zh(ymq-PRbyh4DH*VZ}f0hiDSKI7PQxJc1>Of7wOgNjlEQ|d*@6{hVS1Iz1myB{e=Aa9obBi5*Rj=W zRt|pmkk6A0+!uFutxIIBIe#A*zVIi(8Svkd#o<1CVi&S6g1_cY6(Zm7{25f_<>C1O zndN?uXJt$^sqY;K%s*yp=CPN?^fn@$tojr`q4@<(bNhkN`!dohPLIN0CYYESj}j}n zqe!M^WcN+rI0U~YP>u6lLulRd^<|!q5g5V-|(bY9cL9>$fQDAL*dj;Hy+Kft{c&n$R^`Q*< zC4Gq-#o>zLIn2*$Gx(*TZ}Y-fUQ5dH*VnWXPK-jC2t2QWK1!TmLnw8j#BPQlD-cnz z#m`>_V6Y3dA4p^Vek?0HO@NYt{~ps%abm}cFU9NUksB<^dE~lVP;Wy1R&9kOk!QbB z1Ynn`%f}iXd{!#IhVlUFc0kMA-T5aIyO)p`mbZ7~9705dcW||}CZQ{ulL(nm0p5m{ zmBDc_M)^<0Gx9W81TE>b%Ok}T1o8dC*wB^NzOkxKnG(Hv;x>S+0^d>&=M5-CRnW)k z4J8(&&GKQ$!(d}&f45W7(_e|}m&C<_gs`-MR-E6t)a)ai9?fruirUIv5im2vlN&_( zYl432>hOGKCDE?F)c8S&0v9b~u}o)3&LZXNkVbbFArAVhO*2J2lAa8^gF$w6w$BL( z$V#YfkpYH04)C_NBwTMihI|17WH+o=ucx~)|1>hE`MbwCG%?b-->Q{2B{*a{6XjxW zWwHcX(%)zFVu?)`kDG-(uZ*W9V<{XmvH5e!(P8-y8B1dF#no|s5)&SPjS+Xw4DSbJ z-jKT~@d)Q%Zs_d_rScky^yk_A-xVP)4nBL8&!v^#`B-nY*9vZUcz7hw5vVl*^e9sO z=E)O39~Kwbw~x_1x8PD^uWia-h;s*b08;Oh2lF&_v@AdO`8$?2oo$o@*F|{X#mEuD zp~vTP&WZgN(--k11@=me!<;tXmCuVh4GMQ&@e-Ht8^_9Lkn$;H<>g__lDzr46cTsAO5aU4^K zT3m&Xa;7UmmtQ4Oi5D z1Ll#GE&}i5@-Q54{7sG(Da~#cg{V=$Q~Slt_{h79ux=)P{%oBx{KW+xGEr{}b1uK2+t4KM&EVX*>qDa=6p z17J+7%|8PvOu7hHTwsECFdV3NpgEK^jFPX@*G>KX#f`e04miV9!*@V&RjtprX3G2 z@8Fu@BYY|3;T;?zcdm?au)SNF2I74{e z2lU=&gBg2W0@DU=ZZ(5X#(hBmv3|G*&KY}4GuK|}wa%eHaFRa488VN=X8KTGxiE=J z7+KR?FuD$SF4%5ihP00VlF1e_xEOKKl-0?7aqAvgYRUbOH><8+^H|Zytk{DMmEvOv zcHYN{GBSD(B|ReV-j$Sn(V&;7!OrtYtXpKezSXL@;V1H+kfdo$xwfgM3>c-T*Ah0( z^+|`@ZV<^kW&&Zy{C-L<$UI@>TBo9ZnI|+7_Eqg$G}0X3@!*h3?N|g>2Z4;ti@q?N zt8zmne1C$T7Y{m7L9X%wbL)makNg??TTK`dr7TE8Jer$n(5UwjulL0Q&Hgum8Dy@E zR<}?o_J7J153i+mh4F*sT zW*Mb0A%sn3zx7k%O+F?SWM&-Tla%$gAiem_r4c`HH(HJr?Um93H;y+7k?(^qBM+G0 zJRpo%)=*-LXCV%+zdV{iE`fTtOW|$EqW=9mEV~Vyvdmmvlkl1j2x!j#c2w^Tsla$- zZG$~x`NId6XbTs2T8zh(f_{60<{_1l!azlfWmW|9Y1c)x+&BaT%DgC_t>|t}h^B^$^Ag+M( z&tA6Axxm$NRb%_)h3J@dV1U&p+&JIkK-v|@ z-DbYi4{@S)Dep6JYsXLYvxS7A?t|XXb^q**-gP@C(oj)DLkGkSZ`{o(;B0_faBtux z=Pm_U_%C%OzPWaUZ_JnXi~8*=hk{$VHha(_a&>2u_KhHqt$25bXR<#(GjO1h(UD?M zXFb&&z8Nj2f+;uahc6lv^P<%NA^Q)3h(`!5ej1P#me7LJN_*p-DL7%lBIV|8>3%!2 zq~CPy)wn;k4QAHRj-*kWq1H|B!2qaN{G46?DqC2_0v~xmNyU$AdUro&oDse5f%#J&MzQ+D z2MfNm%t(SnO=q<7LN~~b0QU@Fi$W+=a>}zoKA=p3Sq1%mI$w%ydr4(%^9$Bp6!Ad@ zb5d9NSjKPsgMpEwX0i{ws&24jw!DvHfAQj{Wy65oa2&d_jV2#?gj4A{JMS1f@8IC% z=`8BB>%tvxuLX4Ey@iAw=xk~6F~Knr#(I>{e9te?oRe}kUGRu!C{mo6^HDuTxu+_z znVmqg_N?1tT7IWoa+I1O(+TM5R|`iqS>U3`z$SnrSyVQ>qxb#HjJ2&EuNyS`BCekfNDbrz7$gV^EgDLq;mWL%;l!-Aw?J4gc z?&6ny=9E%MD3P5;wYc4#Pom+<4(`%JCm z)UTs8_tCDqmgaRcX#*EX=&nz1tJn&?CFj-MtDc(fxzLr}v{3@Z_`m`IJ%Be2FZ@ z?c;VbKP5i@cwY5r^sbbF#@)c|K#LTR7lyTea)}-`r+oLAYUl?`7Hdu$^ru)YBEcCYzkq^mowa1=vBm8Z%Ut)*w? zXym_peq8gv;lunG!>KpDiK1MwbZQ*S#?^Ob+Y( z;1Hc{-eWFo`Bf^j&9siUQ1@XjO~r*btoOt&;D$;Us#)@-L{uy1lO_6f<#v`!f!xg7 zfRr6e66?#~>sDM~=u3S-K}hXz;3ve;eY0DZ&RJw+U7MM&UU>gDv)@^ud*#iJvVRJ156 zdA}_Ark>#S(KF`xl6+LhGs$g5bdq<-EK7dVZItR#@-aB z74~Q{DXLVl5vD$6`3SQIpW}eYF}jW%{lsHKpb>Ot5D3>RB4D@IQ}=*f-_Nv@BY~D-QSJ!Nkzi8@Tpf1cA!M1NMZ@d$Tr)fSNa+Lgrz*gMR4TyQe`uQ zLJ9ll_dCh|~EpT4O^xN#wsS1%}<-&X$eOuuReITe(~r7$r#j>1GRFeM5Gc zN<}v5k&$ZI4jj1_h(a|@=v*z`Qy`ZXIfw-?n;Qa1!5I=tZ%}h9;JtYXnF`F(&#T=J z*+#`L40|#pdXsrygVbR2pbtLWN8s{gGjSbDX`>9fa5>dYNq+@XloklBfpQ*T-(W+^ z{NpeEl&19~F3)6pZsf_u($Qg(qSM?Ml=_emLn&+SQeXIj@KIMPOB6ZtV>#I#na;6< zhqhBBk8}FamHeFqZXJ_%D}RC{C*@F-WF-yLj7@@X{mxhf_ZkYah@-mFsCxWnpLbV{%MaMS zG;nXw14(>~fqgHk6HjHGPK8$c%KjU7LGlPQyc1s)M9hbn*Ex$~bSFWt_FYvl*#w)I z?&FE#`@7Lq(=ke_)@}%~3R$J31_j@c&zvp?{=>pA&?>>e3;5tjMAR3yG}7q?lA`}p zB}ek_aN`7k)eJn!lhtp=M3wvXR#h(YP&mv*EDQ@5@a zIHdt?gyI$|q5q=hggU_+Cn`5L31FxH){l(4JZGl zh1=UJaXMP@>ArjV5I;{@YM+Gw&FBk@naC<;8?|%%|K|cQLHP%Bd#`zE$ zIDn!ucqqdPcbBn+MQEpVRJGkZG=&o+1wVf3rQ)E2fhuHe zm`R+xJ38}yn2~S;(d#PGFOHOWbxy%k!;Z<&;cOqPd>f|JohZ?UtqO7P{rQhz$=g*I zZd%NKve?5$B83K|IwbyO_$EQCwY8xHN(BDx(owE&Eg>85YX_0P48srL0u8wwu_Nge zckXbDivF2x_O%@;azJ~eDtyBC^~hBVbJ_PCI-9ohZC()pm;qU&CT_YgO!e^U4zK?WJ$nd+jTIYZH@Td^Y@Qd0ggYt#4MR2qfMNp{<8q4V z$x&r1t*)+~dkXD$B>Jbd0o12{+^i1COuZU};}}x*ikQ^cE$^4MEQP)HUPmaRe3z?- zSP7NELEtaA@;!RSKmZ~yyT1Uy!&u3jPZoqjq}V`KCm%)iy8&8s1FkQ3r1@-&%cyPi zZ(%32sP)&{Ji}D;EqG;Dk8V;xT`HtX#GBR~ldlRpBr*z786(HAy18j;ViMTjuMF3a zpvN-KYlRH>)TB`p5r*GCn!qQmy&3xZhsNS+&aYr)M(H_Saa(m1UQ!$&^uZWg2!T?r z!(rtIy#y*w+yg62(*%|HnEUoBnA7C03%VqHe`zT$yG<3d*!EN@ zNgG{XUGYVSItLF?WbkfjDYv-uAsf;h_=$S)!071cnjsV$sBOeaFX8ehLqS(sdR}L! zjxxCE0?gh>9XfZUZ9?aVUQk;RLBIO0S}C8#7(s9={p)BlvHuG?QWF2SL2!m)TZ^x4 zseK)0gP2i}d6m?b{eUzV@g^GJ()WewxHnAyB!*nJTLBT|3g<`QoWnx&Nrz*>r4IN~ zNFsPvAA0oKe=?&8EhVbEZ>U`q)jX^sDNclzoF?=K4XO#* zBW?~2?ffo!`$PAJ{_Co==LbktI)fDW!JDO_0`v~DSojuUIRs!VfAyc(0?5$n;mz;I z*Q)zj()s^M=yH&Nv{7AU=->su6fKkz!)!*Q?3_>DT<75)CfGE6(UdBF?h#J^%KZB; zi^3O0s4t~T!g$I`tRe=aN=!DbPWd*2BoGiCeHTR~jY-Zf<0WT{)CI4SJK*c<>D7k}UFW z+sXvolgh!@vIyK9$_(;H5)UxZQCz(mnTeBZt0*8AkS97bFYooSBA5+~v2QqC>fB}g z=O|T@A;hQoV7~gf$L;$BkGQ|~#}Q9E>yv%a>X#*C6yB7{P2=$xLbPgu=O#?zA#b_; zCqIv2ESFC4K!^Y$rYJEz zbrj4}+95iISuu4M(%(`=9gOVmm*Z^Ro!>#Mj!se?RQSf8_-Sl+kkGy6>Q^!0O~z?A zQYMh&E`ysU**ZZBT(rhO7au)6el}Tk2>B`(-Z8PUa!ds7%tqUESj*vLsF6SPo|R{) za!{Zj;{<$b*iRYLdn3IOb+uD*Nsc|Fe|yfQ&Y|hg=;OR>jNT2W`~Ah}M?REo=l3{s zoAgY;JVk|B0W`O69G>giZOlyX4sFZMFTLTi+|n-`xlM;l6=WOLJzK93c}4ceuZR^U zy~to{oW@o5tp1TTXK&+2GVcr#K;c4yQ&4Y}O-z952fO_~e35Nyn+gEjh{D=?y=XWR zZ%2)Gxib7XIT6g7_KnvNRdDu9g?$WnIyJDeJ3^mjKe=MTi}Zdq7$qKp|AhIYa!wLI zP9!-xYb)*T4N`QsRs)J(hv>G=+oQsXzF8*>y(nu(PT>ykfP?g~up*`wb;SzDdDC_laW4 zWAXf>spi=yuN$b8fv#jVI*}bwH2ZVXG!BR3kElgGWwMk`a-J>xE-PuwoS$yWo-Q6I z_01DFbb{D+!`iL1 zZH9xARqrEeOYM`!l9L-of0V=!5i+>YlVIDy=u-VaEp)6!FdoSPPs8JfHDI+9~Q*FY_v;h@D8VD z7UgGJcMinY|BCrph*V%mFBn6&fpRq^<|^xLUgK&4WWhrw7aB^80k$?k!dsIKUHX@c z%oiucSC;xSRi>K%n{Omr6H|+!(1IHbyvGTw5T7&uM!}~%Kapq*G0CH6yb>1Cm+!$!D@*A^ zdD0L5wZex*dJVEnv1H>;5Sj~*zS?mK8zK&LY8->gU-#I96$C7{o{Py;<2qvW&c{tG zy*F-l&AZx-Z*VA;u=C#ukpKJ5(d-Y@ z*uG_%|A5S%*VoS0q1G#ZRyPG+k18CAZbutrZ|U!y?x24)I%_*}V#CM*ZQWPlh66L2J4 z2cY#{mG{b9SK#Uc*&@bZEA|C#CJ}SoC-fl?k=tFXPAO}8LA*AkpZie*T-;+Vq~UEh zuO9*i8(d4TLP^PVc7N&BXbCt_o8{)gOiJ#6sey?A3u0Np3Iiw!y!`ynVSSKd;$xy8 zM)~>L6z54{u2^M;TnH8Vuig5wdXJHFA%_4EeHlLToMB5Lwif6z!I2lY!kwY*b^C$? z@P@j7$1(#afW3>{(o}{OUI0@@FGQ{bihF-h5%HSFvgfyLSt2V}Rw`w~2X*8IVb`f%}XS;k3VB4-mHF@w8Zx zP6J#;pC_hz57#+!bvOpC`A@s9uV!kzFNJ+hj<3a=&I4$GR6$GPglh0fe~8)7Ax9AX zd)z1a;%6gVe{UgH19^=}t=kqp1C6&z$E-@j#KYsGV~)`b23_0h>V5%)<;5A5H=$Re z=vSf_270W-argHsin*^unx2%sP2fqE`JyrP&f@bXGK$D@Wo zMpJE3aMFX!C*d@BNxb6X3fcX$-2yX<8_B$|J1z#iEA7r+Q=h%c(9b4%V?aI?qoNwN zY25MmDnKGr3k<4NSs<=*d@4tk16oA$O0DlH^5De?LOx)Bln;LzvxZR1qb2lUu%GqH zMWFR(G;uiZ3FZ?qW#XV_AWr%T69as;S%3DC@Ie0f9V(IMt7&il&y%A63(mq_srR4R zKKMloH=|PZHna^sF40aYksaxv?9_pJ|RvH|G{2^Ppt1 zG(fw&=lLdn#mdT~sj9B-d;lvKVYyBBG=t*ZgNnB+BKbtpard)`2p`L_5;P;WM}NMi zzT8jwc_I4qbU!JVHK08ZpT1CHvBTmuS8MZquH6`)>l^~PjNU4N7b7p=>9iX;*ttee zY`RQ#usqkkHnN0inw>Urw^{61GFg#c9b{dR{T{33{1gYz4{3gmLE|mc(4VQqzISF- z?6C2dJD&?Dw57P--a`~0`*I*qp=l&9L2)a`+$S!=9 z4Kf;L^`eqwh3$4;A)!#X;ffRQ&h4KfnLf)8>TU8>?>AIDt3l?6?_8WZjUZSbU+YVF z9KDy?uJ>a4m@~BovEp2?uzG=Al7Jmcc%Y{ucMv2g#Tt1Wyi@HETpb-9$?54#q@H7AQrU%oxGUtruM@t$ zFNuIL5yYTI6#JxIZ)RMnz-9P*Nm1Moa!|UR$G3KX&7*U*NJ!owyWD=8q}p}Pf66eF zWDykJOtC=Z^(v=LUi_2H>uVdq5iiS^ayD)KAEciZ_i17i$=8H3>sJGW*bJw-pe)&Q z_ucEDmvvBP)l&)MZ77e0+S*&Z5D^^rWAOaVEUyn!AbyDC9Wk*Hi&n2Q|5Z1<=){Y2 z&cjQNv~49o0Bnn7gK;!Gmiz7r782G)?q&n_YN(Q++d z&W03*`4D06RtQYb!nC0Nx&=e0#yuX~!`Injfrhs^Q57nkjikvzao!WyxZ@me?+d5a z&ei$$eoF|A>6(Q*v_Z^@Hg0zU0jITMqyNSw1R5` zB*Z~Q(KTw+An@x$3K2)Qgya+8J6`12)Bj^PEjy*B8A75MajzQj9)Vi5do z>-Dx9HxU%~;OHzYeE5Q^T_z^#w2(lyRMK61@$m?kbgFTT)sh=^78&E5d7hzfxrxUaVW^Z zj@WhYfE5zYpffzE1{x0hdq|3z?_4s^8`OA=;>9dSsROi?;g#Og*;YKaZQw2L?(I#R zXwJ#qY0dPr{rE72>1L*-rl$%kao^ht#(p9xO0`R3%{;~=>I2OSne7!$5&EkfX5OUS znyTknT7?6vn=hRFq4k0Q>bERXo^&t-5v5+)zSwN)1`6tFhQuYSgvYj+OZYQwfMAIP+zw6+3!G{Gq|oUkLIZVXXcjkjq^*C+7RFu;|yM=p0~0`(GX^ zGFcB)Qh*MpiM(~)*~xmixekYTD#Fu96K2HkOy}0*v*T_L1mx)CgS|8=(ytPO#;Yy6 zBMP*;k^eOAHYM}mjLRycL3;$m$Bi2#aYo9lW*>^J=-TEMhOl$-lF;Vs$F0s^GA9A? zpR?sa*jn8r2Ql`N>tPr0uyCHBe-H1!7y9&MM4+j2a)TZCaPOt>TU*;gefwp?UZLow zj)1&YLOWLLU+uo>CJH8f`D}UCAX81~P`$m^2z>Shd|E5kN5`h#%nMuW=HLY2eznE1+nydWe)||+RT+#d6TVx3Ce||mGJEQgeh)Pi4Z?sAZf60$sLpa^|aJn z{g(HJDz|_X2h*5N6M~FZwxpddEHf6O7&H}1%*)>4zQ3gKC^Qn<)tHcO&QR3ZR)r%h zcl-|2s7?Gb$k3T~QV`W1-*DSjE%`q}Z2%V4J^I&&`c9WW?{rWF;B!hJvL$QMT9KZ_ z8})N3Wmxznx_~Et?65D<*_*!5kY`8V{7(mbjuW*^s5DwOkeWsgYhguyR?0Cs1_{b<7-pA;q<@?iSy6XfDzQZLe(%Z8An@dyfd zD|Jr@=>L^k?D^E_=~+xCH&pLro6m$c{%rca42eC z)9=Ly;3EN$0nDblsbz?_`&?BCrpiwWO>9vl1mp>tM{9MN`i)E4SD}pluJw?blhbJ} z01ru^gvQM!gz>osal;Q2f+UniLrt{)w?+C(JyrNp@4up-r7(r?63R{V8XP@HQm~DF zNE{AdG^IOtY7TQ30d3pD!otPY_7z8G=ZmZD>w^sVvDPb&5XhL--v792Xo?T#>YK&h zgsg)DDOSyTVlcnx!XNn+y2Nm9Y4L7q^l`7gGY z$$R9uBifDsrN_7*YPd5v{V#?!=N+o?lhDVWce~0UnzSGff&3&CFlx1a^X7{H zZClG{9Mqun&wu%FirCuYOdYgXnKp41FzL`UGYp9B)%-0`ZqlLz_JuBgb6rC#??r|= zFhKhcLQ-v#`fcWX18inc@<3qj9!AskIe=8KvcSr_+sx^UKoE4kRILW&NrfGtqkr3~KvU zI0!d-zh8UFb2-&aiU;zM$06X(h5;WOxt0}Sz<*eZA#Z|eJV+A< zn&P(4&do!2FY^a-!VRo(Z*c-LE#}MFe>5-*x@G^s1@U%sD-6P*nTev202oF(=H;$b zoME3@*ejsCXr}Vw{PZBqMs>kp4#Ypt^kFa{`IUXFFT5s_^HGuT&t)~W#}d?k{leVb zeiN6!w{1;Wa*)pK0E7jhEIE=zb&gw)a#&NdpB z7^hIa3VW8b0~eVtOyOv}4(_TK>lzz7sc0Fuzf=yEBrlPRU6qWlUvd)!0SUbu?t|@+==OJi_3s zHSnao+H9iwb55M`b#!j#+Jn?l>XEExA+gFZn_Y21A1l#`#kcm5Cy`mGaXK90@1O7f z>D@;rOB>(54MR-1R#Hbk44oVlpiDOI=v!rPw{ehQ>v$i%k3T%jnlZ=kQQ^knIQK+L zOc31LstW|Yv#Tg6=iVD#cJH-{kiQsyH!k*la2*#sOKNqi-`p0z`nx5QYG-Y2Fgj4^ zp4P1z)-4@nK3#pYt`60Wx~}>O9h06%L|ZbiYa~^G{Ym(Y2J6Y7#AWyP_REaj-m49P zt5Om%89LkUHln{5yHR6kk+^%ISKUp~c3)a|R(y&$f2y$7(U(RPAD^Ie-BH!y z*s9eT@*DXOQ&(iD#4leIA_W@WQkts|p#n2t5nMa1wBiT<$ab?B$G78_`^}`e0sf&9waR zpNbaLX3HrSxw`1xjBGo-YH#xOxhyukG1EI9gtDf8;eVj$Ew#RDyuz5&LQA;P%X|9v znqzv~6CWAnf@2y-LjIP>9?_4mpYhvm?*r>+OoTNwYrgbr<1xq zA4ULmxY%eouDP|q|R10Q@l5D?i)mV>NjSDPsYO$C~xMTfB zEi3*`PMSD54RWK(OLQ&lasjPja&oeS4m}q`jG}u*%o1a|e-$l)!R~rkCcDi{V+fSKCVQu%#%>9H3H!?3cX3xpn>XlsOc(d~xzG^>REN`3x4KpWsdpq0JTpO(*0ltm%0XwshlR+P>Sj=L^r$co05LM6F_jb z@1p?}dWp-iUZ`_ZC4ADs^y>u|M&>OY0i0=G`N~b)=Yk2Qns7Zr6@Sv+L9?)b&WJ1v zWj0+t%I5qyI^u_S7nuS?P;{{WpcHb1o9MgU_S+fUrzicWPmBb=)#mk)jF}!}W{95Q z#NsO$-B6xQLR=)6I`o&l!x0L0se=q;4kXV_;<{bm{`|-WF4AnhUz?TTwo$t4Q%}wR zQhl)J%ORSmp&SKu{+oBqZ(;tx(NzXhV;C$zDngn9#-qiocL64(=>6t#AS=B%S8WLN zDljDJJI})sz!hX zT}$s_%->$}dkxAZuR*zYk`rTNbIXO=NPaCeX#fO6R5IwIV5B-^*+UTumG447OJ{z* z*CzQy6}A~>ny38MiU<|mJ%d|+ALDi6|9J6!y7l&-o3G>M*JT}s%Ixo)D(C|Gs#Ulb z4)x9T3Es6|-SJkxIp61)8a$Y7_Y>K?I*aC1tSL<{a&`wQ}E;Q(+rsG&2E)v7^FWTkek!FWLw6{IY}^8=8-Q8 zmekG9Vx+$;*B&iG<~bAMh9svY(~(EWGVU|xPcPIM?u1&zREW?zn8V^9-{glfXtK`7 z#}1JN>`$}=)6$xnPT&I4d3F{?;ADO11k$p6;TV}Z>Dn+&C+$=+?1yspi2Y&LR?wYF4=f}Q z0ca*BT_YrVmRF@Sq$v!V3tI7|TciLF3IOoXr$&5)a(M2|iUr3d_9NndaFwL=Ki})a zdh>VWT_7nX;m*zd=81$L9(ir_D+u_70mhm$QUnVw8$RnEGhi`_BbE@rjwi~6083>lLC6zOcvhW*YwB%wpbG~=3#bKQ7zW9MGtRt@l;~e@1*s%AbfhBcjWuBeb{zldj&n%TXOu20E|Nl$P@W*WyZ?%h>d^+5eZ4sFE7r2Q5=uHb`ZHLv6s$SFHaB)WZ6adx6kzs-FLm)8q9B1I zE8^l~2Vd-DcL9UGWka1S&0W82=KlI0#Yc4FGw%^PXhkT-vi&!N`57L_vW}^LJ_rxGhR=XK#JP|3L;@ z2_7VL)7kx*6Px2y1C4uty#%y0++z$Nt*+e0%B?znhZ?&YPQlEWq_!P>E1{p}8$;4O zXkiHx+CS!Y8XLS~P5b^g3C7Jr*tf)La}gX6uU5tmPPrgJjOuV=A(X%E#cNHX@d&3( zu=wLsN;#mLrg^6S*ENC^&oE^G17;&sb#-+G1qCGy4f1tUl_IHLE63-_si_Pw%7=^b z!^+=dv~tc!+xWt4PRCR;ifX(+w1lSZa|W5C38`vfSUEf7=r+zg#>`!1u8oz?3-y?* z%3GltK%NuG)xp5TguBER%b|pxj!Hv;u87lmbj?hcSyl8|FYkNZ%NiXBz<7z=GOVy= zfGiT-ZMKPPN(Fj?hUx#|vNCxL1ZdEf!Ln#cFCpo%{ zK<(kg7Lb9K5TW3mR5by~D~|Jjx#3Ab_}^}P41cZmXWzz~m4>8~+&ExoZ8dQJ!SlfX z?tbjLI_Oz|QbQfpu~ia?Z=@)mfy~~Hl;@(4{?($$WrzC@%R1rK7Tusp``o-Fb8=qX zd@@2+nzm&Fl8qK`-?E*qZ7&~w)srsN`jLclFRf~384~OvB}K@+)Z*pxP*D|FR_=~+S;1ajSaAt(S%#T zf*Z?P?dHHLT6q|?EnkU`9Nlx@eh)Oia@o>+qNq5d*H3!{*>aF={)7!IsZF(TIC|kL zoQ{)&n-E0%#mX>{Mm@*66;M5ear~`Ps}PRD&U@jDal&!-}V8T22A-B z^77-lTtfJe4%^5*qub(a=|A?k>eIcx*K)?lUL8ZiUV*jpVK_~ceV2uc$45YVr#y~N zx`1kL=eL z0R@Ii)TP$}0c-_C+_V0s4$s$?jhqZ`9^?7Q%nq^MpWB%xJ%72~)Z5b& z*>IDFORWm_L#`^@+M_2@nA|8p5QkIK(8&p&asZ-7SO;dOWE2#}@bjPE&#H4kH!%Rn zU3d7S6mzmoYP^Ae5w0~#RR7?k*rQM+^H~94%TmH@?9@R+GTleiw% zf6YUdF774kZWVsmEuSvt^&56M9*t;b^?CB?B)!gyD_QY#c~7*MMF)eNwA5ⅆn8LbArSGd*+?_ifPwpD6{`7T9Xiu?l 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 dkKdM6#v7p-SEF1jvWY)(%60~J@RSx8i zWKg5v`Da4sF@?K%0E7}E%?H0aHonr~sTX;csuoHvkJ6^#@sA|tQ70i&drM9g$w13Q z!NVrZpmxWQJJP98g<_mRIN2G{!gO8j(fc3VzkL`4zZK{Ug=zs-!MC(?Ky{^=-&Uhu z)gi~V16b8S?3kq)O5b1OK=4-a?`K!YYg=1eBV%J@iFwgcQMpG)N2Wrepjrv{2>YN8 zx{|#yyI-pFSBFIA07II}#vfl}fR&RkZgO&Jlo>mpcEaKG)YR0%%rfrIssoCTXnUkW zwGRY3U=1PwjnCw~pW>5}WMfDGBJZdM1_vh$#w4CGX?vRYZl!_%BTvXJpD%Wpo7Gtw z%}xbbe)KAv{CcNkaXLg03<^Z z7eDc#;#ZIr|8lJ(j?AGs=iRb|DUY4+m#-fAjZ^*7+fX9sK%pSC2ES`xU!R&zUn_g- z@6sD#Vl!_`^~|A((AS=XSJWAp2HxbVgh#WHPsPs{H^8=Y2~}l&!pZ5jETSA$8JK03 za*A=4Foxo=e*(?_472@V=nz_C6?-G>aE`Fu1}@31mS9Q?$&jAmN?yI7jr{VkTQkZ^ zOzqA#WoJolt)5e)d09=jF8#m$6k^~_nJW@UjD*J?g;WqItCQZ+N}JDl+@t)=`;3_|xQ~>CTZaN2!Z{^<7eTIOwHhn8iRgu|@zSFLp`> z^-?f#AyjLDF1NqEjd#Q>vvEf*+}x5Raij`9oJ%@F3plVxyAe&;1ncI)mB|IMRXG3G z%s037CG}c&r)(|Sygg`$jjl0Ie_7hue(12sGL7#acO!*IxRkI*R9NoE+#jZTC*C4L z$J$-By3ejT1ERm!(Hs}yoV7MMc?5Sd62g%zDOR`Dg(8$c$R~=QtSt`aNYR?ES3h5Li9~xVf{BgO4P|&)oR9EvbQE&QN1xEv-!zW)mbs%2| z#!o?^!jBIYM})f_NM~oY7_H-B3EG|Kh0!rcNrf zO>H=rX|!1}4I`^!Z5g*-G`|NJ-xm0c=+HK@@W*l`?PyV8^nsl{LtZms8wQo;z(#@Hs?&ME?y$i)<1JuI`$JI(l38JstezX@ zuZ1chm>OXG8GYHm8R~Biu&P@tpj>3;j$_3cWU+mjO%%9JRx9qt9wmz()}x{#Fe3C4 zj+wk$`rN_j2^Re9bR-9pTiV6z+u(3A=pMLhZIGkev`fR}p>Uqw}OS%{kTiPVbrfK23K=G!(*JeqS^GBU$3N{} zJiq5vO2+ZzLDHAXH1~po_ugJ%44LMw@}wf#rOs}*WS+SD=7t7nxYl>v);~E#;195!K1lCsCn6__Yl?-W zD`>d?u2JE{;G{T$CCxjzzr~|Y-X&Of`$oFyWI%jihOF+)jVnStj!ajD#2R%4adF@e zN!4bP%E2@EZ0BG>>{N%d?e>i*^CokzB8^EZ-9EN&{Ex($TNxVp0>v zfPYEg|4g0#herPWfXAZ=qZxwdJ3l`k^F5W)E;FXm;^nufniLT+$S*XmBwb`jta^{a zL%N#uUM+nJ+E`-NF{q5Z{2V<#F_EUX{L4nxowg^$_w`RrK=m79&es&tO3f{AI0t*H z0hiBSQumt*qS9%wYqh4;=2lky`)NYv3(WmqW#KH6(CztyeO$=2X}TftxaZFvqV#}( zF*G{n@{^JR?3l*A`{JIqqT>CNQjv0Is!}SWWr1%T95bN|>dzpg^lhUHi4k`Tn%m(V zbF;*NLs#l@MwP2$N5I$$SQtI50XDw=w&w8u6}%2p4gb`4dGV*gveL%ho@8>;B=G9u zL}RZ^Fc|^5+;KM&d*AZTIP$4PG^{PS#n7qZhbrE>=qIG%vyDhHV)S&7;Ra&R(~t_X z{Nd1jHSOJWbVSz>216a&RxG$B9_l2yRNI{$?uF%-Xg!br5#J6@gv z`$Nr-Soee~+CA`ba+X9 z_3Qo9T4t)#B{d=)4vq>UKUA-e7{!FV(DYVRBF6&*1Nwo{-0?*&aNH_*_*3vl<6e#0 zC?I`5ya0Ldxf}mX=vq1T-40e923oLExBUrQzp8tb(bqAXX-@Dga|*k*aa%^qYzE~L8|6?+BE99ySgTLF0QvA z!9sO9-36O#*D2$Re-ut?S9VqeKJ1*S8*3A5K5mnj7fu8ybqBFKF2P2%EgN*UFLW}6 z=}4eVRDSL_sKQ&L1}>LDRZr4`vzTz3d8nu)=UdyXGf!RH56o7O<;Kz?K)RNYM3^1hzaXRiW)${EH zc7(@e=Z@2>exYi>u${a3-Ou!4CoT8qv2OGe@*iff`IkEE8>)Rp0WiuXr|XFo-ieZ~NFrs{U=36> z{DQ}oR*{0|_Fo!S32V-B8$N%7Wz&lO9%$BNWev?E5A^qbeR=?-G$aeTppSKhsZyNSX>3s-OhgCi%;75e$v& zMgMugzcKCq$u)mDE}}Q_Q!ZAG?+b;SDL=n-uk}aqS94%=fBI48rt1H~y_FL?D+OX* zE}$Te#4M8yt|(7U<0Bhf-ad-E?0aTY%96!JQumjorr<|DLh&E&TCImSs z@5Xd)Wk7E5vI!Era9VatKlsTBNy2eztIx_viNhMdhg)I3kE3=-w?vJ|k}9Z^yhec~ z1hyk_uputmz3aJe|3cD=rX+(QWgVNJ=!djMyh1a!cM~q%T3K&Nu}%DX@W&nris5! zxzHPri$H=vf4n%a8XjcM=&HJpCXK-N`<-@uGg|mrzRMA|}4jus!ki`il z+Mxtxp6*M6=%(1yNmgM~Zkc69YHFeW5?ept?>;3@O+*{w-3%P!<<=8&Pne3poPmM( z`m=Tz=mwAxrZ;~hqGJ>$Pt4%GSS z;OF|W@c|Gb^otoR-B}DDR`>0FPVVeY&x}xiY+mnC8xBLpWO)Ry{br@TPw0MaxGgc)Z_~Lt|fJG`9M1 z_UE~M2rRo)H6sQzf!N%sGSEg!Cx+MMqZ`d?Br-ti23%&6@m3)qc+#!)?ory)4m@HM zpuTlHReeeFB%6G*HKNt?)YeW?rC_Nd;wcW3|2>Tzy&+bIW>p??+z=GN_=%m!xXkHX z{}!>ac5E=;FtMJC5Ix?m$m(>5TW>A0EwAPjumQuWOvg$8-s_PyX@Y!(Hw@r$>7yNS|XM|rQihhtT1Kl#40x?entuT-1WZnL;8n|{Rh z)5rI1Sn;sQuTIROUh zTN%cgo>ZB0bFfF9Ta+EFY3*HG1Kg33;r0w_#Si|w@LU?!nFW2y$xKGxq$p+Zvs5S2 zpP~b1E0mWHY1}j6c>H)Zb&oK|I+e!&Mz6C?=`dW|~{S6D6+G5cf{H z=?`7EhEuDChf*^ZD(M^>9lR^A>{-%9`csYheb4PL6m#Ks)oQc#+8u? z3A81D?%%&}RBPI#_-NFeg<1;xTwuCiJ|aGrZ-puDp{~9@+mf=JT(+yHLprZIN5TUK zdK6`YeIt_$QA~<0J#iK+#nO+SJB^bRPz5+Aa;nLV2WG2B^{0@;_VW&{di@Mq^^*I8 zK}rd{ZGX?7cye>7=j0V}Qm)7EAC-cChE@nJ*XrlX)k@$(?U926s_&FvvsBaf5PL}- z6FMF`#?_Nj3JUSsWvE?$YillMX6F4BMd{i8)F0f;^rFL=+ujXce2E|G^GiL-g}V<1f+%* zq$<5PX@}y)bMEilIrsi?zxlpzXJ_Bpoq2a>=XrLc4D_|gNdP1`I5_0m57dorOZ4xL znDF*rZdQ?VTi|*dX{q8=3^Q%sR`8uv^i*(gs^dwoYzc617>%{nRUZ3U?`FHlvY60@ zym*-Td}6*wGvBBsCh9)I|M0ZJ&cD7u=@ zos%=zMn~u>@1qcvy4{TXyWFU~)FdjknfOREOS63mUkc_T317vt-NBCayJ;D|Ys2kl zbKb+(S;GJgLz;iT$+81&2k8U42hT_|T%4*czqaWbyK**6EW8<^jE~Oa{6LY%%QB%t z(}RFS=J^>A8PZU0fuet?FsmEN7bAG1BXo&oY*7VrCdsmR;CJp$iB6Z^MbkI?!oUVX zB}-LOUreJ1TuQLdbSy6$=1RYwP7=I&geziZK}G1E{<3KLYLuOuo7*uwJRDkWrQkhW zZ+fr%GMo@f4~+X(M{ezP0{Sl2mZHrEjP=&UDkK2|RG-5>q|ZZrlQi zCA5lXh+N3#@^rVMxc@{TRHnQuwY~(`QtyvhQ9nNUFZa`%;<2JsSFWJPdI(!*DN#|I zqN47S=Opdz?T%1r*@aqpI7M|Y)XWy~DRrCq`CWT#cYSJam0e$)?mEs7swaFz;P+Nv zHoD#$J1YvPm{T! zgu?3{uiefTsHX%47ND&DkccWHq^w>`VT!|d)6grlRV&Lv38c@n(N(=KTtN(V);#ua zm@WRw?dC~kVi~NdIZ#?LP&=<_1vZaCR85twAZW|}6Edj+iKVE9sO2-M8?N#HYc7f4 z2^7YwL4QnLEtklu$L)@UcS=|ArW|zM`Jiw+`RF~B2FK2rLf&!*H=>0eqvYo3|GOsa zE1nMxrf0}e0FIGLVe|kpR^>O&{+$g2=|nHQ)?MU(C5c7!#a^5uzrPh;Cz1w8$lDA` zrA5#iJt$rGpPj4jf8f79G;UI+D;gG1A+`1;`!+5d@mLxSqZNEGepjZ zgIx};l5HS8uU~`^t#E3iTm2>wD|=3BXWia6&vWI25NlPW){Imxifo;+Q=FXL^9t^8(J7{NWVdnt+7imGwPni5`(5E0w!PLA91p7v5{PODaCXvpy?G| z2VX$LbFZt!#+~Ny&*Fc1*-cee`n)a0qv_|24h#t-PP5wLPM9kl*Y>zdkc;csiSu-} zV$AH6++7Je%R3ShB#g&QQ2@s6#_!EAEKsdTpGB(8H6d5tiW`{@=*}dvm8a3n6bf(Q zFn<()h3~0@l^f^Orr{yGwg@cyQ4%FsM-eO7V42)aQL{;{KN^(ZOSU7rhHQOjerjju zas5_|`WO7|Y@iiGGpC;J~3^I;?oJH0uyEFmRirG^YVo^TIi_@+)nS99-GTfX5+QJbHsTyXPd* z1J|n0@;uMR8_TlVN0(@F^x3r99NNhHmN_gHCnu&pr}L&(ECM<$ujrs#DWpp~^|O^k z&*Bx=wU&Om*bMsqmZ7p^FAiS!@{Y@x&L=pE-Iw`lmDaaym0!B;K@!4kj)MX% z0Z-s2tuZEoPYXm2|M*}BdpBGfGGrTYNQeXMG5r`zK`Mt<6KUd@|9R%|5((nA;jML* z&LE7o6Z~2bdw9OKjRF!xi9ESqJh9K@RnB1bbI)>1DuJ^>el`3K?2=5xxr9+kqAXFH zd%8)B>BrF^^vxhzc-eO=tVR2eTJaCH2vgq;Dy!5C$`xGT7di(+9AFAtA=cv_i5&5E z-_8e&)E$z7ZPkpCvP$sBSXBacPOCrjpLrph>wUTh!eaW}tVV^#U(NqS`{$R7FO1;% zFF=n2uJ(l=b%`=gp*g94584~S14j)0h@BvS8#(1{kj;NogGK3&2|+4Q=2fy#%D>00 znyh(&pz)ysakOY!P+I`FgN-sCcaOaAUU&G|?L0)41QWZ@Z9&|>Ho0c*#}yWM1 z3FH3y+et36Lxr=Uttf@u1xM`S zZazn1xxvxpsq;I+s~|&X7yCUnISl5`+V^Zy6q2~cD103$tXbpHNnPWf`9%Au$JQt+ zumnzD?N0C|`?4-v-3xZAoO{b8jr@wo{XJDFd|1fmd%|>~2!RWFc?m z^$7ELm{sQha{5|n&7w`b&63C|=9Azw_g5GA_= zTomYCC7B%+r?GB0fKIbVfZ%3zpZHfmb*}rb(~i#zn!|N-@=FPfY`AsC$k`YrxcQb( zYWL9Lrau+eb&m=J%1KQjyfLw#Ut4^T6XsYH_~q&E4m=fszKoaovYH{I?QcMskzB<1 z@IG45TNG2)l159E{jt^ATsBSb;h29i`%%Ji?L+j)VfGJKPdyg&H%<~@!ykNn$MGG6}Kjuyy zJL=)%XVnS#PT|X{-pos7ebXqX$+HawL}%57%^~Xw$0EX^~?T4J``pgmpLDsbD@(wdjd zT}zZv9rkIrdr_1ZK5ii~#-eVhlmGv~(_j7kLs)7>h`E5pptWi|qCqUy%umDc8+k*l zp53gueaBd%%~)RJg6j6>rkDUB(a_S-YSC+(uCgWU;tRqZ|7GXTU!##=dFj_3-!F-m z8``vXWXakuiZ*jI!~(mPjZfP|n!ddRoY%0&i7G03XvVQhFP{cZuxM#&4gLHHV?d>Q zI}Q7h7bYOi&01h3j8(&!*;$~>*yi}Bp@9?ugqx~X_9i=oI7o<4B-RYIp3f=s#d!l? z3$;u;Rb{Qq=k{{}u+1yV03pkbwzy}F$F!9PHfHvs5_@Gkn8PaPGbm`?CL?-NQc|+? ztslvQVhDz;flSOhpc$LnU#Cr@sb9^Q?ntcIO;P1*X7?z$&q<<$Rjr9i?rc6a?+U?l z5};DDiTOnt5qY>~>*a-EQZigB^`&)whkyxWzog<~{%bx~K`n!&f5R%OOomv%LMK>Q zFP)0V${3R&lsV2)fZHZ5uc_Tq1j`xJ{&OMd($UOU(d(!4-pMN0!_;)+Px@~=lOXS0yS558<^)3uI4s{f9bV7RZ-p$o$_-g*G4bE zOZ+7uVR`IRE=3#-`@ZJTQ|^vtY3I_Kk?f+tN@`rGWGA2Ty!!`yu_li+*-f3x#>~&1Xpu2lcm^qQ#!I zU;ETL`3~gbKKyvQAcsBK1|?V&0vb-w3j7wgr{0pngYV}TBVmIo6S5dvG#m}-kA9x* z$N!o0EV~s5(o?Sm_6;v;&w8a!GYESm+8F{&aOR@L)XS(WsNO74M_sSO2jLj&p z%$Bvp1}py%@Vkn{I+}>PeWM`RVx)(?e;+QPqi?ZQ_ggHs$sYaf4*y>M{}v3kaTOnI zmt}smcv@Fc^{(I%^!4xoZD%VK3%G*b6`IptY?+*_VzShT@xhc>WpP}^TCKjZb5UWa zv+d5XK30oKzkL`1fSMkklR?>O3yr!xAfU<$D&sm1_UoTSg!SRvjQy|$I&QP#P7<16 z?wk*<9UN3KGBcA`$`BF}4Sh#Nc)yN2$s0dl31geAB7af2iu2+#=_5@4((&Hol2G{e zl+_Ybm((8LNyreljFymkYkp%l9dJk6Ta6Uk5!5Q=>UFIH(if<5aChx8MQ(w~tVt-V z@wxXnz>)_d2$|ydgs9PIC4$709`6qO5uRT_r3u#!s+iaB+qwxK2~Ep=xsR@T>n8Nh zwl9vk`GyI{GqN-p4>(k@3e!0Qb%&9^gU$lx5G%V1VWvOX$#+!J)1R&B2My{|vhR?` z>jaB@h67=%MoGe{QJiBYpjok*u0>x!B_2`8YN-BXmNILrBcm@vPSCCN>IZ^$Wrb= zI5lt3VeSWAEUc=V*HF6u_t{#$ZWzSRY7IGDbx=opPTQ9##<0BR5K+6ABR zoCQo0%~b>M&6JSd^46x0ICGe%!g4+Dw6*Qv=Sqg-ErmVB?~TCNnUf4rReTGs=G?G- z#fzj7tkwE4+sLOWYqO$1O2>hrU9g?R)lS5_48>*crq@?#z}n!TdV#0RA0BWUuHdbxHSHKlhpt#>>w7In z%z6HF@Qqd59>87|y726`(x<$z74u7O@EJ{K$&5qy9)yEBn}73OHm68(VvUjGKpdG% zd%MllU)3bUJiIegg17Ys!nd7l_?zl0 zv|ywgkcDn~f=tvYuTn!~SrTPK^w9HG4Za;v9sa@7vXiTm+;_6}t!syTcCXxR|EMZj zG;zjY1U8kty0f2U9DlWW18W^qe)6bPtp!LSBa3O;P5U18_T0hzM8%i$oin6k@kp03 z&qdQA60tLZdsu?pI1m9ugCMF-V_rDFITDcl1UHi-2r62kR&7!}&wh)+n=GBS?P3eY z1{Z$N$?LFvrDcndNBg8AU;IwszGeAusUO6cLdt=3&D%>Nl}*b+Pny4LBr!c*X7N!g>)FWjT{Nl;<*Z)ilcxDF>*S~MaOgb4_MNVH zbMIfW=16U?>BHD*%rl{9l%0Z`&0N=_7O_z?7zm=of*N>Z?qG|__w{Vf0&x3Xq6sr}nv9?)lg0aqJB>vtS| z`G}%aA98q8&LpPNiBj%AWyn!aND-IMg^4A>FS8TeXWMj=L@1CtE65b?;h-1-)ttIa z{M&?~BYrE9=CrneuEq*=CW=s-KC=u`8LCS0CQU-o5t6I3P zbU9b6Y*y3MU8|p3bgjqi)IY?Jw3*jjq@vWG=0qWr!4J#}p#D@DC5V}HMB%0`Ob`-p zq}jm<#4kbRDVVSkeKZO9)tc4EGbCky#AGFua7V&0+Jm@1T}+#?G8e7|uFE@T6-HhLv_hh`VzKH+oHe2=D77_4;O?c#s_5ea0T_8DRmZa>MfkpNpVtG8+Ck#nHAjrc1xNFS>mH{XfuZ~R>xdnKGZ=}9Wm!JWS z(1WASc`=B&)40J(0oO`Sfe>8%D}OJFA=g&-{*k;lZn)f?-adS35tkD|0V{OBE0a2$ z`$&gbMY3G{XiP#h?H(|8mWwl`@pO8=Kjbbafjy8_<#vyuijEE7dxPer!HpVmBQHSy zT%hy^#l}90ivLgp_!|^I`KYy?|rW9vlY?;%KjtL;{j>*tpRhbYBc5hjQOUrO z!&lvB&pH~6vPQo)JkMogtqo_8+7i5RSuSGqxpxG4K>J{Q;0_^^jAiIKuI1Hh8TD9c zN+c4wb{=)-S$nCn8&iShW*CBZ^RL5gL837S>;KNTV~>j2n9-59OLv&e=KG{!=uFlr zhSbptfflvg*fh&VANP8bvVxHte7A2%WaxMZQ@r9e>}3I! zzqIR`_~B5yie*X=7{6~xKlqKF=C&jfjIR~k2WD=~C>|tic0ZffiZ8EGSRc+9(eP<;LiUv*%AQqq>0ZJWKF!p5=3jirqYUdj z8uuhJ@3ci+%%CVEI$JXJrnEaQdx5p5!nEz^_Oz$ZeJs`uVlTFK8#5JJjc>@zNN(K= z9!F}MbGR{6Ti?mkb7|cu{IvKO$)J&4V0Wt<{9HZ?J@ zX6(bi9v~ZIt#zy`W^7Es*2YLc9YJ`N@xtPbFhc+UjcFYF?yLX+*Jo1$gzW>DHLU+5 zz8Qg`Cvny#P{&OvC)*ZjU$yR-{yesOb9#kF6H=Wsr-ahSldJ`ugt&CG<4%g3@o`@s z;N`Nu;q)HKdoZqd9kP5a(NA^3_i3_XZR7I#q?6(F;?{eWN;n*~UT{Gr*xUR5QCHyI zFT?_PFyUx4n6UNu0vrg7g&_a43_~hPXwrBbGeuU zk4Lj16Ilg;Fz79@SjUoRh{t~!5>?Z|vUIXpCi8T=qk-VCqOGrWHJ-{-Ewi?^HVro} zK|$TX2v=YG>T8O!XCh>|mX?-sa&w_}-y&+OQ3pV>zZ9YO36qRfinNHV+IG0C(ybQm z@u?|^+S=O5`T5mw6$k|@4?}ymLpdt3^%|yZa?ZGhXF&jl)e0@s12SZul+Bqo3bHxw z*cE}7^~H7e7~rRD^aIWj6ms2TF0tDp^{$$X`?0d=huhd>(YCkI@Bb<#t~QXbKl!|l z19>}THo5o3|24=|g}UfWSC)st;NmNTJMUM+ zl@m)i8GlYQnQx3W%fNn=JCyE4<*;^mQ;sT+R;^Jm4uG;xOXYh7aQ!$KK_6xF7`AYJ zf2d<6O}Q={e*kQHOT6PxwZQXMY=W{HsAzogq_&Nm-~AC@^sizw%Z zCi`_v!@Jqhz$RVLVuUmQ+^Q2XQp9;{o^|Htr4d4Fh>lMO0sJg%m|D2#>WyO`hxr^x zTa54RhxA>@unEAfl%jYE62m#($yyZ#9p6A1ea82?=?lgS^&Ou(7FbcN%VK}^g#hX> z_r9IVn3cvWju;g^d_{okPKQEh_cn@jHEX`Y@4Q?GXGIP6rr=7hdUjk)s}^!j6`O{; z;xU>+!!Nd)Z!KOlEL2Z)#$ENKgo`_9i%%Z3-NEHF;W0ch#mAPTLiT>vV`BY*Y;{FX zw^a4CX#EaP%0?oomx-wW2+tiRO49WAl2!?(*6LRu!t!4iH2SzL#aL3q=$y-bVq~-K zEvDNM%ixUbzJF=`b?!Vu?UtZIagC6apDbi0a@P)juyi9tlwalLPo8*ZTE8ZBStdl= zH)yPk7=LU?=H?gFz0}~{w>_O@fkQvGQPj8NG=PF3e`L+G+1^lZy zoM+LFVU&f=)CF`|O?TV)RCmSkzG*ne;dUdTUh{IhdJEc;O2d&w`sejT!wgqWy;y%d zb-MpU@2Nk(G8x1kC5v%%etMJKA(9$v247}tzmd0&_)zE9DZVHKdt~?4cjs6gkFyZ% z&qS%-m^&1#DF3hc0l$zpKk@b{DY-s}cLXm97p zYvm=4<4q)^?ocabmTH{UMv2c&k=!$+ivgmOi-X>^GWi)jX6J*joH#389uPYt<%1>` zEyS5OF~siO-Y>_`)~F~9J^HR5mR}%5E7Vk!Z3%4ew8}K6gQ4zpju<^Yy1p=kmEMxo zOf+YUDQ4>w+9xTE`XxNE=o$~Ljd{X9iMxTnVWueX=`Nq&P4K&Hm9(iv>8fP?%%1|_ z(n>Jpx|ueev+uQ@Tc}LQ`*v%k=uf$=t7SG_g z1R~y7{)rgf+^F0f2c|qq&?uQzdvwk{f|o&s+(#Hd=i|d&k|say!r&DHUQK=qCQ9|S3hUg@4{R9oagHu!!T2$# z71ftgjY=Qpimg9@=?fnA@WNh~{#`_#V(xV=VL?8-_fbf0o(nOyyhN|I1{7$ZqK5gt zDc!!}3lM2y{r_suKg8&l!M!|h&a;0wV@(^6Kkr4m<>Ti^>y&4D?(k6Pv&YzQ1`@xe zpR?e!G0f-n{*?C5qvtDwX{QyZii#>i7gP)0O-oK?SQN{d`L+jUyKOqBU3!~#3ijZ1 zFT#$v~Q>EV|GCyFFYm^6DvOm!IP{6jK)Bv*dzfhDUO3XdnYQ{^8CX_#}K*7+7L z-kiTppSzn&8H=d;Zs-~=rR%V|%q~iPs06G+wZyLC)z-3T4ReRWRu~qwVo1+@bE&B__nyTl{3fWOc_O@d!s`pSx=j zw|q|;GnWz%Bq!hw%<7>I2UT4Gc}#ExlMVj$^VXcdTf> zDK5%q=)g6M>#e463GstxE$W#vP{?2GL10{QjY}k-IiB76Bwpp@LC=wJtL zQ4Zb6n+W8u5*}$NvZXA%va3Rc1E<=XtxdhfOkEbbMaNQJ2B?=3@9fgQTo$_2-PQ5< z6DFA$B7gv%yO__f4Lpp+uN#gZM2RsK4X5;3YA4t4f8@`C&CM8UyEB@#J(aHOz zOP3T$&XjjQD&;t0#{T4bhN2wldD9Eka=hv@PRuJcpFv>a8okB@ONl>9FJTFK%ZJ(~ zAI|t-1`Zyk_bMBJ%Oka9Vr>!3|ALKw(8oUv%FyxbkRS*ws6kQuBM_MwN9HQWQ@g%O zd)}HP%yh&`#{V5W6G4;b_^RdRVRw%rs2l?f&6g{Lo&Ri*@tTK*Vt;7pa;W#oA#!37 z(L&%a2z_w~CX>0_cBC?RI;CFt6b~m;TKVtH?sc1~7}gbuPf`x9-rrdf$DU5wUsb!F z>ku%z;?!#KX&d`9|BWnmZzOq(w6E^6XOb7X7A(F;-0Gz1wehPu4xhM+va{IwVuaiE9mq{JdG)VxYxt_Z_FChNW_-l-q`yM6Oz~$;wq3O4&UqdRa zloBx?i!3Hr3Ld^frJs~IFUXP8y~$9kCz}Ulb2NwVop~X}Y>zqU^X(>|>e`5ToWJTc zE4G9`;)beLSU&@m=ylJEe@T3L4*%-@YO8^l-=uw#Y7q92Q=8=9L{oN~t#$%M5xptl zKOgKvhswqg<5^6$#K@FqVDZI^?1$1dJ2i%Vl#P2s3gPk_HX%(Vqd}(DT`74!*ub&* zYizTMK)R?2p1~%bV&rO_{j~L)U$mX&q48G&dnB=#uay+xI2C=B?tnf5(_rf4kHbjL zcWG;Ji_MU$FYebXa8OubkxvEX8PbL7xXT<^YbP?J5P$mLN?80r|C%VeUg^q*1K}+* zY$V!t1wk@q|1k=m-CaZ!|7>r~fI*;lSfic@=1J031d$d()9r<5iii>AYE4d4bJ{|) z^QYV`8ft^O%x!PQa;@RPZnq|t^K-EH8BG1R^TPbmPT*B`306vip5_Tg(%;7O2moUr z-j6OGzy+sn?_Hr{KI|H&QP#@4C;4@&y`=+Pb{_-ZK$OHAt`&(jBp;i*u%(H|ADzBf zFN50*l!$nNWY3c(gD~jIA;SP&0^9PFO#nGmOzxO8i(d1-p2PU9JijT#l3g0P+JNN| z4z@h1)6WWya}ikXIc*dkQAV+508QmIJy2q~5Kz`l)%QxQLZO{$zu-@UFn%GX9Dd*D zJ!h}D+g)(fa?D_#7W|meJBYMq2&;CWQcs0mz2CE=@hq>PzIn%R)1$FyA(5uD8(Dce zA4N#NKZ+_wVDs?05>dHtKWenA+!>VF=C4b3C!OxC1>RV8#Co5VBg7ShG>lIj7Ce2K zUqUnG+g~Bc>v#~xr{J)Vev0zg#9Yg#YH}Gl)LBhC$ z`n(z{gIVjC_D3P<4gN9bswfWF#x9tOto?-U(!Isxuc4C zR{Fqy$aEaOVr5ht$}c2Ul60xtw`K`&T#qUp-_0TmkQQ$;#UojgaGc#C>48lp4&XY6 z-#tUB6o)$rCV1zm>Bo@pquOJ0cJA;?Vq|1E$J?c{;h_AD6q{kpk{hsP-(XtdbL_D^2< z>Y)0>>RSJZs(6Jz&_fmz=*17fOciZyZ6fqF<|TUScfk`sVv*W#U7DD71`3 zHBoF67_)OIYFXW2lghe25%u*95Im+fQ0pcU%63E}a(K-cybV4o! z-xS<u0^;J*OJs87=7p0}8RCh5tAt7G%t0e%<9?;~R{jx`#h_rEzuZk{r@kI_>{+Aa0 lFL(ZZoWdBafZzs)>|)p%-y&n94#ofoU}|V?P=|Dj`9I@(#{>WX diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png deleted file mode 100644 index a13b34ba2da477314dbfe9a45d877263def58453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3085 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 Hr;`5*+IO!% diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png deleted file mode 100644 index 9150e62edf989935d1bc337b9dce795799062ba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5526 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 Ui}~^%&}ao|s_LN2Rjjc815h1S)Bpeg diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png deleted file mode 100644 index 7ebac13d30c4263181ddc99ba576ac5b4094f8d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3611 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 diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png deleted file mode 100644 index c8ac46f84c0a8cf7a4895f5420b1f9dab67b0966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2007 zcmcgtX*3&H8;(7wr397b64Vk)s@B+I1WC1)p|#Xf`!bf; z+RzZ~RH;@F)oKw`TNFWRYsB)U=R2MA{rUcW_dWN%=iKwW_kHej&w1{x%l1}cBC;X? z06+|GZGqtC7vCpPkh?ayHkWdfptr4+1>op=l=al+0sumH;1*_%F~v-VLx8*!V1PBN zDGjSGuOOd^BjPq3^mGWODUar=?K$B_S(p{yy_|E>>Aol&N43Bogwt=UBb`ywjX< zRuSYj%*COI0!A1ATdK!y7))HPqcD+>_8pu?m}>YHq8pa^Y$7;9CGimOVzsqfG|3=0 zV%ZQqM!gUEN96*%zF(||0oKkySKUq_&wlnUWO|t5NK5svynX}XCcc(?7-PuBF0h&_ zg~Eo0FxY&ge~N##G9H_+bQ(tV3DvZGB}!(jUC0?C*^oRky`V6N-5u+RtjDvtqj=;% zNw>6s_03)x?#mhI%8HrWXXrJHj_A$I%T8{^Y=#st9kQU!a?>(LvSCw$%M-m7pW7Wm zXQO>@a3Y6h-*ECHac)f{ef~b>nh*V5i8|D@G+lm6TCJ(j|TJDp8~us_Iy3vVzWayR)Uow)??Z-LF91Xb7)5< zHSLt{P%Cvo4CmcvObB$+*p57plH+#sNuakSex+`eY3DMarCE8k7(Kzce#Cgdz+RRA zj*5_PBZ*C)Y7v-gTAkf?{#~%XXV07X`M7qg9XjSJ_s+V-dxF>d4{M%A+O%Vz?4#pg zj@waHJIl90eabHD!O*c~=)psc_x($>2&JS);GEO*9ww9QHkTEP1Ui@e-^?XiQ}jW= zro)Y~0KNL2E!*+-0_B^OJW%lZ07po6qR63h^3AQi3L(}|Mm3YwUZ^j3QhAKg+x`Hl zlRIhKYw@hfYEb^EAuRZIoPv9Tirv^3Gb6v5{W%Yv*1RgH*ANx<+SR0xOxktwNKgSQ zmev_#WfmzWvg;I1bVvM$`u@m3yd$i<*|;nJ-h0pcDEIpZg9xuMAW@ae0b27Q6WR=Y zR=LcgTo8t8A*P<-3_!DT1PXv87da;jw%tlNe1XfdX zM)5Iy#dGO$dBxPzxUVbsUS(uS3_tgp5A*rO0Pnf}P=g*d6h3raiFt17k_PS2x1JOm zZ=Mu%HW!ByQP3Iu?GjJnamgpi|FIWj&YC>6DB7RJ=r;8$R*SepJ|G;Jt~OR7UgQ6l z|NN-^VNFCI_LfoaXuD|K(39we3>3fqXlBGTkftgY~$^#5%2%VVPonL zS4dTK8_SW@@^n<4x$wvbAJ2gll+RIbOK08o&8y^vg)@Oc7j{2p~@$&1 Z+t1dEs5O$+s{i*rxTU>C^F?IxzXAWFj7R_g diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png deleted file mode 100644 index ab9f2b76e3e3bb53012602636fc3297418fcd4ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3528 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 diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png deleted file mode 100644 index fea4a2a8e95b9d9c792662848adcd17100c8d10d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(Ggg*~inxF{C2y?cGM-+YS2Db#J7c4Jj z4OeJA^uA+p@VQO@FYe_*Yc-ySbNanH12mI*;6ZoI>pCN$&)4mlXY=nrt^YCi$KkDS z4BvgJ{w^Hhq#(e-!qn(MJoR7^ud=cJuCotw9wxEJCu#Hh))m+^lVAYxRv}bYzkd33 z>Fr;09BxFXr>Eb&_MGKV+^!uvX577hzkGX!+uwO#4(jep-1ArR#MP^zH}Ag5UDR1~ z_)p0d);DJDllN=ymu0pwDK9VIJbCiuch^?`cu>)K^j<|pMa1jxefulfBqh%)9AxA7 zwM{OqsIaK6s(SVB+1zx2Z_&MvfBdM3l+osFIk`H0jhwvv?&!Z9EuO0j@7%dlvOOd2 zuWU*|cli6a{{H**^iSJY+t2-d^TMRO-1g9N>(-YK=YO}l1mxC&xsk#B7O!0VKKJ=V zZk*bEE!uX^vV`8tSFfkm>6u*@E!UbbQP5+9(u8&+d$HNIN9I~}A62)24_<*Gb0`B z*DwEnn9=sjg-M%|PV;~AU1oUx{Q1w9FJCUYZZC7@_KXwDE8Ul^xpB(%_1d&c9oxBe z{=EOM_@CeIthe;5($%k)R+dSyuU&awq1m4~FF*e|J3IT+cl-8#xp@_4VA_*yHB#jW z?vb*RWm>$tn%dj`DBMqRTQP5?m6erN`TN6+yI(Vclm89p%{S$J+m0UO)1Q|N67h8P Kb6Mw<&;$V4cxa*k diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png deleted file mode 100644 index afd39c2360afe675194d905b2bad7f2755a48345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795 zcmbW2c~DbV7{wDnpezPw1VY<2qJq4n-Bzz3KfWKQx+pjLXcMKpn`yO zhz&agSyW_Sk|$Uc!~hax(Lh`<5Rp8arGbP%U*goM)3JZ}X5Rbe{^rfO-@S9ry_bBj zuKGG#bYL);zPsBIKdAOAUu{k3+YofC7%K1tKi9*sTSH&-p@Bw(qn9HL)|jKaa(W#M zrrF?r#PR5P{Ni+mFK7Qo%~SFEBRV*^4?Gbzaj(iWGDC;5zElHEsiWi@MVQ0?ntG6T zhrzW?zWQ5Hq_wvw!m-On3sQxiostT9Dt&@g@(91+;Jm>h<#~&qjB&mAo3uQj6Ugw^ z*4EI_P*YQb!!sxp3V2Fm#&3NzAG70*G$hV?1!r!noVo>Ppe-6fdHJ7T}B| z>RXReOAfCa(*{6>>j&EV>?6fEZQ6-5Oy*dRVdNvAmDFd=1`IF0u0J`{g_R6H z=c5A5rb`XI=B48~l?N4L+th@)Z^1TpkA`U}H-rQ)QtS!D*XOtSZy5m{SO-vm(E`BQ zewGd9gc}=VKP@Du#}>jHgJSs7*e2ay`_6g-VNE)!DrcFYjOunPkl{w~fjEyhBx3f{ zi)4g!5#GUMA|+RMv*(GYmuceQ2WjIG(N#{%!TS}fJ6I%Y?C-BGrv04ap+pvn)#FsT z)%1Sn6UUFwUJ7VP+;LL3irZDy;my9{|A$ByjI%ir7&AqRhdorJA?`1o5DtT^pX=%U1pKXB$3T|&6 z1qq`ZC)T;f!*&yH!!DVDR%P6fY{1Nfng1W#ea4NS;(35@pXYtXvtx6wU+lRNSD4Kec-4`^(sZmdFqmmo3 zSgidnqoj9Xz$OzYO2Vb3NxSk^C^Vt!d7Bn^ylSW)8N*37WSLGp*5)FU&JBx)Z5)gj z>(RpYsG4g~?^aU63?it?Wr+mZ)vD-*@tJ?9=9bQ&j@tg$x5_l1WhtANwI$n%>Z9+S zn@OropTTO~wB&0xL>>m($fnbLy3vN*tfT1wZM_)^u9$hN+y9Q(C=8`_(?%)eHNrT2 zxg}^V2I+f)oNo1;5>($RmM1jnsZv3_aRRd|Fhpi@BS2NB<7_^}$D&EwjqHyGyF%)1 z#HsCZh<=GgQbUX`ashM)!O96sUXy*;PRNwKe5tF-lpAelw~zTNeR_c}og3xQ`47H( z`|8y;@A|XK={g{|TX9Lr$>E_PVP!22vg$8SKr%s47GAOaK4? diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png deleted file mode 100644 index f56ff5f5f6f4bc2b63ecafb40648fba9c3dec4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14732 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 P%3!jRN)okV#-aZY7BfL) diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/github_icon.png b/tests/TestFiles/Cairo/Media/VisualBrush/github_icon.png deleted file mode 100644 index cd053c5fe1e742b21cffefd60111d8498a79dcee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17661 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 diff --git a/tests/TestFiles/Cairo/OpacityMask/Opacity_Mask_Masks_Element.expected.png b/tests/TestFiles/Cairo/OpacityMask/Opacity_Mask_Masks_Element.expected.png deleted file mode 100644 index f57c675b7a013cb3fe4f94241527f96150ca10b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 846 zcmV-U1F`&xP)i%%vIn$gk44mb`ymP*L z=Du_93`J2CMNt$*Q4~c{6h%=K#WW0AH)?F)Rm}RIX8Xi@U3+cdMpo{-xh?Tt&pNoQ zw$HVv6Z2jmMOfn;9&&J5`*qpb#se9-FO$__S4<~sj4vnUzCgIJ#>0AdO(|=JGmW#+ z`7e{vVOLBqYmA>v$bW%QVe{_V5F=}b(~UEcH7pa|Vb6$@HO5Z_*RVjeu=jBle~OVc z!>Pvo!FAjsWpHgA!$mxfQ>K$O#y1Au$*3i5(jRG@#$(vTQLD=u<97$PqVrD|HZt$J zO{$Pw=(XWi^~^oQTeQZNeIN;01kRUscu^Uy9CqEy5ai z;YB=RI#~@TTK{;5kuI!p4_?+c&r`}8<3}U&PZc)*@4te3#mH(n9=VpK32QuvmvFZ@ zSz~-5s*bGluuXl210MM?T#i4Ds3)Vt3|w#gj^}Zwcv(LUY)90R_LLm>7O&%1v9f0P zEUJ#wIc(r2-oTIIWc?h~U94f!ANUP#;ycsJYWO@d|F!HT=O-0!;|tTu3R}BI)_J`1 z*T4t*5ziE|X1E@mcgj=p-)Q~b8&*F&9OLcz8W~Euu=$qdye{jAX=J5z7fHfepS{lM zqEn;)}W(0?j$)U*ry?)UmKvX0$Eci2<@xkgPbYiD35xQ<&yKP5jB zE34_FNgAQT2ENySDHtVdJF~mUnZvG%ku}3t3HdLOalEsozowRTbKsZg{Flj^^glMO zteO4=a5^c%27b_AhZXc+vUb+dUF7a1uQ^<2?RD*&#Jr25D2k#eilQirq9}@@D2fpN Y20PuSvP48Ip#T5?07*qoM6N<$g0Li&%m4rY diff --git a/tests/TestFiles/Cairo/Shapes/Ellipse/Circle_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Ellipse/Circle_1px_Stroke.expected.png deleted file mode 100644 index e63700654599316d8ba1c237658161c19ed2ef6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3323 zcmVPx#1ZP1_K>z@;j|==^1pojHrAb6VRCr$Poj>TE)fvZQ?NG4A4uy8;AWb1{$&kUp zK^h@~7BUER5R?*1hYSu59ULqb92^{+ii3lcAR?hSIGA80NgZ0SV5k8jCRC_kpn*n= zHc(6ZeC~UX{2G40d(V6C`|q6h^MNn-ymv@`_kGXvp67YabI#c(A|fIpA|fIpA|fJE zDYq>@r60Z#`cdeIOWhgzUI@M)`g-WwOVQ>#_&D@s==xH$`3|mzJ`Y_AU0&)&NP0j6 z=>|IX!4O7pVEM^4#y|&7o%z$y&W?UFw3`vEG9Etf2<^eqxl;0u3aOZ-(v-9SLC= zbVNGbTgy+3V~SuX{Js3$_k}Q!Q=#*rGa+3w*%*xCSD~|^&z7H0hVBXB@|4KkA%4Rf zp?`+n4jm6MB8seqj(;@tN{9}0GW1Z0V7oT>t+_xd z;w@Y+?iKfJPNVAV;Nku{#KY#HlLnPMxL3p~xL=I48cId*FnOpv+?PV6K4mj-L0=5< zl6fwassf}yh%rcM@-PX&jW4qRh6%2*~& zdSHJG`M`#QL2d#s`-c z*On25`Y#!gG@tRv;!36jB|Co)kwJ7c85mNxyrn1$(dV5m#Dt9O$dvFv;8GEUKO6GR zG<|qRj3SICRxR{Qa;eNvl?TS5%heOQRCS=s)dOTj$cX4t)j@K(aFZ?j*%EFb!!m0X zq%Ix~@oZgpvLW0!;tg)3)Cuz>JY$3Rmaz1b8|T}le#lBPlK3LbgjIgrF!q&_d4MZT zOhT4YR=^D+Ah%>>evsAT*;7j=yMS@L7c%`fU)Vf?R6ZF?*+JSoLE{jNgubA=wS<72 zm_xTp61*r`gf;uXJ*9FD$mLej9N28jinsx$a%B~yfM?l9C?7HREjeHu^p)9^rBHZC z5N7#^4Pfb5#tW&ixiI(yEz>r20I?Qshji#!8$ct zMQ%0AUb*;*B7MSvs~o{l6l551t*p?MzQKKG!|bAtx!?!_SBA+@kO+FcX-*&V)C5l+ zK_Ejxyvu4-))q|~{!j`Loe-3vDdNS<1P+seB4fY-qmy;*DJLN?_e?+;3+6`XgPoP3 z+`jzm0!EL^p;s4IBE$1V=v$#9q0@XZ6&O88wVBqHv0?P!cE8Sc`y(>8a$h==wbw6^dP|*(BevDIuH*tii|oh!j_>HB+67d85(s9Q)bOQ{6wY-o(;=$M}aH>wfG`a=H1Z7 zFY&J}KR4mg(92CzWU~A|L|+{gf^#PZr3BK%;h@3#(GVLkh?D?pMILLK!@x4f<4sd! z@~|%gyPymLCjc>IZ9PjVG7z{|8`WoRGL!y`5WzjmYDG%m%MkJMcSC>Xi#|CUn*7p6 zky~K@EK~meLgP{veQ>1w4%UMe`at(xk z>{8PdDIRtJ&Dy3a*FX-0t~5=N;`ty%pI(b2h|H0Tp-wkCWM>F>PLx_;(z~;y6P3IF zZki(1kX6~6<6<##5Y&j&1R=xPOjeG87=K8O(5IQcSV^vdID$xRkjdKLH1{UQK<*5E z+B8L~;cAFreI+>tLLl>T(-fH(IR+w9BiBNmWU(kzWH=J32@cs=yZK0tfv|$mO&VmD z>Gn*T08MQUSh-_999L}p8lfiOu( zs#l~Ym_=tUWFb0I6y#S&S8LAuNp zVvw~ZR5=DBQX^!s))wLB7zqD}BZ$nB90U10bVt(^sRq`9bTSXZ;&%7MlG za}0zH8`f@*B2pOaXwu1UJw*HeYMLU|z!@Q}j)YzXTaP-5NG+uEHrJAy<~0tHn#kS^ zv5kQ^f=Df7Z>O7UAVm9XccBw01kMIwXT`PT8c6nuJR$`^U+yG>m0%{l^OHeEM&kWY z=O;FEGN_}7ln$xg?89?%T`V{ky1!|P6w8Al`f?U+4CHj^NYfN4mct?Xa_6)fnnWf_ zub~3L&D~8?q&S$%qbekuHZB&N3K@q;snB=NG|fEP8p!z&KAcF2(0A#>y+LI!afq8Z zNQrzBYE{A8b_8Lgt&1VuEGdn9Lo6R}br@7z1A&)Ak2Xz_VxZ5y+BExxT6)~9PPUF0 z832x2qg1N(<|CVoAS`reCi0QRmB{pA_WVLyzwA_KEk zNO1e|vn}k``-2dRsQ$L?#DE zo7jFLL;xf*MP3R$-89F6U>ytXeEFitmQcA%B5A9`pEeEB69nu33H?0eNFr0>H=(yf zRG^Ov7K)|1ZnF1DAKx=SfmF! z?TcNEAiyZXAN12uFAL&DGI=sYN&72{s|nGW-zTymlaGg=3Y}=0B7^fn==r8OO_ zcHI?+GBi|lu%*vd^BzM$-3v8Zu3ML(ps!JLRm>VCCJhOeM26sa=*^~C25C3=yB1d> z{lR(<`dV=tt22UFejIevQ_l0 zql>G8p&tK@rYX`HxbKsm^T-8PiwuKVE$Ipt>b(=HW-5X56SkelXB626CIqX@kTSb& zJR;kW;tuv@s}kc8*@kN3j=eA*kxi*C?%0bIk377%5?K#(Y4n-dRAx{Xzz=4gL}V2t zc32@eyZzT@`@Kts^CcNa)pH%&KwUp0iSE|?;F)V28Q^ZQ@q>Z;d`K~eZdE1( z?qo1b0oPBO6Eh%h3A3lO&VkQ>G#6%7#fESL&4t&AFTjpSL$C#o^+24d3*8|EaZ~|Q zD(`xda$!9OCF@k>x+PS{Q0B~f5@y{Umdk_Df@en>xB8OxF-i4Xx?JUeOT{wTYF7eI z4PCA>(4`uYoi3NV$xjd5U|p&SfN?PM&WS?o2`uBnh|YGP7)SA&y43<(Pg16UpNqfi z8*6yD=j^i1GoYrf*zG`T20xdRcHaw`=^73)RGiO2Txbnl0gx?Wh<`C;5Z@mJ;T(I$ zy)NeP8fjpNXN?I%KEb>t^xc7Ba8J3n1mRpups^?QBqauyUVs6ph;@5c!{hO zt`vr0j4^YVY~)Re3qhKgjLe+!`21Eff0TuA4^D(wui<=>{2z3b$3oP2(NPFQYu+A} zxgyfExKPYt91FRtjAVhkh1-Sug|QH?FjHLeL>R#~zk#wG+$Vk;RneB{?7?lzPgxDd z!btMK@{^I~ROo!@T`OCf222GR|rif`?pX`Y2ni7=e>#>Q}NG|jI@ zAFh)@(cx1pkk(OfoyunD`1?Z#L;OFCX#5|^K-2$uAtYO%f%FR4eUxN8G^2oh=_=Yh=_=Yh=_=Yv|!)9{{aHwI{wh|@sR)k002ovPDHLk FV1fjw84dsd diff --git a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png deleted file mode 100644 index f0a6a9b10984cd1276deb34e741a0a9ba815a51b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggNy^j3F{C2y?PW(!215asgB;!U+8YaJmp{1WAj;Fz829+hH`@cRk0}cM oP!!@&YE&2{Mno70AGeZsk`ufzBV)xvV5(v8boFyt=akR{0E2FQp#T5? diff --git a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Reversed.expected.png b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Reversed.expected.png deleted file mode 100644 index 9ed7e713a9921d6d4d3632cc5d6bedc526fd34e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggN#4`NF{C2y?d6M{4Gui42Sw8Uuf5UM#qqr`o7Gt0lhh5yZGFGbl{2l@ u?|aV7UFaad&N51jgfKY3UwGi!8CEAb!3zP#lN^9ahr!d;&t;ucLK6V^2zq(| diff --git a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Vertical.expected.png b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Vertical.expected.png deleted file mode 100644 index 845961351cca646869f1d7ba644262407a61ac98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggN!-)LF{C2y?d6TU42lBG2Zg8Bzf@`YbBx7!(o?Roic{ssl&@7ja8eLp jVR9TLMo1X!Pcw@yXX;<`K5s2B$uM}j`njxgN@xNAErwO? diff --git a/tests/TestFiles/Cairo/Shapes/Path/Arc_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Arc_Absolute.expected.png deleted file mode 100644 index 113cc908e6aa8887dc7b84046c5f5c345a16ae7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3229 zcmcguhc_FJ6E}*|5~ZzCBaIToXj7x8*cE#;RtSn3N!1sn60>cT4x>iZsv0dpXjM{T z#HvxVh}5pyRH#jjpYMCW-@ov?_wGLL?!CLu-FtWM-7`ybLvAi%E+!@>ZX>w9^$E8B ztEbsdEYZH~?FldkS{v#zmGy`$o;atxbj);^m_8+(Ik>~d#B|osNM8pL;=D4BeVMW) z+V;mQ-s`QGr&rnvMea=LM^Kv^uYG(mXZz&}Z89a6J>lJ8KRTKG%nY|6K7<@V+z$QG z(xT*Dx1^)p7wc-EN_UStz}`a-lbLnisKB60fVBG0ME*{mGuqE9$t05qBdibQ&fZ@eKCC){BPKlWV3 zCmBiby%3@qCJ2*IsMdxa^TPUk2`l=r5SIt^ep5xTQIQHV{X(WezwV}w?k%$VZt;}+y880c zW{q)XF;w=dMDS{S+(_Lhcx70Opa3~2t1%u@Dpqc`0|Jj@@Of5J-{mVJs*FbR7XG@o zv5&UJbFX6VDLGM1WdO;RSv;L@wu8OKda{jt&P+qM?XM;~C?w~isNBNL->;k}-zw1l^908Mm`C!B9liz7A?=V}* zr^uoG096c-PY!hSgE?_T!wo+VF;KYmdmLjrLD_0)N7bTco78!18A2p)r*! z77vn6z(}5^zBB}}s&;2NR0ob#ML5V;@AhFl_ZG%O_Te*nluIW=r8E4 z%|F=6jH;@rhezuIL`0ONDgHyH#;%h=xnqXDAo-jc~$uQ)4_RK)9VDnP!oLHNHGg|f04 z&gmMeBNGKZN80s8Ll_1n2n;dLMyCxe$MhG}=eo#3?h5caxc~4OI4~PoJ!b6hZAfUe zCV0hJ0nu^Lh&G=5+4pH~I`qT9tEv0drbYOOYPl2}?EAbJ(iue8e8-n;KOI)W}KepLUkF?3aE68ZT< zY4NjpR?yU&1-veVM@i`{ww@@T*OO)NrwH9oM%&!mZ4-Z(s;B(to;HF8=U{nQ{iq?q z1^E$J8~#iGkjuESWo0yO4?}M~Oz+ZbG@T1Bx8=8B*SCqo`@lxkLe>&f?OaegG-)%N zwuDP|u${4vr-y$5nTwkw=TfP+XW%CTTb(SoU-N8Qrl0eJb2WuGwX?}kzZImRY=>qA zY>yvQ9A+2|N0@s=PP9!;anJYckaq}M| znT{y<>>G)xkf}YgiX*E0(K>B#qKrrGZDmr2Bvi(NGVG6}P(xa+N@%b*y~rwm zntYfgwiIZ<2?w30Z2V)^ooDmnVzgTLDHpG;rs%17ohP2zTrsP3z3}2*ufpja#n%@2 zoTH$QBrfxtEyG2CzCypMT+l_HNj?BOwLIppX%4$Su0x8hBpwmAXwA6sxRe0sH}tEo zZsLw+q^b=T(rtGfvE0Fu21Q>A|TgAUK*0%__!aL%Zn%>?H8Bi5nR_~(lKl`-DZs}dH1D=j5HHW zw5}D=HuUyw1d=$plv@jdYY%RTE}1V^+Da>pqsJ|aY)gR5MkCv+Dm`y~2avgaC*-;q zjJ@vqJF#yiwH*5LU9;DGms4bLr=&}F+TzY+m6nQJ*(fsu%$iNG{`#>Up6S{3vA;1d zyD1^UJKUs`i2%Y(p2?~$uuw zMx80)>oZ(+oGB>}!KQ+Vl`EIFJk0}mV$tQgix1AIX5S*9{m{^Z#m&u$N{2cEa6_FP zVD8U)Bc(X3(m{=5=0PZJ%!#1-D5=tS-6JT%w&#mnw+!&uryRk_YMf4yqpwnuJ$mLg zH6^NT6R{k^!cHTQ6!oC6`}BqH1gFu`ES3PMFp3=Bf2E(L&da~?7bngSkC{Ex7!f}l1r6OEH*}28>+Ek$C){Gz#IaLo~VI?f$nO4AB?2`K6U}h9J zXpmkKczQ#eSH_|{W@$;Tjx(gcaUTcq$q-oV{`{@}@oreM{k!I6k960nM-9?-SX&1U z{fQ7BdSt`$plHZJS>_fve2Dqa`vDp_Uqk}`g%E{L>Uf0PD6Qa$O*OXR;|#v59UYZ(aP~GyQ)>uFk7R+;^iGIcs`?&HpkR8JO#r>AF7t4>rvW5dZ)H diff --git a/tests/TestFiles/Cairo/Shapes/Path/Arc_Relative.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Arc_Relative.expected.png deleted file mode 100644 index 113cc908e6aa8887dc7b84046c5f5c345a16ae7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3229 zcmcguhc_FJ6E}*|5~ZzCBaIToXj7x8*cE#;RtSn3N!1sn60>cT4x>iZsv0dpXjM{T z#HvxVh}5pyRH#jjpYMCW-@ov?_wGLL?!CLu-FtWM-7`ybLvAi%E+!@>ZX>w9^$E8B ztEbsdEYZH~?FldkS{v#zmGy`$o;atxbj);^m_8+(Ik>~d#B|osNM8pL;=D4BeVMW) z+V;mQ-s`QGr&rnvMea=LM^Kv^uYG(mXZz&}Z89a6J>lJ8KRTKG%nY|6K7<@V+z$QG z(xT*Dx1^)p7wc-EN_UStz}`a-lbLnisKB60fVBG0ME*{mGuqE9$t05qBdibQ&fZ@eKCC){BPKlWV3 zCmBiby%3@qCJ2*IsMdxa^TPUk2`l=r5SIt^ep5xTQIQHV{X(WezwV}w?k%$VZt;}+y880c zW{q)XF;w=dMDS{S+(_Lhcx70Opa3~2t1%u@Dpqc`0|Jj@@Of5J-{mVJs*FbR7XG@o zv5&UJbFX6VDLGM1WdO;RSv;L@wu8OKda{jt&P+qM?XM;~C?w~isNBNL->;k}-zw1l^908Mm`C!B9liz7A?=V}* zr^uoG096c-PY!hSgE?_T!wo+VF;KYmdmLjrLD_0)N7bTco78!18A2p)r*! z77vn6z(}5^zBB}}s&;2NR0ob#ML5V;@AhFl_ZG%O_Te*nluIW=r8E4 z%|F=6jH;@rhezuIL`0ONDgHyH#;%h=xnqXDAo-jc~$uQ)4_RK)9VDnP!oLHNHGg|f04 z&gmMeBNGKZN80s8Ll_1n2n;dLMyCxe$MhG}=eo#3?h5caxc~4OI4~PoJ!b6hZAfUe zCV0hJ0nu^Lh&G=5+4pH~I`qT9tEv0drbYOOYPl2}?EAbJ(iue8e8-n;KOI)W}KepLUkF?3aE68ZT< zY4NjpR?yU&1-veVM@i`{ww@@T*OO)NrwH9oM%&!mZ4-Z(s;B(to;HF8=U{nQ{iq?q z1^E$J8~#iGkjuESWo0yO4?}M~Oz+ZbG@T1Bx8=8B*SCqo`@lxkLe>&f?OaegG-)%N zwuDP|u${4vr-y$5nTwkw=TfP+XW%CTTb(SoU-N8Qrl0eJb2WuGwX?}kzZImRY=>qA zY>yvQ9A+2|N0@s=PP9!;anJYckaq}M| znT{y<>>G)xkf}YgiX*E0(K>B#qKrrGZDmr2Bvi(NGVG6}P(xa+N@%b*y~rwm zntYfgwiIZ<2?w30Z2V)^ooDmnVzgTLDHpG;rs%17ohP2zTrsP3z3}2*ufpja#n%@2 zoTH$QBrfxtEyG2CzCypMT+l_HNj?BOwLIppX%4$Su0x8hBpwmAXwA6sxRe0sH}tEo zZsLw+q^b=T(rtGfvE0Fu21Q>A|TgAUK*0%__!aL%Zn%>?H8Bi5nR_~(lKl`-DZs}dH1D=j5HHW zw5}D=HuUyw1d=$plv@jdYY%RTE}1V^+Da>pqsJ|aY)gR5MkCv+Dm`y~2avgaC*-;q zjJ@vqJF#yiwH*5LU9;DGms4bLr=&}F+TzY+m6nQJ*(fsu%$iNG{`#>Up6S{3vA;1d zyD1^UJKUs`i2%Y(p2?~$uuw zMx80)>oZ(+oGB>}!KQ+Vl`EIFJk0}mV$tQgix1AIX5S*9{m{^Z#m&u$N{2cEa6_FP zVD8U)Bc(X3(m{=5=0PZJ%!#1-D5=tS-6JT%w&#mnw+!&uryRk_YMf4yqpwnuJ$mLg zH6^NT6R{k^!cHTQ6!oC6`}BqH1gFu`ES3PMFp3=Bf2E(L&da~?7bngSkC{Ex7!f}l1r6OEH*}28>+Ek$C){Gz#IaLo~VI?f$nO4AB?2`K6U}h9J zXpmkKczQ#eSH_|{W@$;Tjx(gcaUTcq$q-oV{`{@}@oreM{k!I6k960nM-9?-SX&1U z{fQ7BdSt`$plHZJS>_fve2Dqa`vDp_Uqk}`g%E{L>Uf0PD6Qa$O*OXR;|#v59UYZ(aP~GyQ)>uFk7R+;^iGIcs`?&HpkR8JO#r>AF7t4>rvW5dZ)H diff --git a/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Absolute.expected.png deleted file mode 100644 index 8c8f5350ee01583fdb1e8a3bb61ec1dc1b54efde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4474 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 diff --git a/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Relative.expected.png b/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Relative.expected.png deleted file mode 100644 index 8c8f5350ee01583fdb1e8a3bb61ec1dc1b54efde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4474 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 diff --git a/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Absolute.expected.png deleted file mode 100644 index 546ffec3bbaa052fa9730aabb59075ceaa59b303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl{4<>}%WQW5v|(nekeMFD0<=cgs-gk$(PJ@n72yk?RCs-PNpuq^EEtdlD^ n_iyj3|MENzWINSB!}dx1{hUlJd){4*02%7(>gTe~DWM4f?g1-i diff --git a/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Relative.expected.png b/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Relative.expected.png deleted file mode 100644 index 546ffec3bbaa052fa9730aabb59075ceaa59b303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl{4<>}%WQW5v|(nekeMFD0<=cgs-gk$(PJ@n72yk?RCs-PNpuq^EEtdlD^ n_iyj3|MENzWINSB!}dx1{hUlJd){4*02%7(>gTe~DWM4f?g1-i diff --git a/tests/TestFiles/Cairo/Shapes/Path/Line_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Line_Absolute.expected.png deleted file mode 100644 index 4661a6a8c4e74ae0b9487789573081df1a5c8390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggNzl{9F{C2y?d6TU%>g1T2gBJ|ckukmKN@?3?Ik-$W-P<3PQU5zff_;J zz~kEVZKjQ@mHYl0e-`7s6Z7cCb=EmY7#(E_!9iC>0_RWs!m Wvw&f=pvSfqU`*#KfosKxu-ej^S$?% z+>_bTOn<)+KN^kZFBWCUpxW?vJp+EP?=!bU@lne%(`e>D!k$3mTP*xkNTYQ(yt{hn z9o&jDg!0M*^OJ(|(9hX*cTaZ6zMr5XOY-`X@+{7Ed6g0O<#%2P`{gAvey+%1Oya8} zYbfO&=jznOwko?%tSDfTb>jU%A^`BWeu&^>)~}P>|B`Hf_-NU-y*icqu)90#7wf-| zE9JhozG44%#oG6Ad)Cm%?R}>Ulix(>^tYo569x~hR#j9iEqQP13AQB2yS!qpw_GeQ zmn+j(^?M%-J*%5}wPrTgJ-B}>yyp1A;pN9KN%oC1&!&%mr(ha8yIJ)Mn(8+m%Q0)~ z$jHp%qc4_cU%#qc>(x7pcol-Hnc0o=@zgHqc$CTZEn6h`&=VwAhBA${YVZ2ZJ^l>Y z&?M;_eAQ0)os%_mM0zYTeC00&*vw zVyY$p;V_yqCjc3?6Yp)o$O=b9B0%_Ybg@YZh`Wea5{!{*CciNRkfsK$F$W{h<0;=# zjBpuEJI4VL+lkNarNNG|nCJPb6Gr|_q=J8z16#terJTdhbCjvPv=uLi)B6ON{dVH;y>wu@ig^q3n3+hRIE$F^ux+Up%*-;CodRHNDn{aTEIwQg zy{*6wOwVcU?p_ZtZFb_oU3@pA#k?D3nE5+_+NQwU8m4>TGCZU*g{~2vf~CX@+JUZN zyfjEikMzOpy3Na2+|Y8*yLc zvAjFd(bI}#mbdbPe#&!`HX^ed`BTNMCeH4SRo=eLGR2(1}^ljT%>?>r6UI!Al*HdgA}pQ zJ0-{v2E9vy6kB!V21hzFgzCtav2>(>{0&YL86dyKMIr^{%N;6YfPCke3Mn98?kq(H z$alI*kpl9+Bu)hIEKyz-k*&W^fc~XGFRLY&aZ^GsqNleEY|K-n{Sr{&;V` zpIvcDoj>0?(Q2_+@`C{`g4cfY0Xdk*>W?45%cz$ley`>DMJA0mom5FV%mw4&A2vPi)ISjQ5KUKiorKU33>z=KZ~Og0du} zp*Q!Oj|*!LWk)dC9Lz@#nf!sx#S9%X`ExmmxvbaZH|6G}uh-;2xjDJK*JQ9OYdUxC z$eq|2c4$_tK@|3rnYRNi)y1<#VLX}X2;BDnm{-0 zK`*hq1|~tYLV>LODyItQvOP!;12yn06`ik;CGtG3D1mO-f{5s;g=c|QsgSI^H4Z`S zjvtN!(N%1^8{KoO5|x_3rV~hVss&W4o=vwS38x^%uxSBZ#3@KMu+81*qFZgHw0yQX zfd(CF4yDaxo7>T#Q*8xWh;0_opi9jG+IqI43k|weJEaw}6(SmOsCJ;uW-B_;h*Qm? zv@lx{Mizn9tJbA{lm9?^wt6Y2>+Q z8cmKnX!6-1lM|;Kn2~0aMLi}P(k7Yd=G(-_{1~Ef@hy)vwlO?nvdwbYEoyU;Y9-;L-#5KEOv6p^fD9s|(Le-Gs?`pF$=ldaE7B&(TH0CV{dpnP9H8AGe> zeKmww%ZvrEgkQ?aE&5XmT5a>MA;fBCJ{`z2uHdrV(qu~8U|hkqxFpadfN5Uq_Zdu5Rl@pW6HziREF20@2AlbjUY!C5}35{&J!Vhg5V54_$Jz5m;P&U01r% zANE}0bTzY}sDFiVZEEaGSg?}r-)>yX$6w*D{UlpZ6D{PJ_V1Xur!z5^=F4ioMf%xw z1B5NNEo$YM867T~Kk;NM4%c4FvgPjQ3OHunI6S$;rz5>;?j=0A%x6vgQ)aw#baVKN vmwubIZ+H0oe_Iy*xMOH__Nf*7E==uvqik_1Giee2jah=eI_|jl`JMj*ZcOVB diff --git a/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled.expected.png deleted file mode 100644 index cb4466a21f9200f05c912322df2e749d27c501e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6192 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 diff --git a/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_10px_Stroke_PenLineJoin.expected.png b/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_10px_Stroke_PenLineJoin.expected.png deleted file mode 100644 index d908a572cbf8b6e42961456aa871beefe1024c3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3942 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 F`3HG3#Bu-t diff --git a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png deleted file mode 100644 index 24239d5799ab3308d44bf2ab283758dc0202c9b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggiQCh~F{C2y?d6Sv%?<)A2iyM?yPcbPh2!_C+c#Ot_<%YX7!CwopH zT&&Nl(zxO3{rvlz4{$d+2yn2B5<@o(TC%sVM%xNb!1@J z*w6hZk(GggiPzJ`F{C2y?bVIE4Gugk2iyNuvng7}DIQ8!+sU@)6BAGi1H+9ghSBRH zZv>hZoMV!=l|Le$Xukg4E%rtQ0S=~7Vu*%8!I^2VM%xNb!1@J z*w6hZk(GggNzl{9F{C2y?Nvj*!v;JojyM1R-+XC9L84C6lv6&%@(-H0ftnZ?9t2#^ zxw*MuQO<*TtZ_Ae9rpbP0l+XkKY#Dbw diff --git a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png b/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png deleted file mode 100644 index d1c13a9e57f842dc1c881f387fe80db1d00510c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggNzl{9F{C2y?Nvj*!v;JojyM1R-+XC9L84C6lv6&%@(-H0ftnZ?9t2#^ zxw*MuQO<*TtZ_Ae9rpbP0l+XkKY#Dbw