From 1b653d2b13f9294f2b495b3af010387094a1131a Mon Sep 17 00:00:00 2001 From: Christian Tischer Date: Wed, 10 Jul 2024 14:38:38 +0200 Subject: [PATCH] Fixes #1174 --- .../ConfigureImageRenderingCommand.java | 34 +--- .../embl/mobie/lib/bdv/ScreenShotMaker.java | 2 +- .../embl/mobie/ui/UserInterfaceHelper.java | 145 ++++++++++-------- src/main/resources/color.png | Bin 0 -> 432 bytes src/main/resources/color_19.png | Bin 725 -> 0 bytes src/main/resources/contrast.png | Bin 0 -> 18425 bytes src/main/resources/contrast_19.png | Bin 489 -> 0 bytes src/main/resources/contrast_20.png | Bin 436 -> 0 bytes src/main/resources/contrast_24.png | Bin 499 -> 0 bytes src/main/resources/contrast_30.png | Bin 413 -> 0 bytes src/main/resources/delete.png | Bin 0 -> 11813 bytes src/main/resources/delete_19.png | Bin 300 -> 0 bytes src/main/resources/focus.png | Bin 0 -> 11745 bytes src/main/resources/focus_19.png | Bin 456 -> 0 bytes src/main/resources/settings.png | Bin 0 -> 15715 bytes src/main/resources/settings_19.png | Bin 518 -> 0 bytes 16 files changed, 86 insertions(+), 95 deletions(-) create mode 100644 src/main/resources/color.png delete mode 100644 src/main/resources/color_19.png create mode 100644 src/main/resources/contrast.png delete mode 100644 src/main/resources/contrast_19.png delete mode 100644 src/main/resources/contrast_20.png delete mode 100644 src/main/resources/contrast_24.png delete mode 100644 src/main/resources/contrast_30.png create mode 100644 src/main/resources/delete.png delete mode 100644 src/main/resources/delete_19.png create mode 100644 src/main/resources/focus.png delete mode 100644 src/main/resources/focus_19.png create mode 100644 src/main/resources/settings.png delete mode 100644 src/main/resources/settings_19.png diff --git a/src/main/java/org/embl/mobie/command/context/ConfigureImageRenderingCommand.java b/src/main/java/org/embl/mobie/command/context/ConfigureImageRenderingCommand.java index 02640c728..b9b7526d3 100644 --- a/src/main/java/org/embl/mobie/command/context/ConfigureImageRenderingCommand.java +++ b/src/main/java/org/embl/mobie/command/context/ConfigureImageRenderingCommand.java @@ -31,11 +31,9 @@ import bdv.util.BdvHandle; import bdv.viewer.SourceAndConverter; import org.embl.mobie.command.CommandConstants; -import org.embl.mobie.lib.bdv.blend.BlendingMode; import org.embl.mobie.lib.volume.ImageVolumeViewer; import org.scijava.Initializable; import org.scijava.command.DynamicCommand; -import org.scijava.module.MutableModuleItem; import org.scijava.plugin.Parameter; import org.scijava.plugin.Plugin; import sc.fiji.bdvpg.scijava.command.BdvPlaygroundActionCommand; @@ -50,10 +48,8 @@ public class ConfigureImageRenderingCommand extends DynamicCommand implements Bd { static { net.imagej.patcher.LegacyInjector.preinit(); } - protected static ISourceAndConverterService sourceAndConverterService = SourceAndConverterServices.getSourceAndConverterService(); - @Parameter - protected BdvHandle bdvh; + protected BdvHandle bdvHandle; @Parameter protected SourceAndConverter< ? >[] sourceAndConverters; @@ -61,9 +57,6 @@ public class ConfigureImageRenderingCommand extends DynamicCommand implements Bd @Parameter protected ImageVolumeViewer volumeViewer; - @Parameter( label = "Blending mode", choices = { BlendingMode.SUM, BlendingMode.ALPHA }, persist = false ) - String blendingMode = BlendingMode.SUM; - @Parameter ( label = "Volume rendering", choices = { AUTO, USE_BELOW_RESOLUTION } ) public String volumeRenderingMode = AUTO; @@ -73,40 +66,15 @@ public class ConfigureImageRenderingCommand extends DynamicCommand implements Bd @Override public void initialize() { - initBlendingModeItem(); - } - - private void initBlendingModeItem() - { - final MutableModuleItem< String > blendingModeItem = getInfo().getMutableInput("blendingMode", String.class ); - for ( SourceAndConverter sourceAndConverter : sourceAndConverters ) - { - final BlendingMode blendingMode = ( BlendingMode ) sourceAndConverterService.getMetadata( sourceAndConverter, BlendingMode.class.getName() ); - final String toString = blendingMode.toString(); - blendingModeItem.setValue( this, toString ); - return; - } } @Override public void run() { - updateBlendingMode(); - updateVolumeRendering(); } - private void updateBlendingMode() - { - for ( SourceAndConverter< ? > sourceAndConverter : sourceAndConverters ) - { - final BlendingMode blendingMode = BlendingMode.valueOf( this.blendingMode ); - SourceAndConverterServices.getSourceAndConverterService().setMetadata( sourceAndConverter, BlendingMode.class.getName(), blendingMode ); - } - bdvh.getViewerPanel().requestRepaint(); - } - private void updateVolumeRendering() { if ( volumeViewer == null ) return; diff --git a/src/main/java/org/embl/mobie/lib/bdv/ScreenShotMaker.java b/src/main/java/org/embl/mobie/lib/bdv/ScreenShotMaker.java index 90acfccf6..5ce753fc0 100644 --- a/src/main/java/org/embl/mobie/lib/bdv/ScreenShotMaker.java +++ b/src/main/java/org/embl/mobie/lib/bdv/ScreenShotMaker.java @@ -153,7 +153,7 @@ public void run( List< SourceAndConverter< ? > > sacs, double targetVoxelSpacing screenshotDimensions, blockSize ); - IJ.log( ThreadHelper.getNumIoThreads() + " threads working on blocks of " + Arrays.toString( blockSize ) ); + // IJ.log( ThreadHelper.getNumIoThreads() + " threads working on blocks of " + Arrays.toString( blockSize ) ); final long currentTimeMillis = System.currentTimeMillis(); for ( SourceAndConverter< ? > sac : sacs ) { diff --git a/src/main/java/org/embl/mobie/ui/UserInterfaceHelper.java b/src/main/java/org/embl/mobie/ui/UserInterfaceHelper.java index 59331a1c7..d273c370e 100644 --- a/src/main/java/org/embl/mobie/ui/UserInterfaceHelper.java +++ b/src/main/java/org/embl/mobie/ui/UserInterfaceHelper.java @@ -45,6 +45,7 @@ import org.embl.mobie.io.util.IOHelper; import org.embl.mobie.MoBIE; import org.embl.mobie.lib.bdv.AutoContrastAdjuster; +import org.embl.mobie.lib.bdv.blend.BlendingMode; import org.embl.mobie.lib.io.FileLocation; import org.embl.mobie.lib.MoBIEInfo; import org.embl.mobie.lib.Services; @@ -71,6 +72,8 @@ import org.embl.mobie.lib.transform.viewer.ViewerTransform; import org.embl.mobie.lib.volume.ImageVolumeViewer; import org.embl.mobie.lib.volume.SegmentVolumeViewer; +import org.jetbrains.annotations.NotNull; +import org.scijava.plugin.Parameter; import sc.fiji.bdvpg.services.ISourceAndConverterService; import sc.fiji.bdvpg.services.SourceAndConverterServices; import sc.fiji.bdvpg.sourceandconverter.display.ColorChanger; @@ -458,37 +461,13 @@ public static JFrame showOpacityAndContrastLimitsDialog( BdvHandle bdvHandle, boolean addContrastLimitUI ) { + ISourceAndConverterService service = SourceAndConverterServices.getSourceAndConverterService(); + JFrame frame = new JFrame( name ); frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); JPanel panel = new JPanel(); panel.setLayout( new BoxLayout( panel, BoxLayout.PAGE_AXIS ) ); - ISourceAndConverterService service = SourceAndConverterServices.getSourceAndConverterService(); - - // Opacity Slider - // - // TODO: This cast requires that the sourceAndConverter implements - // an OpacityAdjuster; how to do this more cleanly? - // Maybe we should rather operate on the coloring model that is - // wrapped in the converter? - final double current = ( ( OpacityAdjuster ) sacs.get( 0 ).getConverter()).getOpacity(); - - final BoundedValueDouble selection = - new BoundedValueDouble( - 0.0, - 1.0, - current ); - - final SliderPanelDouble opacitySlider = new SliderPanelDouble( "Opacity", selection, 0.05 ); - opacitySlider.setNumColummns( 3 ); - opacitySlider.setDecimalFormat( "#.##" ); - - final OpacityUpdateListener opacityUpdateListener = - new OpacityUpdateListener( selection, opacitySlider, sacs, bdvHandle ); - - selection.setUpdateListener( opacityUpdateListener ); - panel.add( opacitySlider ); - if ( addContrastLimitUI ) { // Contrast Limits @@ -547,6 +526,7 @@ public static JFrame showOpacityAndContrastLimitsDialog( panel.add( minSlider ); panel.add( maxSlider ); + JButton autoButton = new JButton("Auto Contrast"); autoButton.addActionListener( e -> { @@ -555,7 +535,9 @@ public static JFrame showOpacityAndContrastLimitsDialog( min.setCurrentValue( minMax[ 0 ] ); max.setCurrentValue( minMax[ 1 ] ); }); - panel.add( autoButton ); + JPanel autoPanel = SwingHelper.horizontalLayoutPanel(); + autoPanel.add( autoButton ); + panel.add( autoPanel ); boolean isInvert = false; for ( Converter< ?, ARGBType > converter : converters ) @@ -580,9 +562,56 @@ public static JFrame showOpacityAndContrastLimitsDialog( } bdvHandle.getViewerPanel().requestRepaint(); } ); - panel.add( invertCheckBox ); + JPanel invertPanel = SwingHelper.horizontalLayoutPanel(); + invertPanel.add( invertCheckBox ); + panel.add( invertPanel ); + panel.add( new JLabel("") ); // create some Luft } + // Blending mode + JPanel blendingPanel = SwingHelper.horizontalLayoutPanel(); + blendingPanel.add( new JLabel("Blending ") ); + JComboBox< BlendingMode > blendingModeComboBox = new JComboBox<>( + new BlendingMode[]{ BlendingMode.Sum, BlendingMode.Alpha } ); + BlendingMode currentBlendingMode = ( BlendingMode ) service.getMetadata( sacs.get( 0 ), BlendingMode.class.getName() ); + blendingModeComboBox.setSelectedItem( currentBlendingMode ); + blendingModeComboBox.addActionListener( e -> + { + for ( SourceAndConverter< ? > sourceAndConverter : sacs ) + { + service.setMetadata( sourceAndConverter, + BlendingMode.class.getName(), + blendingModeComboBox.getSelectedItem() ); + } + bdvHandle.getViewerPanel().requestRepaint(); + } ); + blendingPanel.add( blendingModeComboBox ); + panel.add( blendingPanel ); + + // Opacity Slider + // + // TODO: This cast requires that the sourceAndConverter implements + // an OpacityAdjuster; how to do this more cleanly? + // Maybe we should rather operate on the coloring model that is + // wrapped in the converter? + final double current = ( ( OpacityAdjuster ) sacs.get( 0 ).getConverter()).getOpacity(); + + final BoundedValueDouble selection = + new BoundedValueDouble( + 0.0, + 1.0, + current ); + + final SliderPanelDouble opacitySlider = new SliderPanelDouble( "Opacity", selection, 0.05 ); + opacitySlider.setNumColummns( 3 ); + opacitySlider.setDecimalFormat( "#.##" ); + + final OpacityUpdateListener opacityUpdateListener = + new OpacityUpdateListener( selection, opacitySlider, sacs, bdvHandle ); + + selection.setUpdateListener( opacityUpdateListener ); + panel.add( opacitySlider ); + //Display the window. frame.setContentPane( panel ); frame.setBounds( MouseInfo.getPointerInfo().getLocation().x, @@ -604,7 +633,7 @@ public JPanel createRegionDisplaySettingsPanel( RegionDisplay display ) // Buttons panel.add( space() ); panel.add( createFocusButton( display, display.sliceViewer.getBdvHandle(), sourceAndConverters.stream().map( sac -> sac.getSpimSource() ).collect( Collectors.toList() ) ) ); - panel.add( createOpacityAndContrastLimitsButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), false ) ); + panel.add( createContrastButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), false ) ); panel.add( createButtonPlaceholder() ); // color panel.add( createLabelRenderingSettingsButton( sourceAndConverters ) ); // special settings panel.add( createRemoveButton( display ) ); @@ -625,7 +654,7 @@ public JPanel createSpotDisplaySettingsPanel( SpotDisplay display ) // Buttons panel.add( space() ); panel.add( createFocusButton( display, display.sliceViewer.getBdvHandle(), sourceAndConverters.stream().map( sac -> sac.getSpimSource() ).collect( Collectors.toList() ) ) ); - panel.add( createOpacityAndContrastLimitsButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), false ) ); + panel.add( createContrastButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), false ) ); panel.add( createButtonPlaceholder() ); // color panel.add( createSpotSettingsButton( sourceAndConverters ) ); // special settings panel.add( createRemoveButton( display ) ); @@ -712,7 +741,7 @@ public JPanel createImageDisplaySettingsPanel( ImageDisplay< ? > display ) // Buttons panel.add( space() ); panel.add( createFocusButton( display, display.sliceViewer.getBdvHandle(), sourceAndConverters.stream().map( sac -> sac.getSpimSource() ).collect( Collectors.toList() ) ) ); - panel.add( createOpacityAndContrastLimitsButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), true ) ); + panel.add( createContrastButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), true ) ); panel.add( createColorButton( panel, sourceAndConverters, display.sliceViewer.getBdvHandle() ) ); //panel.add( createImageDisplayBrightnessButton( display ) ); panel.add( createImageRenderingSettingsButton( sourceAndConverters, display.imageVolumeViewer ) ); @@ -758,7 +787,7 @@ public JPanel createSegmentationDisplaySettingsPanel( SegmentationDisplay displa panel.add( space() ); panel.add( createFocusButton( display, display.sliceViewer.getBdvHandle(), sourceAndConverters.stream().map( sac -> sac.getSpimSource() ).collect( Collectors.toList() ) ) ); - panel.add( createOpacityAndContrastLimitsButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), false ) ); + panel.add( createContrastButton( sourceAndConverters, display.getName(), display.sliceViewer.getBdvHandle(), false ) ); panel.add( createButtonPlaceholder() ); panel.add( createSegmentRenderingSettingsButton( sourceAndConverters, display.segmentVolumeViewer ) ); panel.add( createRemoveButton( display ) ); @@ -787,10 +816,7 @@ public JPanel createSegmentationDisplaySettingsPanel( SegmentationDisplay displa private JButton createImageRenderingSettingsButton( List< ? extends SourceAndConverter< ? > > sourceAndConverters, ImageVolumeViewer imageVolumeViewer ) { - final URL resource = UserInterfaceHelper.class.getResource( "/settings_19.png" ); - final ImageIcon imageIcon = new ImageIcon( resource ); - JButton button = new JButton( imageIcon ); - button.setPreferredSize( PREFERRED_BUTTON_SIZE ); + JButton button = getIconButton( "settings.png" ); button.addActionListener( e -> { SwingUtilities.invokeLater( () -> @@ -807,7 +833,7 @@ private JButton createImageRenderingSettingsButton( List< ? extends SourceAndCon private JButton createLabelRenderingSettingsButton( List< SourceAndConverter< ? > > sourceAndConverters ) { - JButton button = new JButton( "S" ); + JButton button = getIconButton( "settings.png" ); button.setPreferredSize( PREFERRED_BUTTON_SIZE ); button.addActionListener( e -> Services.commandService.run( ConfigureLabelRenderingCommand.class, true, "sourceAndConverters", sourceAndConverters.toArray( new SourceAndConverter[ 0 ] ) ) ); return button; @@ -815,7 +841,7 @@ private JButton createLabelRenderingSettingsButton( List< SourceAndConverter< ? private JButton createSegmentRenderingSettingsButton( List< SourceAndConverter< ? > > sourceAndConverters, SegmentVolumeViewer< ? > segmentVolumeViewer ) { - JButton button = new JButton( "S" ); + JButton button = getIconButton( "settings.png" ); button.setPreferredSize( PREFERRED_BUTTON_SIZE ); button.addActionListener( e -> Services.commandService.run( ConfigureSegmentRenderingCommand.class, true, "sourceAndConverters", sourceAndConverters.toArray( new SourceAndConverter[ 0 ] ), "volumeViewer", segmentVolumeViewer ) ); return button; @@ -1225,11 +1251,8 @@ public static JButton createFocusButton( AbstractDisplay< ? > sourceDisplay, BdvHandle bdvHandle, List< Source< ? > > sources ) { - final URL resource = UserInterfaceHelper.class.getResource( "/focus_19.png" ); - final ImageIcon imageIcon = new ImageIcon( resource ); - JButton button = new JButton( imageIcon ); + JButton button = getIconButton( "focus.png" ); button.setToolTipText( "Show whole dataset" ); - button.setPreferredSize( PREFERRED_BUTTON_SIZE ); button.addActionListener( e -> { @@ -1254,9 +1277,8 @@ public static JButton createFocusButton( AbstractDisplay< ? > sourceDisplay, public static JButton createImageDisplayBrightnessButton( ImageDisplay< ? > imageDisplay ) { - JButton button = new JButton( "B" ); + JButton button = getIconButton( "contrast.png" ); button.setToolTipText( "Change brightness/contrast" ); - button.setPreferredSize( PREFERRED_BUTTON_SIZE ); button.addActionListener( e -> { @@ -1270,17 +1292,14 @@ public static JButton createImageDisplayBrightnessButton( ImageDisplay< ? > imag return button; } - public static JButton createOpacityAndContrastLimitsButton( + public static JButton createContrastButton( List< ? extends SourceAndConverter< ? > > sourceAndConverters, String name, BdvHandle bdvHandle, boolean addContrastLimitUI ) { - final URL resource = UserInterfaceHelper.class.getResource( "/contrast_19.png" ); - final ImageIcon imageIcon = new ImageIcon( resource ); - JButton button = new JButton( imageIcon ); + JButton button = getIconButton( "contrast.png" ); button.setToolTipText( "Change opacity and contrast limits" ); - button.setPreferredSize( PREFERRED_BUTTON_SIZE ); button.addActionListener( e -> { @@ -1296,16 +1315,23 @@ public static JButton createOpacityAndContrastLimitsButton( return button; } - private static JButton createColorButton( JPanel parentPanel, List< ? extends SourceAndConverter< ? > > sourceAndConverters, BdvHandle bdvHandle ) + @NotNull + private static JButton getIconButton( final String iconResource ) { - final URL resource = UserInterfaceHelper.class.getResource( "/color_19.png" ); - final ImageIcon imageIcon = new ImageIcon( resource ); - JButton colorButton = new JButton( imageIcon ); - colorButton.setToolTipText( "Change color" ); + final URL resource = UserInterfaceHelper.class.getResource( "/" + iconResource ); + Image scaledInstance = new ImageIcon( resource ).getImage().getScaledInstance( 19, 19, Image.SCALE_SMOOTH ); + ImageIcon imageIcon = new ImageIcon( scaledInstance ); + JButton button = new JButton( imageIcon ); + button.setPreferredSize( PREFERRED_BUTTON_SIZE); + return button; + } - colorButton.setPreferredSize( PREFERRED_BUTTON_SIZE); + private static JButton createColorButton( JPanel parentPanel, List< ? extends SourceAndConverter< ? > > sourceAndConverters, BdvHandle bdvHandle ) + { + JButton button = getIconButton( "color.png" ); + button.setToolTipText( "Change color" ); - colorButton.addActionListener( e -> + button.addActionListener( e -> { Color color = JColorChooser.showDialog( null, "", null ); if ( color == null ) return; @@ -1320,7 +1346,7 @@ private static JButton createColorButton( JPanel parentPanel, List< ? extends So bdvHandle.getViewerPanel().requestRepaint(); } ); - return colorButton; + return button; } private void setPanelColor( JPanel panel, ARGBType argbType ) @@ -1345,11 +1371,8 @@ private void setPanelColor( JPanel panel, String colorString ) private JButton createRemoveButton( Display display ) { - final URL resource = UserInterfaceHelper.class.getResource( "/delete_19.png" ); - final ImageIcon imageIcon = new ImageIcon( resource ); - JButton button = new JButton( imageIcon ); + JButton button = getIconButton( "delete.png" ); button.setToolTipText( "Remove dataset" ); - button.setPreferredSize( PREFERRED_BUTTON_SIZE ); button.addActionListener( e -> { diff --git a/src/main/resources/color.png b/src/main/resources/color.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6e42b7ad301cf83dcb220a3bea8f5075ba74f1 GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^DImZ2tqee@%2H(XkBY0o3cAj`N73A~52CVG8nV$J3XTX-c; zKVn0|!6vYYVIQ_xZ%BBVey}NZ*XJ8A{WgXB9n5MjJz=%w(HW1T)fVhdYd<`~8QQ7CM)o5-5Y5hvIFsZT1+nm4^i-apw? z`t*UOt&FP;dWxA=M|v=dt>KNhI&;Sl;nk5T{6Nn`+ouQ#G0dO4 W`{CZ!QkoY=d#Wzp$P!p0>p#> literal 0 HcmV?d00001 diff --git a/src/main/resources/color_19.png b/src/main/resources/color_19.png deleted file mode 100644 index 16256188cb59a945a2a6ee45517f1b5a1e355325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)6@zfrGnHE{Sr}_1XKUXM64W;dwqq^#4xLzekw_PIv;yiUT#-Q)?S(ub)EE zb0mcmn9X_EJN!-7xNa&flgrh+07Mn?AuqtZ7IcuujIKl(+W3h)#WApk$+U~?=?Uz`g!UCG3D z7!jXKlKnrisdmIKRKi^xbcTh_7w22JL47d4g=ma?Rkld@N(R;y2{$s8IOx#WnjAA*tsLLWP0o%q*!Jz>=9^(_!^HUzs+TV-<7ZDjg$*wn6Foz|>X?aqu>G zVZpzJ@$@S&Ry7mKG48^TYm0_c*|;&Jh0FvQKYLeDk}?Hwl`Se>`pGj!YK%sq>3O65 zP517MHL{1NQ|IhwB1O4lq$NZcf{-Qb@*trENnB{NFF3ydo@Q7>X9mjJ00000NkvXX Hu0mjf4C-0L diff --git a/src/main/resources/contrast.png b/src/main/resources/contrast.png new file mode 100644 index 0000000000000000000000000000000000000000..367ca9bc2f370897f070b2b30c0e9cdf91b9ad47 GIT binary patch literal 18425 zcmeIa_g9l!(>I<*NW=gE1*P{QAXw-v(mMzUC@m@o(nJtJS`y?4hynsqrC5*-QKYxa zN)tf=X#zoGqYKg`z<1}|=Xuw2?)M+~{_w7qwcuKr%*>uWd#>3tpS=@otc-Dc`1ZhH zFr2B0fh`P%0RJLj7&Q3vJ8bX|_yZ5NHP(Ywy%YEegNeXQ4NlmHxy|QYW034>cMDWq zWY5RP-r`tExqmd+)68*$Pfun*`PJ96NgoI|(rqJ6CG@^cQ}nv$`1IrBKY#4K+u6EW zx#hc&_j+?#Q0HZY+V{EI_3-(QFIsJ+$iC6p+Wgsy)yab3wb88t8*VtB^Y0JFm{#!O zntYrg0cG&_ryoX8rC{R8%nwSU5Ke#!dp!Rk2H&m!{l)+L?*9jNq3aW^h&sf{KUw@? ztV+DZT~$^kO(ox`7F-rfn4HqFr9SA^>MtH*(9SM$Lvv~P&xS5d5h|dVLIvdA%4A21 zF02}+h-_zdL%3BW^Umz{#FeGrB-kMMU?^P6r>n+LbOUc`@;ZzS$%a_0N)8>;{k9OB zEYgX_?XobMbauGI*f;hs_57hyVskL@1U>LWiCD#fY0O)gJW?Jf&mwhHh8QrKvL1b5ZgfBTxK(TB*{fzCaIGe_@Cn zHMrHv0N|BAfbkCpPRcZPBzfBhDuWKKo?ZMtlp{`D*(+3$%u3!;mhon<3cqPeK$5dA zXAWQIrgm)jB79-Out^SirLfSZAPk}%z5w4rHt;u?S99DbEH!_L?}v%FbbbviK>4A! zn^vEw5aV!&K?a`MhzuR<@FxqdNnQuzf-peOet%KK05?^5lLS|RedH~yzsq)ssi?rmztEO_M2maK zx#u6ItQP_E6h4c8v+DKL=iuo4>`R_+C%Gw)u_HdQyu%&(mZ4QU28F(0X0BMetmQ}$ zn`!f?IVZ)p10GW|=BPJfL^cjrr}?jeCtBqmcqb69g0XZS_TX|MmDLB=X5SL@5lhK| zHi3~7?&n}U^uf&e>Fswbv7~Jo)ZU%zpnQEXzzIu636<9c>+o)<5V^5K29PosqD!3d z=b4c8(CW3cDa+#qBI1beFt6b)ZVw4(TXE)`+CE!Z9-5qAJgxAh$<6I)kpt?nSfE^> zgSI2V+W^|nWbv1HOV%i*byok_=F2H|LpW6t^R6V>F>%@AorgJ76@AC_z^x}!93#A0 zMKXQ#TNn#VB3EE|tO-v$#1XDsz`EvRPdzo41W|r+`@}>L1Ner0 zYKEHJGw*)fB%@)jcar?QLTH@C=8*&RR?Ke$8W+uj)|UV7qp6sZ2#}6O759XTQMCfI z9Oh;d?pkqCE@DS!Vx&*;J8K_0F4m6*G-HKjI=qM^)Ea&do|AGPYk^9tmg>>by<$B> zKs^=#z7P;6g&mQOG=>)-u3SDpF>faY7jo&mcG)tVeYmzfLIYi6gFq zu@Y^9n%-Td*C39ckO3@G@eM6PexFk^yHbvo~5;! z+~21uqh*FZ-%1=Ra=EkEvYNv=w5@9&Z?_DMtu0olG-eBjIZpJYq+Z!1qw-6?PmgrR z_=qVT21>j!e8f#InmO3%oM?0zl~V;*!8ma`HR$lb{c4I|&%Q+S`pk1RJc!m?_h`N_ z7_orLvD*1`&1CmCioJS=PwNEnreuEzj{2O8lgUJ9!2J#<2(EdYs634@wzs})cB;*N^6(6TD0}_YU`ft%BgCH!*E4q2#uD5%OMvl+YddF#`?U(H#EE5UP+p6dOsw| zwUo+`eA+uI?HuxUC)`G^fc%}0C}%eI?#|Un81;Ec?@6240);@vje`v?%vd z+pjGSeMv{nDWW2#s(BI#3qUI*KTIXeRng%GdhO#kmLJ$DXrsGPX`QYp&Gl33Nqb2f zx+2FaMqXON#ui7l-mhAfY&l!a$@L(_{|}rtMbUIEPj7I*rl&J1V-7tF9&hMqn{`Yy zFQoHPHK^C3DtJ_1oevM#3LQb~`@pg3_ZaY(qcuI|gSiQQA6E8jJh4Zd^np?#W3s~R zHB`}?V9xdcnBTGLV%A2dVY<19+46V(``_*^+E#wLszH=%DNP`};v*(76B%b9{-2Y#zn&%sn_c|Onxr+*&B8rG}~ zX>=T(tDTNk-;??67glDo!z=yEL6t9?bK$km1Xj(1Ls9m~@bmu8!i(?`?pp8hvs3JI zZmoRR%2e$&eE!Tr!()`Ue2o8#9>A^DCiF1px8 z4eL!?Z7#SZ>Gb+vbqfk|`L1CP`IOW=onuCXlC2N4B+gY0^1K}V%kRo_vz?%ri^+_K zZN>7^Hzy(<@F{5pkG}}pC2WRTZJQCpf@VZz0V7++?F01+c74M}GPkL>MiP7o!6)k* zRaw#5VG(lFU}es*HucDvQeU8BRf4K-U!B2rm5TO79v|wYJu-)5)E4=$7JiVL)Gn?4HJ5sJUy_7Y7$z`+5VNM;NRYcA4dnn_*Z<2iob`lYb9alve z$EoKQGd+U88UCgFvr~$*6?1BNT~BsfJs6P*t2>>LgE?+WP%bph*}A zO-bwp&AV=PG2%rVfbo9Q+~dKeil(-9YJlk!JRhrePz|bon?L05Z0)nKiO3rf0!|X) zw>5t)f)=su_GrbBXaW?~N6h_L?j={-E1&zBG*^4^+e7HJKcCH1E8b>#{Y~k7jl8HI z9H)%`kpsjJzhbRd6(^R@-=%h?D0n~C4MVr{@-^CaO<~^L*Ld%~qdz_HS|51)0WM-p zk2I_p!6reScx0-L^-lc;i;~@BC4ZzzhJT+Du?SHHqbF0SlI@*5oPW?n5`q5dxU|UG z-|38>G~YUs#@bVc6rgBXys>GKUdJ%q5s+u%BPZ#W66 ziLZQp;U8yE$=&~}wS>NSK#eHJ7`~gOmAQrN%uXXBX=CL}crwi5&Xs z0fHncj#@sn?dMP0`Zc`VHW8Fr`yTjXdPwLT&f@K$q_fHh8a}33_z-qzQxkz3sfyMe ze4{e~&n(Kvl%Rjd%9f{nguSb3t96%>8>&vM#l`BBxT2a9K+NWU7mQH#+DWS7w|)9S z84RN;A@uwu725b}K;(pz-@BXsk}aZ3X2Gsy#dk0=o6U`ib5C}SCbClZ<9{RqL%TOT z)f}xmpmRubD9~K}j+!Dh@}LxM6E=l}D|^`is#Zo2@N zxUW(1XK?Y=T9ad+SU(2nYNT}GeOC;`0yUj3iL#?luhw;DcdaQpc1>B`x{7EUw;G-~ zh2jHiykF*>yhhClLO}9IT?Y=gr?7j8CX%F;J7-uMDmMd$9%7#9ft9$wVnI{;pxQ`l zcPYzQTH^Szfw?nPsqLdn^7hppwShGgWvY1Z+hEYX-V>pb-WQTT7L+^MMonsuTA&VX z=Hdnwpzz+SrIQAQr+~j!eh!)1lqLs%Dvz|IRYHFb{tQt#)ivc3=J&O7B4^f0JAoh# zVzkEdxv|a+$P?OIb*fGF9a_HG>%ma1g(T_N^pn$N(#HqxhT|z#%;bb~Db)JL0sva-{0a2~;Yl4bCKHqUhwf!-&r);_#5AVt2laOJ0IQ z=Fz*1mw$Ph(u9ar%&b5xtd?1)_=#-jE!jmXuRgVWJ zl{YX$F8pBp$>nw7N2e%TTkRH(@nmx#{P4@qM(Ntv2A#BFcsZP-K{S)XDM{Kr@l=?^ zk19zZV1XIU;?FhfjNBuG?V2=tEV&(Q!@?yB>5F*#sGL^cvEp{~D|MI#DWIK(R=}&# zVYsTtQUcAOw|8bcA4q)X!%Nd_EvPzXD8dFLo{sJM%fwll_GT{++gNS*nalZX=iV90 zY(}v4b3yvhc!Z{_R{}u=$bE{v%XYu+9L@4wCT{0^ZQ=WFXy9NY4D_(rntEhxRi`XO|CQ^s@=V}aRx#Xvk7@Ptu0-8G)HS|$WB?|dcJV#O! z-<{=s{*dw|H7!V<(4~7d@FQX&P(as|n{pO-!d`Qwh1EEOw0bDXpJw%)FRjaNIr+9* z0YkD`*|R|$=r2e)JovT?dY%+DP)s?GGVapV5E!2vuG>7tO-W@&4uOe)$Y$8c6Mj47 zX>~kx{`$~k(L%cLX2uBT#{C5zJcd9}79pf)2L5vRp1T}L9c!5X#;)e!sn?|&)G(LU ze)s9kN3U)|L|_5*m&fIgrKloA&6Uv|xX}2^)nbZJt>nNXdV$dPuW*<2x#;xi1*QY{ zwb&=BOus|J-Evz$YJVti*w>WKu(Ml_Miw_1d(`*=#XURfeHZ=qw*@z=jK#Hv{PrBq zeFkWz)I(3rx>mpM=zU~oC=v z5wp#IaE#I_(6qXjDzOwAH>PoCpZ2DIafx+^-WekUNE&39ke7Y8ou}_|_2>RdMU9}OD$e0Z&&PMb`lEvv62iApu>~(ly1DFq9HyBBw*sg)oH5&w#Dz z=8G+H$@bMURTo~2R3(B5i0H-))-<(#?0ExGA`pEcssBPoQK zk}^d`nQ(dClqf~JOvHLEJH%6MT+->f93!KnI4N~88ikO~N2Ampzhyy`gRXvG8GOfj z^_N5mP63}fwZfI||H?kRn}9|CsXapC>EZI2!u09~*r&Fxg2g zH?|m8HnYr2AgD7*gC3l!l3qbt!-Ca447Pkq<$ta%t z8tyTR2y>42vZO88-pR~osKkud4br+4@!n*@Pvt_m!OR1FL_KUa#QTz#U1kOY)kvq; zudA-#;&t6_$DpKbf^Zn2G5HC1{)UO{<#o-;?l2j9N$K6cAa?!t?_Z1A=ulF937hZb z23`)_i;5%Rspk_)%q@5J&k7cs-O7&SqDW!W&meO=9DJia&BsHQq-7~m&JHr4up`$1scQE0#n7c^-X0JHs>eWd*RFq_mA6zi^_$n)gca6 zsKbH34^GyQds$>2+)Za_o^m#eu8%M2#NvM>5loc}HGQ5AO2Wr;h6kj>gpqzWsZnyW zo2?3>+1tIMta_X>rRZ3UlZ|vAYAxvV7RU#zp6!)H@1`>9OkM^g1+bgqDK40FTV&9*LLMki<{|t$2pseGxOj5qL^r>q zqrXolrJ(VhDFm#ti2huv77TtVv1K&%wIYrdmuqfj678HdZ5|MB7LTDD7RK_W@Lnzz zyg@F$9mCGzH{IyxjP2U>u01mtG-^b6VJM$qx=BlZ(~e`H`w$`C>k$?P?LfyG)zcW7I@aB5;9Z z8!ing>d~dNB>$uf3k;u?M%R1ZKb?)7-w_*3)cv2;|}-wI_n(w>$x-Ux=6fKqpPnZoluc@ zz+^*AR@s%Cx_|TI{MZl7+CtU02cze%jMloOO$}%k&cz&lE~dmnaq%U`$RI%M)_A_; zMiZ4j6P|I$cUhQ2;C)S|#z|0tI*w@k2s5-t-GUVF&Akgn1bPIBb}4Vx&R+@$&G{WJ znc|CE>b7eF{!hY;3CET?XN;r1XEFE@x)y@|qr4P74BZL2=Y*mvp9rz%SKA0d*Ye7* z6SQwq8Z%|d0%;^MYN#XG!x*(kI^{f0MoS{7+8W`;gVsQf6kE@mTK65<+~vb|dNog+e335?(t#Er&jCxm@ZiMkSgEugDiJw}y6#$kc*BUWE`N50}>W?^}{L!bGC-@f>ZN>BD$uK^Gj?k{B z@4D9hnflZS-L=AZk_iFIBFIOnS!Bp>^~2IJDXMl+S7sR{-qPajgRkj~T$pZWOqsz= zf(|OE48Cb|_rpHaJC>`KXT$h%a~;YDCuxL^2Cg8podI%G$Et}mX!-os7b)iJPj=T( z6@n{{zbtTz%JHt2_*8!{b=MJkv5;U^2;38pr0||DwLC$SB_`~^ zJ5z@|6cbqAn_^1iroTFxZf0Lz7@V0IGTmIpZ1n%Zu2^0fiG-Zb}Q5 zZi8Hwl3#V@b`l6{@_i^i0tz`jl%$iA^b|%WY&`sijK5gQ5sH8h;Z2yNHlCtMuH_od z_gk|iHoxL~bG$%*xqa{3p9dd2OCY>qiaYq_?r#GWJG?EubIqfs8Wt@1F=Z77^&Ga& zKMzsa}+5P$;%^8j2>{)j5-KwtEir)P1Lu zYjT7lapLO*^{#>b>Ej zIc@3oR?X9jo`W9FCREghwfK{RVJplFzKd{FHR<{uEp#G^m2e6LK(MH z)6KA~?jjuse4y&|K^(!twR8r#$3P*I3s3dGW=BdSHKgHgKHftarne(T4!!Rcs}bW& z0KzzB(aW{22qA~`R<4mISJkb>3E$=2rZIRRWoP33eh|o_n5_O>(JxMfvQRs$S<0dh zr|dP6ZJPJD@s<%5JBAdm7D}oRUM8K~!Dl1m(|9)p3K@Dp5H|CkvQR{8*4OP=i~R^VjsD_xx@d&l`k>M&Oaw4`>iLtK!`Sv^aXL17d^$d|C? z)}wbEA@mJC^6Dyoe8WYdw5be>Pn|eXES~Zd8&(1L*MNv`bln)*`gqX=JlbW|tR^-@EdBi*e>}zr5MXY&FI+W&UbexU5sslhRWpeUewVj|~Z_x|>u?<5nh9ch5mOcmIC>-XPcW_1_+T z%5@i7fnun%mcG>-Lk4?e=8(joU3>`r@B$zyVK1r= zA^E&E;SL&)F@WrFm{`{;DT$?{N?v+f#*T7aLYe(L{ExLIcN>SSOq;{WVmL9*c&0c^ zvx}t(jh$E-yVj13)Vd#)i6m=Ml>gxb8cBrb8RgY@W=%*mv6+j5;KB}zW_z2dBy&^& zfya8oIFHOciPGUzlN62NC2w+%eZ3`7@IP39P*qr#;Kp@Ukq;t>=b#C~DNhT^w4^Lb ze^X*z@;QeKGu_!wiL-l|5{1W@K;}41yxU=EG1{~_`7YU*Yjbe{ORjuNzi>Tv@Wh=c z{ErmSR1$oVA*+ho+57gM&29h4P)oh7>g=^t2H0Rcz9G6L#+gFS~ z3Ujyq(OwRRGRgY3{}BU*L_U$(Q@y>qU5!=0w^tyizYP!=LdO5-@ee^Hj@tghu67Zw z37l`V3WRH%leF?)@Ma~WS_aAFA76v?5Ug-_Q}5lY#EIB7S8ezP3)RWzz*9v8oM{)O zA3@pJgyAnFw3AkdK#Rm~0r~VlI{eR2C8!#Km-M#M$n}!X7QbQ1{@ujfVI@s1+fFY9EIbRKH}sri;ZGw}g*_nOASg`Rsck%WtrwnBl=28fQ?37Iz#Hzwt?tPQA~P50 z#)*hVW?Pv-J4?@W33kfkNUsk2H@#JH^md*RElJcU4+TPL4U(aaui<)#I(XhTrr1XX z`|D-tt%!rLPl$@le~(EOS!LZxb0BU5+iAfYgq@WC;Q?BM0t{MJv0Ll{<<%@_!vUBU zyF53;D1A#Th1udP?d%EgLC7I>O=UiNK~J&s&47YUKK0-1Gb^N~x3xsCyCV{%o-Lk( zExAJsS<%iq3`z=24voedIizMqJj}`yR;;Z$DG_Io?Y(&0PWsa_0 zN8$|+l!p`Q98or{ZZNM z7SKY}*0$-;4!lM3?&X?U(M?Z0`rhPh8m+m}ch%#ZzqL(6s}LlOkm6DhG&W?Pp3 z&r*^vSK)PMLIGR@6C)7|djEux{4yPh^w)Qa@ur=5_ zvwyQt!7l1!56)pD<^J}rO0t~ozgK)zLi@`pzJ{Zod$lA;Gp`TWE@%4VO)MdOoJlWX z?L1dl+aI=1Ye3^62D$FhSDrt!&;Fhs#nN>Oz($T*KsZ%ol z<>qsLn#ofVYox=pyXkz)s9L57zhH{h1H+X8ooEr6=*GNwXl4inMR1R*)TEUu!X`8N zcYGhWO6)3QS zH3Wk`8r0oB_;+MwI%9o{XD=(I8qO+_zO2m=K?83zMR=UV-WwK)1bc*=55azCSrbR` zC6g@A|4}Zl+xzQ2@PTjyRX5P*->-@evL|;CwV1=*nkk0JMw=N_@^D8Xn8A+N|Me&d zeZi`8TAZx?m&q6y_D$%escB~e=9L7k2>t4jVznKo(?06y4cT!}2a#pT@>lHA)m)1E zhsTmF67e9jCjsNPCsOy$eAk8VFgMGJ=e;mUjlq+psLTmoYeeRX;|Xl+p+K@&^%mIM zf`3wmJSaz~(BwJ>B}OYnqh1_#q1j-odr>z{M20;n$tfNOZG^_+01e*cH~=d9oDt%>hVCALtpI1R?`{d zu+0C;O$?xyys&Yp$vEh%9QiAyK&naB!vXbxX%!#(`9H0afu84v9brP271PQqAelnb zs{cz_{Dyp>h1hsn?>h`b;R!kv3FA%=zh=a71msFTQb7=R{g6>Pi1K@V+WDHwsfd>F zp;n;Iz}RXAgBLk|jUp~6#z_WgASbNR#lnPkjrcrvO%Y!AKUv@a^!>kbKrt%VIxq!B zqc`-<;VxyZXE5qcyg21XGl|2XL}-<06yY#0H$IC-Tx+$|yHfKjub#fXlwkBA!tR2h z2o`=xSpF{IHv?u6ii?#9w z;zZq+4(Y37I+sIhKecwyhYg@tp`~x*!~j9;9`e2USO^3&jVH&O@Q&Ot%g4j?U1cia zGqI}$V<1ASMH>(mg`35fbfJog?A&)BE|Ei}pXolh2sT74)Vu$^AzE76nNkq}1?t_0 zIjdk-Rr%O5i5{@cI?$!TFZ&`9L6lH{@Qg(Z7~}Wc(rmNVK7J* zPjM!%GPk)OKMI>{?|*Rx(<0UGkMo=I8*67S_IW(mGL5Y`X&Z|v@q@fH&VP0)yVVb_ zCCS#;wRm zvc8&$fjwn}0JDYC-l z#j0yoJM|9c2>wHRN^Ckn7oA}acTGlIhzr*8bAlhd#Vwv>#OyyFr+q7vWW*-5Hz{$X# zxR@BwbcnSEb<(-D@XqhtzMWTLw6iSI)lbq6hW*WWTc z^W+L*&2jxqLf*4Vl0O@wYI<|khmh`1vf z2g#9G^J~MX1^DD}?fZ*!+B6zl>}5PXmEpeBl>WIPHY5ggFH+2LOO_{RS~#8HVXr6$ zoVzFMM6XT+neHf)n_be<)$pBZgu}`r)=jn(%5cSqPJox3s9o6}>yh2muK4*$(LGNQ zF^Q$yBU@_H+kT_+5g8`(U(}&*RgIU_C3i1EZU3$&&F4TyRw@(ff+N+w-&vnz+AWVK zndu&QW$G#p%Ke8Z_k74NWDw`^YP=&u@CTN`qg^VX8YZYze;sBXgGtvDspqrV6T10c z9uyj;kjGTU{ij-6QEvy21nahvA`}QUw0TomZmwZFe!C6B>jimD%0XG(= z{fNo;BYu`#|CCBvnHlf))jTJDOpKGltgq==(9iFpv?8}ImFezv8E$7Bccf=Ac5!cW z(U}!D371hp74X+AC)ja@P*2qpMZ}^&cUqF-yCa*@h=|a)rr!(-?Gfr9$+qW3+tK30 zbMbGg>%emZy-3$0yoFH#Ya)*v zag9>D$DjwT8l@{B%os6Cn>Hqf5Jmtlun2oy1D#{P@>^1Lm|jnIrh$z<>V`O=IPlKb z)pZZWU2St(8?JU#wFEHfhOC3GE3}HyQV3Pbkf@pIOculr{Utaq(EBNZ5(lcjr$I&c zQZ8~->I8G)U*`t(+Pw?4Rq_<55^7=>cw$NNTPa}Hba%UaPC?aP#x6025HIDPFIh3w zc0iJXD-+%o4!Ib(*Lh3xbZp5b0d?tJm(>r+QJR%(K(k2^W`+2`7p{iAS+rN%p)f_w z_a8EE{ih_|ruDH42nChqR&r?v$;}tPZAqlkRlUeDOt?&`VqbC#S{Q5>(hLuno-(8{+j1~(8LJaMZzos}VAJi9O~ulQuFP6Ox!n0L zBTx2YhC?5C${duG+_i#2;~v~kG!zk{r1}tAe!N}^W1-=VtD^TdKzH&fMWDwrCKX0= zKEaEYv^j&r@V$93Q71eum=~7ywXXf)6FJaXL0Vl2dT4S3LnjnI<4ZvXU!2Q>G$8-h zg2_MGaY*UffFf~Zk>u_ibgBFVBro_Y?I6B05A;_=*27G82T{>5zt5;{31T$ulyvxw zjFab<$6xIIzgs_Lr`!}n=-)Eo&S6zq4(FC5oaG;6#Z1eFA6g#5r=+4Ewyt9eD^Y623llI=tVW{{# zd;gFL*B)Wg-Hd2M`6WygQ`7|-si`&Ac>WW1LCfx#xqggfh#2B4mrNr%oxk>}_R6#A zG{k`u!^2p zUOXWiWmXOMG^%u|Zc+Fd;4bRtcxd568tFEdil5Btw>0;|m~=O!3n3#uA2VV_s{2w< ze1X4rV&2py?Tnbj?rX_pT29NsK}Qn=-iOc$UHJA)fw~e~lR#QSUE6xAwkD~nw_NQu zvz6N>R+(l<^Z;b!bBhH~|Ftdl*t#Fv zXXCt!J}y>|=(>U<#g}7dY*5QmoTX^GVCm5z5>5@u_T{ET0TM$%;*Qza&)N0eA%HLB z%s%*6{gcygyR&=Avw5;RtV{VmvYX%YegeX0bX^{`vi+$u_NZkE&Pp`>V9~ODpHq8= z>sYpL2i#b5V364`)-`X<9f+*NpXv}x;iY&hi&XzeFaOxKUcb1bT?;Z;%d4rF_m2 z_gjpMVZZ4lwxxYkrwm!i_hL#~OkiqQ%*s-Wu@uy zzE8p6f8+xM(E3~P)1UaMMIqWM<=ZNUj zSqi-{aaDM)F4m=M_s@3CzNJ@CeJTh)kpM(N=hy7(_ChYeGcF(ckRcNNp|tLuhwSE* zL6lmco)_KI1QiLeNdVCP!9Hx~?H>&7)dw=i=j2q9kIz~|w~#Y{-tGgij+0^&c?J2Z zuFd>THJba{6l6DxllsP>`8Iv25V3w4Cg$t%jYU64noGw%u#F9@sJ6Rkw)69{Fvp0v zm@+<|30u)iZ~pauOW0=Z=6Yv<4gIVkz^vR8LO67b$J)vw^Z_j7z@CD`Raki^U2WG_ zviNbbw`cKKYM1SD@~vonT3puyv6o`~fNcf2cl~Sdo*Xm=#w^y59y4D=j%HR z*F4ENm~;z(8KeKW`emF2N}9;x>%7^!G3+~m@0Z=|Xe(GqZZQ5$kbRsO1n_4mzVyf+ zIsjT0mySO*B7`be|Cni?lS=Yq_+EVD{b9@Q&A2o`sp)*NRS?*7kN!zLH!G|-_;wc^ zurem?BTm(pC4kHVz?^RRZ0STH)QY2y>7Q2PqYAnY83EwV;{3-AIMwu0@r*palLMlkWiRN==OY>qvR*Zo+)(4KdC z$Oh~>`I5@Els9QToGq5Z0_-9Gg04rO89LgeiU@A9Io5=6zP+UNozJz?Zh4*e#sDSi zPqTqnBH0&AWYxZ^nyQLh zx&n4YtK@YHhR-lgXLI%#!E8r|GBk@A5g}Nj%mAXyMsMHv%Gr~&aN^H3i{l?_q82Y* zht&!J)N=$%x%Xm(L-LC@^^u|`Gn5OM-N60qj_3SbcW23-uBCjZ-?~Ak5B|6!d9q74 zOwDSb`SJ7VpJuASmY-r@+~wTr*&VZpX7~qujIR3ODQ48A>rxm{u98LFE*kpZ(6@KH zITk`&Qwx#Y57r(G68g+`rbW&?_=J3`?4sIq2AoC!z`GlhMQ3y8Ng-(NoxPJi&=#fG zCG{;KJ(aW}67}fJmCt3<%_lj;QewgUaLpaQJr=s-(9=SiQ9YPnY2tl-e=Qsgh!v&U z>sjYd^%n-spGLs7Q{mkFkJ|k^Rh`5;1znTlYi)JC)nl9h@~aQ!e)~{E`7bPC{I+CN z_R80&Vw86-=lnvBx76o!MlX7XhuC_d+5VDP{~<7u4!@cfwc=d2AIFBtQQIQQvN86{ zs{AE?ku}TwkMai8Ij>3~DuHlsT;*002a8ou^|B?U5AN$o+SV<&b79!_E~7WDLx=5I z9}-xJ70kD~LFu*Ipvt8>iXe)`Qf@CnS`14*)l;_=n@|%7mhc?G?L$VNMKF4NJ zOlcn&$^9kI;3ut`y28}e?O-2w7WQt_K&vx%8S}=odc?T3-p&}zUIPFu74bXm`pkFr zB`Lt+raN!M$s5&&p1!D{FG{(9y?V%bGY5l0MKFx0>Fx#kdCJ45b~sfyzgLN-T$kBS zzzb!s+Kc_YLumf;E9b2MsTUyCe%L+pYLt8l$^F!JyJ>{Ad~}E3q1xKL%O=7h^)6%L zub#SL##yOczbnRu8MXk~Ya&SbHeU@N>3-C6d@5vCTgR@lX!!(f^rJ!-3<$Xta~B>V zsC23Rf~O_O!GYI*?0urDbi^*xtwMN9H@$Rc&O>gqnIpURO)W^DCUP?j@mWd0m(*2X zXG3n;O~*=ie%0T#AJPy50Ri*-_yxb99^6HXo-&LDfLe;|^1rD2r7gaqZj?JnI`CEa z_AM=&77}X!?lH(9l!3ttj z%6FU+#}baXrS-M_e)xE}+~>Cwopx=hx>29xDeakVH};{J@y?w#KcKT!PNFa#Sr=_Q z9Ln6o>$RZ&arrJo=Y>}SvD^*B`(dyKo1}CaS`WgV`9j;DHwOk6RVJ0`MsmgJcNM6? z?6QW_V7gD@9~mf%Bzs>%M;85g@1nucc)o1Vea9-MgdWNjf9A$F)W%I?lrjLaKh)w5 zJQ_&8l&xJppt+lWvX=B9wLR+1_L=@+_%_$T=1cGbI&j0Sc{t$IrR&WG%@;IgU2C>A z^(S&gB}td=HR<$x#5R~EvV`2$exwcX?q>@C-u(>w@YP>(_eaHaoo6&jr2F>ETZvsB zh5+%o|BTAWCGwt=kNIeFDJstw)rjowPtgwNd$s~xD;KNx@1TuFCjTwkgDCoQ;4iWdIobIono$?B7_LJ<{@{hm+7oM@+B%ZBTJEAj*Ob=4FTQ@}?zw{%uG<2vrd^9_YIY{M+zqG^8IDHV zY&=*MSDtHN)E*ahY^Rw{f;wPJDto2;x*nlxicM1Yy9;In!3R!FF_+I{leNj@ZBNEe zpQOH#1ZNuwpW!}eVTQ@B7g<)=DIx}&yp>A*WeDW_T0_E7T{&HU=j?rRU( z^u&@=b<+rz;w#h{?&sVq>4%5j0cD>Fr|c(-@7e9ySPJirS-aS+cOHbR+xO>M9_Eo3 zuLhh#n~Q_DotuF_yg;AQI(BUO!S`f1Z-b2(K8gwE|Ep)BYt7_68qU^iCv~C`Oq;ik z?b_FO&;RlpJI0gu9k%tWz4cn`%o8?n^x&{ez3+KZ8skNqa6o2OctI*qGMG;j z2c4h%3H_DOJ7}eM+RoaQ+h#e`vPC<>3)x&d+!}ruj0swz)Uq_Maio*J+v_r#Ig%~4 zAAz$u)`FA^^Wz2r&iXEvsBqxW{c@#0`^F2S-(D)8FubUeeUdwcEuk*8J%wO3ePh01 z)t^|k?2=}z0CfE!Tvqw|i7GWmEp&Twb$Ecu@>aRVc1JriR{GGlQhCWeJcI z@c-~;UB9kLZL&6Uq4#VWWA4tbUF-c1r@@$)zjKv7zmo4j`PXDQgASNEznxtBW z&nZrotoT}SEGg@c%mALczt?zsRC_}0gxF0$pbHPIfj19!Y@z9AUU=3;KR+$0CMIkI z#*}>7t76YR>W;SCo|$n-MQ1r zs~o%6y6>o=#H2{~ek3iFZWpcGjtP~tyA>hLS%ePVGK6-395us#2Xiq-T8X%J*b+5_c{@%31AX;peA(w|sy2 z=7@~wHt1CWfZfR4_U+m8cK)f#-voWQ89RavH7Q$80ecCBkLbcslFghQMgv&LjmuKnbx zaFp}c4;i2HhUA>$nuMzAW!pyYtC*S*M2hLwWa)~oFRQ$IStAiu@VcSe-VgO(kPzR{ z)=c&bgU6?h=dn|Fm}dimq-pA#!Ctw|(OYt}kD7jbTS)w!Yz6w!PS2v3J)CFTc%4|B zY$*IW&;)cA64YOR#C}tpCb^l2bWYJ9JJ(Q1Orn_$D?`ygG7%Zzh+sx}vU<;(d#^P8 zCvs5{I!4V_JCU6xKhseaMA8#Cw1SZ(491$vyca;r(4$+d{|YY5aXWMC#i~5R5VrNc z{&nbFR-=66;nqgP#=fOT<{?~PZx9B$7T+AfUi=F(p1pK~*S9D%BqxSE1k=1wGTdGt zI=3di?Lf>3e{GWM?Nu<+3m_ zFBTn9EN^7?ChFshhPN`xI!X6;*u-1;WWgN*N{F@C1#ndJFMZ}(gA=MBU737_nwyya zPR4@6pWvth^c6Y+o$uP$8CVAj<((>50%9+nA_=fUCR@z-I(7d)e zXFssvk()5m^m&CTR*W+SVq4u2tjo^KVV*KUf~4W+=Zlz;M@MpFJ&vV>T>81jN%@9h zJdEzU#J_IgQ{}w6FPnVx3jIg@_vT94h4Q5Nfqd+$JmM_IqN43Bbx6H{0Vj z%*!m3tk4TRpE$Zgtq4ficlaTTeE)AjHmhA9>i*i43^gdkA~GEk74i@xf3`uS)&On9 zGsf~raZc*Q1baosp@|b$K(VW#P_}0hSKDGo*x*4Q1t=T%JKYg4wYMYntevK2%QL>uh zNp($XXw*m{GXobT>aKYWc9a*XN$M^$JLZ$WAcb=q8T7n)-CZp03whoEoDiPG zj3h;VM@*sJmZhx1nP-2&Vg3BhJCG5%@^Hz1bnq>=YdQX}butz{np$NjAJpkIjNsO4d>f+QsPHL2U_*5KW$?PAR=FG@Rg68r3tiC(vqgw`zb^cPj zuUCKBGzN6n$N*1@=lbas9f0veT9mZa=c{JSF4vt!C?YbEnQ&FrPxVdQlt+Nde4tdxWxdhSfw2djY_5FSRy zU7B4OXYS4n3R%Hq{f3zq$3to;zv=r!GhMOe_Q$&B`=#T0Cso!iPF`OUUO1 z82}BL$Q&gRHCHKw_TD`X;JAOAPR9P)e2kWx0{ypllon#-zVKFl|4#}0k36uvT5CRJ ziz&&&BciB#smH1IwMmTB)hB97Q`9`KtJ`ct7p&S#)`G&ybn;R8B^g0G*+O5ucuc!` zGr(_0Z&D! zgdOT8GXg!ifA>5K7j+doXG)pBM2zb_7RE|!78~0I!H#h5 zCJ`3zc1bW2>&_YBT~-DQ_2BQd^E=Ws((KFVhFuuA#G#IDauFV(d&&3P_*v5E_--la z%%}li5P1b=nveOkyL@1#hE@hudc>Ij E4@wjOO8@`> literal 0 HcmV?d00001 diff --git a/src/main/resources/contrast_19.png b/src/main/resources/contrast_19.png deleted file mode 100644 index 19ea91ab898340f668406cbdb69eceb75c1b6ffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmVCgKA%5+jNf=3!z2xJJRaBU^|9XBnClZNzy-qxoMBQ|fmZ0qk ziBUG1v)L@&hLV^V18_Q>27}=_c{m)J&1N(jMH-YsGB>;3uGj0IlgR6II>BIYFc^H3 zyy0@WUe7t5P8ITfo$vQn%+v4p|2fZeI(?g`W{0R*r_({QePV}(!(lF$V~2XZ-fp+M z?U2~pcDo%21Z*~&y0^4Z>@C^Aw0kRH-lLdGr9uNe9*=q}w4_$6;pgiww<7KnN$P!~ f{MGyX?|;G<`p4Euv|ez600000NkvXXu0mjf8olX@ diff --git a/src/main/resources/contrast_20.png b/src/main/resources/contrast_20.png deleted file mode 100644 index 358b282605abfde0ba4d272ce8f97189f2a1e099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmV;l0ZaagP)OIR4SLt^ZDE`3_hf38W+5f<%KLc91bN(DijLBC92gb zIUf!ON?5H{&1Q2n8fEz_yxnfmgcLFX?E5}X&*yU(hU@hjo)Rc6g)xIVWm!%%b8sB+ zvA$(lv46iXW+F?S!foVW^vR$45eK=#@evOF4HMLlZG*u8FRn1nR1~FHEIx&!C|WEQ zolXbjL%7@RrZ745dc6!wu%eV-tYIfGrQfc*=#C`lF4K^Y|iTov|g{tMfetG5OFvh z`u%<~nItbnxCbF&yWOUur=S}P?WwWT=@{C7g764+4P73CZZ)Eps;UTY0pT>h2zFr$ zB6MBH$I)nH0oChuoOT34Y`%^577#7x^?DtF7K?=>Nt&ivK-@b8&F6DjmaEmO1%wOk zl*SynBQ`Gn!v1_de{Vm1MRz%B$V4K+Y~ME|LBG@Wua8KjQrT{|HnYYAzB07r0)?Sv zAJ`AAu|~)X2MxV~!QgZ{Ae5| diff --git a/src/main/resources/contrast_30.png b/src/main/resources/contrast_30.png deleted file mode 100644 index e8f40a9dc8e6f18a5617dc25e00322d8b444be21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413 zcmV;O0b>4%P)?K@^3*-e6~;CL$P!52L|W@&+-9jpjWpgWA}s zh&KMbNg_UlSsUXnk%c1+!p_Y8Oh}Of(=2ECxM%OZv#`<ij(wXR44`@^g z+y+KK49p!T0q%g^vd|+SvVhir7H|yQ0^fQ*1=>ZSr>ekK;eYJ`4@UKaB9$f{(PrsP z?X z$op(FeFOlv#HO*;9-8(bl zJ)opEfD3h|EBds`n>^ptM|E9oFWN$p&REN#>oYPdv1t7QELtR+e6XP300000NkvXX Hu0mjfyREc8 diff --git a/src/main/resources/delete.png b/src/main/resources/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..c73497d3838636afd23c21f7688607bf9e965da6 GIT binary patch literal 11813 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ð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 literal 0 HcmV?d00001 diff --git a/src/main/resources/delete_19.png b/src/main/resources/delete_19.png deleted file mode 100644 index 03c82747b640762d459d19740c6f8d6b32dafc92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 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
=T+?kw!!QzZr2p&5$0`tb%U z!76~isLYd58K=$}NME0La9u=g09D5%iQn~vsGm^;BJ^2-3ciP&7PIHEi1^d5n3D|u zUqUGrn1K76rbqsdd|Jp-4B{Lx_EIn{g0fu(MOi6CV;ahwn?8+VM0@38SYiJ#wh3a` zH@XHT%HE*eaXvE~T?Zw%K|XI>EP)lI1hRsJU_)FJX_E=T0cAXLL^^XJej?CdVJlb~ z@fHD3hBT2JDZ>L_i@_ZC2gsTnYR=T&4==o}4?uYx{d35Jziqg^MV)7X@JFrTYlq_i z5((wtA%4rqLOFN}aCJEaox#OV?e}x$gFiq8F|s_T;vx43%4O|?(Ad8E5|RJ@!Js9e zb+8(g#h%UchyL%M#Dbp{{lH# BBpd($ literal 0 HcmV?d00001 diff --git a/src/main/resources/settings_19.png b/src/main/resources/settings_19.png deleted file mode 100644 index 955808823b1d9eb2e71f3972dde12e0fd8369320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)hc?KVA6CKK{ON$_U1 zT4S+Tu~@uZE@V(Al}hQ~222F!bUNj7IqpS1C<(f`)nh+wsitpRt(Gjyh6GR&DuHgM zS11(pn$*$r5{ZOf6OzcZ+wGu!Cxl9-(-XIn0p>Gtz%>-D-( zLx_&KA%hQma!O4h&pQ&uA}&F9BocYm5D~WIkokl}jc5pQp^|E~O3#o)92&R_mlUTa zy2Vzj6`I`d_xK1y^h`DJRuCPhCU52SeL^=Af`ISu^S}RuA6sr_e>QS6fB*mh07*qo IM6N<$f+BqGwg3PC