From 57ee4d9a92e24862211254fc5241a23b5ebf0198 Mon Sep 17 00:00:00 2001 From: rattatwinko Date: Mon, 9 Feb 2026 12:23:37 +0100 Subject: [PATCH] New Desktop Icons Some new Functionality to record more than 1 camera using the desktop icon. open local files using desktop, open profiler (nothing changed) Signed-off-by: rattatwinko --- src/main/java/io/swtc/SwingIFrame.java | 48 +++++ .../io/swtc/proccessing/ui/IconSetter.java | 39 ++++ .../proccessing/ui/desktop/DesktopIcon.java | 107 +++++----- .../proccessing/ui/desktop/ShadowLabel.java | 42 ++-- .../proccessing/ui/desktop/SmoothIcon.java | 28 +++ .../ui/desktop/recording/CameraCheckItem.java | 13 ++ .../recording/CheckBoxListRenderer.java | 17 ++ .../recording/MultiRecordingFrame.java | 183 ++++++++++++++++++ .../proccessing/ui/iframe/RecordingFrame.java | 4 +- src/main/resources/icons/explorer.png | Bin 0 -> 34094 bytes src/main/resources/icons/rec.png | Bin 0 -> 54712 bytes 11 files changed, 411 insertions(+), 70 deletions(-) create mode 100644 src/main/java/io/swtc/proccessing/ui/desktop/SmoothIcon.java create mode 100644 src/main/java/io/swtc/proccessing/ui/desktop/recording/CameraCheckItem.java create mode 100644 src/main/java/io/swtc/proccessing/ui/desktop/recording/CheckBoxListRenderer.java create mode 100644 src/main/java/io/swtc/proccessing/ui/desktop/recording/MultiRecordingFrame.java create mode 100644 src/main/resources/icons/explorer.png create mode 100644 src/main/resources/icons/rec.png diff --git a/src/main/java/io/swtc/SwingIFrame.java b/src/main/java/io/swtc/SwingIFrame.java index bd41aeb..b3f1065 100644 --- a/src/main/java/io/swtc/SwingIFrame.java +++ b/src/main/java/io/swtc/SwingIFrame.java @@ -2,19 +2,25 @@ package io.swtc; import com.github.sarxos.webcam.Webcam; import io.swtc.proccessing.ui.IconSetter; +import io.swtc.proccessing.ui.ShowError; import io.swtc.proccessing.ui.desktop.DIM; import io.swtc.proccessing.ui.desktop.debug.Profiler; import io.swtc.proccessing.ui.desktop.evidence.EvidenceExportFrame; +import io.swtc.proccessing.ui.desktop.recording.MultiRecordingFrame; import io.swtc.proccessing.ui.iframe.*; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.io.File; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import static java.awt.SystemColor.desktop; + public class SwingIFrame { private final JFrame mainFrame; private final DesktopPane desktopPane; @@ -43,6 +49,8 @@ public class SwingIFrame { desktopIconManager = new DIM(desktopPane); setupDesktopExportFrame(); + setupRecordingFrame(); + setupFileEx(); setupProfiler(); setupFullscreenToggle(); @@ -61,6 +69,45 @@ public class SwingIFrame { ); } + private void setupRecordingFrame() { + desktopIconManager.addIcon( + "Record Batch", + IconSetter.getCamerarec_ImageIcon(), + () -> { + MultiRecordingFrame mrf = new MultiRecordingFrame(); + desktopPane.add(mrf); + mrf.show(); + try { + mrf.setSelected(true); + } catch (java.beans.PropertyVetoException e) { + ShowError.error(null,"Exception", "" + e.getStackTrace()); + } + } + ); + } + + private void setupFileEx() { + desktopIconManager.addIcon( + "Open Recordings", + IconSetter.getExplorerIcon(), + () -> { + String userHome = System.getProperty("user.home"); + File folder = new File(userHome,"Videos/swtcctv-rec"); + if (Desktop.isDesktopSupported() && folder.exists()) { + try { + Desktop.getDesktop().open(folder); + } catch (IOException e) { + ShowError.error(null, + "Failed to open Folder", + "Failed" + e.getMessage() + ); + } + } + } + + ); + } + private void setupProfiler() { desktopIconManager.addIcon( "Profiler", @@ -72,6 +119,7 @@ public class SwingIFrame { }); } + public void addCameraInternalFrame(Webcam webcam) { CameraInternalFrame cameraFrame = new CameraInternalFrame(webcam, this::handleEffectsRequest); diff --git a/src/main/java/io/swtc/proccessing/ui/IconSetter.java b/src/main/java/io/swtc/proccessing/ui/IconSetter.java index 7347f2a..c985e26 100644 --- a/src/main/java/io/swtc/proccessing/ui/IconSetter.java +++ b/src/main/java/io/swtc/proccessing/ui/IconSetter.java @@ -12,6 +12,9 @@ public class IconSetter { private static ImageIcon ICON_ICON; private static Image effects_icon; private static ImageIcon dbg_icon; + private static Image camerarec; + private static ImageIcon camerarec_imgico; + private static ImageIcon expIcon; /* this is used for the app icon itself (the one in tb) */ public static Image getIcon() { @@ -73,4 +76,40 @@ public class IconSetter { } return dbg_icon; } + + public static Image getCamerarec_img() { + if (Objects.isNull(camerarec)) { + URL url = IconSetter.class.getResource("/icons/rec.png"); + if (Objects.isNull(url)) { + ShowError.error(null,"icon","recicon was null Type Image"); + throw new RuntimeException("NULL!"); + } + camerarec = Toolkit.getDefaultToolkit().getImage(url); + } + return camerarec; + } + + public static ImageIcon getCamerarec_ImageIcon() { + if (Objects.isNull(camerarec_imgico)) { + URL url = IconSetter.class.getResource("/icons/rec.png"); + if (Objects.isNull(url)) { + ShowError.error(null,"icon","getCamerarec_ImageIcon failed, Type Image"); + throw new RuntimeException("NULL!"); + } + camerarec_imgico = new ImageIcon(url); + } + return camerarec_imgico; + } + + public static ImageIcon getExplorerIcon() { + if (Objects.isNull(expIcon)) { + URL url = IconSetter.class.getResource("/icons/explorer.png"); + if (Objects.isNull(url)) { + ShowError.error(null,"icon","getExplorerIcon failed, Type Image"); + throw new RuntimeException("NULL!"); + } + expIcon = new ImageIcon(url); + } + return expIcon; + } } diff --git a/src/main/java/io/swtc/proccessing/ui/desktop/DesktopIcon.java b/src/main/java/io/swtc/proccessing/ui/desktop/DesktopIcon.java index 8ac62e8..5a0265c 100644 --- a/src/main/java/io/swtc/proccessing/ui/desktop/DesktopIcon.java +++ b/src/main/java/io/swtc/proccessing/ui/desktop/DesktopIcon.java @@ -1,35 +1,51 @@ package io.swtc.proccessing.ui.desktop; import javax.swing.*; +import javax.swing.border.EmptyBorder; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.geom.RoundRectangle2D; public class DesktopIcon extends JPanel { + private static final int ICON_SIZE = 64; + private static final int TOTAL_WIDTH = 100; + private static final int TOTAL_HEIGHT = 85; + private boolean hovered = false; - private final JLabel iconLabel; - private final JLabel textLabel; - public DesktopIcon(String label, Icon icon, Runnable action) { - - setLayout(new BorderLayout(4, 4)); + setLayout(new BorderLayout(0, 2)); setOpaque(false); + setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - if (icon instanceof ImageIcon) { - Image img = ((ImageIcon) icon).getImage(); - Image scaled = img.getScaledInstance(64, 64, Image.SCALE_SMOOTH); - icon = new ImageIcon(scaled); - } - iconLabel = new JLabel(icon, SwingConstants.CENTER); - textLabel = new ShadowLabel(label); + Dimension fixedSize = new Dimension(TOTAL_WIDTH, TOTAL_HEIGHT); + setPreferredSize(fixedSize); + setMinimumSize(fixedSize); + setMaximumSize(fixedSize); + + setBorder(new EmptyBorder(4, 4, 4, 4)); + + Icon scaledIcon = (icon instanceof ImageIcon) + ? new SmoothIcon(((ImageIcon) icon).getImage(), ICON_SIZE, ICON_SIZE) + : icon; + + JLabel iconLabel = new JLabel(scaledIcon, SwingConstants.CENTER); + iconLabel.setVerticalAlignment(SwingConstants.BOTTOM); + + JLabel textLabel = new ShadowLabel(label); textLabel.setHorizontalAlignment(SwingConstants.CENTER); + textLabel.setVerticalAlignment(SwingConstants.TOP); add(iconLabel, BorderLayout.CENTER); add(textLabel, BorderLayout.SOUTH); + setupMouseListeners(action); + } + + private void setupMouseListeners(Runnable action) { addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -52,56 +68,35 @@ public class DesktopIcon extends JPanel { }); } - @Override - public Dimension getPreferredSize() { - Dimension icon = iconLabel.getPreferredSize(); - Dimension text = textLabel.getPreferredSize(); - - int w = Math.max(icon.width, text.width) + 12; - int h = icon.height + text.height + 12; - - return new Dimension(w, h); - } - @Override protected void paintComponent(Graphics g) { if (hovered) { - Graphics2D g2 = (Graphics2D) g.create(); - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - - boolean lightBg = isBackgroundLight(); - - Color fill = lightBg - ? new Color(0, 0, 0, 30) - : new Color(255, 255, 255, 40); - - Color border = lightBg - ? new Color(0, 0, 0, 80) - : new Color(255, 255, 255, 100); - - g2.setColor(fill); - g2.fillRoundRect(2, 2, getWidth() - 4, getHeight() - 4, 10, 10); - - g2.setColor(border); - g2.drawRoundRect(2, 2, getWidth() - 5, getHeight() - 5, 10, 10); - - g2.dispose(); + paintHoverEffect(g); } - super.paintComponent(g); } - private boolean isBackgroundLight() { - Container p = getParent(); - if (p == null) return true; + private void paintHoverEffect(Graphics g) { + Graphics2D g2 = (Graphics2D) g.create(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - Color bg = p.getBackground(); - int luminance = (int) ( - bg.getRed() * 0.299 + - bg.getGreen() * 0.587 + - bg.getBlue() * 0.114 - ); - return luminance > 180; + boolean lightBg = isBackgroundLight(); + Color fill = lightBg ? new Color(0, 0, 0, 20) : new Color(255, 255, 255, 30); + Color border = lightBg ? new Color(0, 0, 0, 50) : new Color(255, 255, 255, 70); + + g2.setColor(fill); + g2.fill(new RoundRectangle2D.Float(2, 2, getWidth() - 4, getHeight() - 4, 10, 10)); + + g2.setColor(border); + g2.draw(new RoundRectangle2D.Float(2, 2, getWidth() - 4, getHeight() - 4, 10, 10)); + + g2.dispose(); } -} + + public boolean isBackgroundLight() { + Container p = getParent(); + Color bg = (p != null) ? p.getBackground() : Color.WHITE; + double luminance = (0.299 * bg.getRed() + 0.587 * bg.getGreen() + 0.114 * bg.getBlue()) / 255; + return luminance > 0.6; + } +} \ No newline at end of file diff --git a/src/main/java/io/swtc/proccessing/ui/desktop/ShadowLabel.java b/src/main/java/io/swtc/proccessing/ui/desktop/ShadowLabel.java index 6e5075f..ca9f5e0 100644 --- a/src/main/java/io/swtc/proccessing/ui/desktop/ShadowLabel.java +++ b/src/main/java/io/swtc/proccessing/ui/desktop/ShadowLabel.java @@ -5,28 +5,44 @@ import java.awt.*; public class ShadowLabel extends JLabel { public ShadowLabel(String text) { - super(text, SwingConstants.CENTER); + super(text); setForeground(Color.WHITE); - setPreferredSize(new Dimension(15, 20)); } @Override protected void paintComponent(Graphics g) { - Graphics2D g2d = (Graphics2D) g.create(); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - - FontMetrics fm = g2d.getFontMetrics(); String text = getText(); + if (text == null || text.isEmpty()) return; - int x = (getWidth() - fm.stringWidth(text)) / 2; - int y = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent(); + Graphics2D g2 = (Graphics2D) g; + g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - g2d.setColor(new Color(0, 0, 0, 200)); - g2d.drawString(text, x + 1, y + 1); + FontMetrics fm = g2.getFontMetrics(); + int availableWidth = getWidth(); - g2d.setColor(getForeground()); - g2d.drawString(text, x, y); + String drawText = text; + if (fm.stringWidth(text) > availableWidth) { + for (int i = text.length(); i > 0; i--) { + String temp = text.substring(0, i) + "..."; + if (fm.stringWidth(temp) <= availableWidth) { + drawText = temp; + break; + } + } + } + DesktopIcon parent = (DesktopIcon) getParent(); + boolean isLightBg = (parent != null) && parent.isBackgroundLight(); - g2d.dispose(); + Color textColor = isLightBg ? Color.BLACK : Color.WHITE; + Color shadowColor = isLightBg ? new Color(255, 255, 255, 200) : new Color(0, 0, 0, 180); + + int x = (availableWidth - fm.stringWidth(drawText)) / 2; + int y = fm.getAscent(); + + g2.setColor(shadowColor); + g2.drawString(drawText, x + 1, y + 1); + + g2.setColor(textColor); + g2.drawString(drawText, x, y); } } \ No newline at end of file diff --git a/src/main/java/io/swtc/proccessing/ui/desktop/SmoothIcon.java b/src/main/java/io/swtc/proccessing/ui/desktop/SmoothIcon.java new file mode 100644 index 0000000..8ba9188 --- /dev/null +++ b/src/main/java/io/swtc/proccessing/ui/desktop/SmoothIcon.java @@ -0,0 +1,28 @@ +package io.swtc.proccessing.ui.desktop; + +import javax.swing.*; +import java.awt.*; + +public record SmoothIcon(Image image, int width, int height) implements Icon { + + @Override + public void paintIcon(Component c, Graphics g, int x, int y) { + Graphics2D g2 = (Graphics2D) g.create(); + g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); + g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + + g2.drawImage(image, x, y, width, height, null); + g2.dispose(); + } + + @Override + public int getIconWidth() { + return width; + } + + @Override + public int getIconHeight() { + return height; + } +} \ No newline at end of file diff --git a/src/main/java/io/swtc/proccessing/ui/desktop/recording/CameraCheckItem.java b/src/main/java/io/swtc/proccessing/ui/desktop/recording/CameraCheckItem.java new file mode 100644 index 0000000..647522c --- /dev/null +++ b/src/main/java/io/swtc/proccessing/ui/desktop/recording/CameraCheckItem.java @@ -0,0 +1,13 @@ +package io.swtc.proccessing.ui.desktop.recording; + +import io.swtc.proccessing.ui.iframe.CameraInternalFrame; + +public class CameraCheckItem { + private final CameraInternalFrame frame; + private boolean selected = true; + public CameraCheckItem(CameraInternalFrame frame) { this.frame = frame; } + public CameraInternalFrame getFrame() { return frame; } + public boolean isSelected() { return selected; } + public void setSelected(boolean s) { this.selected = s; } + @Override public String toString() { return frame.getTitle(); } +} \ No newline at end of file diff --git a/src/main/java/io/swtc/proccessing/ui/desktop/recording/CheckBoxListRenderer.java b/src/main/java/io/swtc/proccessing/ui/desktop/recording/CheckBoxListRenderer.java new file mode 100644 index 0000000..f661fdf --- /dev/null +++ b/src/main/java/io/swtc/proccessing/ui/desktop/recording/CheckBoxListRenderer.java @@ -0,0 +1,17 @@ +package io.swtc.proccessing.ui.desktop.recording; + +import javax.swing.*; +import java.awt.*; + +public class CheckBoxListRenderer extends JCheckBox implements ListCellRenderer { + public CheckBoxListRenderer() { setOpaque(true); } + @Override + public Component getListCellRendererComponent(JList list, CameraCheckItem value, int index, boolean isSel, boolean cellHasFocus) { + setSelected(value.isSelected()); + setText(value.toString()); + setBackground(isSel ? list.getSelectionBackground() : list.getBackground()); + setForeground(isSel ? list.getSelectionForeground() : list.getForeground()); + setEnabled(list.isEnabled()); + return this; + } +} \ No newline at end of file diff --git a/src/main/java/io/swtc/proccessing/ui/desktop/recording/MultiRecordingFrame.java b/src/main/java/io/swtc/proccessing/ui/desktop/recording/MultiRecordingFrame.java new file mode 100644 index 0000000..8ce808d --- /dev/null +++ b/src/main/java/io/swtc/proccessing/ui/desktop/recording/MultiRecordingFrame.java @@ -0,0 +1,183 @@ +package io.swtc.proccessing.ui.desktop.recording; + +import io.swtc.proccessing.CameraPanel; +import io.swtc.proccessing.ui.IconSetter; +import io.swtc.proccessing.ui.ShowError; +import io.swtc.proccessing.ui.iframe.CameraInternalFrame; +import io.swtc.recording.cv.AVRecorder; +import io.swtc.recording.cv.Quality; +import io.swtc.recording.cv.RecorderConfig; + +import javax.swing.*; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +public class MultiRecordingFrame extends JInternalFrame { + private final DefaultListModel listModel = new DefaultListModel<>(); + private final JList cameraList = new JList<>(listModel); + + private final List activeRecorders = new ArrayList<>(); + private boolean isRecording = false; + + private JButton toggleBtn; + private JComboBox globalQualityCombo; + private JLabel statusSummaryLabel; + + + public MultiRecordingFrame() { + super("Record Batch", true, true, false, true); + + Image ico = IconSetter.getCamerarec_img(); + setFrameIcon(new ImageIcon(ico)); + + setupUI(); + setSize(350, 400); + } + + private void setupUI() { + setLayout(new BorderLayout(10, 10)); + ((JPanel)getContentPane()).setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + + statusSummaryLabel = new JLabel("Ready", SwingConstants.CENTER); + + JPanel settingsPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + settingsPanel.setBorder(BorderFactory.createTitledBorder("Global Encoding")); + globalQualityCombo = new JComboBox<>(Quality.values()); + globalQualityCombo.setSelectedItem(Quality.VERYFAST); + settingsPanel.add(new JLabel("CPU Preset:")); + settingsPanel.add(globalQualityCombo); + + cameraList.setCellRenderer(new CheckBoxListRenderer()); + cameraList.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent e) { + if (isRecording) return; + int index = cameraList.locationToIndex(e.getPoint()); + if (index != -1) { + CameraCheckItem item = listModel.getElementAt(index); + item.setSelected(!item.isSelected()); + cameraList.repaint(cameraList.getCellBounds(index, index)); + } + } + }); + + toggleBtn = new JButton("Start Batch Recording"); + toggleBtn.addActionListener(e -> handleToggleAction()); + + JButton refreshBtn = new JButton("Refresh List"); + refreshBtn.addActionListener(e -> refreshCameraList()); + + JPanel actionPanel = new JPanel(new GridLayout(2, 1, 5, 5)); + actionPanel.add(refreshBtn); + actionPanel.add(toggleBtn); + + JPanel southPanel = new JPanel(new BorderLayout(5, 5)); + southPanel.add(statusSummaryLabel, BorderLayout.NORTH); + southPanel.add(actionPanel, BorderLayout.SOUTH); + + // Add components to frame + add(settingsPanel, BorderLayout.NORTH); + add(new JScrollPane(cameraList), BorderLayout.CENTER); + add(southPanel, BorderLayout.SOUTH); + } + + + private void startRecordingProcess() { + List selectedFrames = new ArrayList<>(); + for (int i = 0; i < listModel.size(); i++) { + CameraCheckItem item = listModel.get(i); + if (item.isSelected()) selectedFrames.add(item.getFrame()); + } + + if (selectedFrames.isEmpty()) { + ShowError.warning(this,"Select 1 Camera at minimum","Selection"); + return; + } + + Quality quality = (Quality) globalQualityCombo.getSelectedItem(); + String preset = (quality != null) ? quality.getFFmpegValue() : "superfast"; + File videoDir = new File(System.getProperty("user.home"), "Videos/swtcctv-rec"); + if (!videoDir.exists()) videoDir.mkdirs(); + + for (CameraInternalFrame frame : selectedFrames) { + try { + CameraPanel panel = frame.getCameraPanel(); + BufferedImage sample = panel.getCurrentProcessedImage(); + if (sample == null) continue; + + File outputFile = new File(videoDir, "(" + frame.getTitle() + ") batch " + System.currentTimeMillis() + ".mp4"); + RecorderConfig config = new RecorderConfig(outputFile, sample.getWidth(), sample.getHeight(), 20, 18, preset); + + AVRecorder recorder = new AVRecorder(config); + recorder.start(); + panel.setExternalRecorder(recorder); + activeRecorders.add(recorder); + } catch (Exception e) { + System.err.println("Failed to start recorder for: " + frame.getTitle()); + } + } + isRecording = true; + updateUIState(true); + } + + private void stopRecordingProcess() { + for (AVRecorder recorder : activeRecorders) { + recorder.stop(); + } + activeRecorders.clear(); + + // Clear references from panels + for (int i = 0; i < listModel.size(); i++) { + listModel.get(i).getFrame().getCameraPanel().setExternalRecorder(null); + } + + isRecording = false; + updateUIState(false); + } + + private void handleToggleAction() { + if (!isRecording) startRecordingProcess(); + else stopRecordingProcess(); + } + + private void refreshCameraList() { + if (isRecording) return; + listModel.clear(); + JDesktopPane desktop = getDesktopPane(); + if (desktop == null) return; + + for (JInternalFrame f : desktop.getAllFrames()) { + if (f instanceof CameraInternalFrame camFrame) { + listModel.addElement(new CameraCheckItem(camFrame)); + } + } + + if (statusSummaryLabel != null) { + statusSummaryLabel.setText("Total" + listModel.size() + " Cameras"); + } + } + + private void updateUIState(boolean recordingActive) { + globalQualityCombo.setEnabled(!recordingActive); + cameraList.setEnabled(!recordingActive); + + if (recordingActive) { + toggleBtn.setText("Stop all"); + statusSummaryLabel.setText("Active"); + } else { + toggleBtn.setText("Start Batch Recording"); + toggleBtn.setBackground(null); + toggleBtn.setForeground(null); + statusSummaryLabel.setText("Status: Ready"); + statusSummaryLabel.setForeground(null); + } + } + + @Override + public void addNotify() { + super.addNotify(); + refreshCameraList(); + } +} \ No newline at end of file diff --git a/src/main/java/io/swtc/proccessing/ui/iframe/RecordingFrame.java b/src/main/java/io/swtc/proccessing/ui/iframe/RecordingFrame.java index 234ebc6..6e822be 100644 --- a/src/main/java/io/swtc/proccessing/ui/iframe/RecordingFrame.java +++ b/src/main/java/io/swtc/proccessing/ui/iframe/RecordingFrame.java @@ -29,6 +29,7 @@ public class RecordingFrame extends JInternalFrame { private File currentFile; private final Timer statsTimer; private long startTime; + private String camName; private final StringBuilder sb = new StringBuilder(32); @@ -41,6 +42,7 @@ public class RecordingFrame extends JInternalFrame { setFrameIcon(new ImageIcon(ico)); this.cameraPanel = cameraPanel; + this.camName = cameraName; initializeUI(); @@ -131,7 +133,7 @@ public class RecordingFrame extends JInternalFrame { } try { - currentFile = new File(outputDirectory, "vid_" + System.currentTimeMillis() + ".mp4"); + currentFile = new File(outputDirectory, "(" + this.camName + ") " + "vid_" + System.currentTimeMillis() + ".mp4"); Quality selected = (Quality) presetCombo.getSelectedItem(); String preset = (selected != null) ? selected.getFFmpegValue() : "superfast"; diff --git a/src/main/resources/icons/explorer.png b/src/main/resources/icons/explorer.png new file mode 100644 index 0000000000000000000000000000000000000000..c16f50b71ed0907612d68fbf9ef7920bfeca3c25 GIT binary patch literal 34094 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
^fbpHlH>V0seOHeE36(C#0S+sD_ z3^#^V81P&vys9zny9^?D*Y`%ZM|^AgSwW^Fnc|^;+jRD8t~Ci2x~>9wY!Toz1$c36 zzI8WX*;YO-SfkAPV4;0;LC&^T7deu*WcU!oHIR|`f3E2vs1$YoP*xTTC%<`cN07>J zVNXs@`a*_;j+Ck8-x=*4B3*nFgC%S@r zM6T$B!3fr^$d?E{qwv{QTdMx|e?~Rm)bb?yCkha`p8F>VazdAq zKc|5wSk?38#H=6->z1twG*z7IYr$MTbeWuSG(>o3{z|p#6Qr-z73vI%P0LxLh7ye3 zXGW<48cK`n7_6`p&V@=kKHUcI_^DZts$z}1snK(UewU{&s_W&fiCa~%JS)Z2b^&&w z2>+l#GFLxOa9cDA6nSF);K&$YnxGjWKcvqj>`D zt;xsPZY%`Hk!)m&FC-bMA;aa*Ssj z%Nx{wz|y1&om3mcxVc(U`a4^$ag)hUVn;H`4$#z)kei^)RF6UN!n2*vbD!JlxHg`D zP%9K2A7f!DRx8x`1m)Mzc5#4)=;1fv-a$Cpgh>}eM*qGyp}h52*i51c&EYA3?1K&( z24D5BvPS}ITAFb_O+-0O6u+eRX!eZ~CAT132_WZ^MbGi&z3#V=+!FNyQDBZ*&2==} zT-_cD+{1tP(DO0)(gzH7ty~A$cp(wXbG8y+)IM-BN4@6Kta-r zRz2M?LOj2&<@)Nn&fN(^`+k+ImRaYCdx^pqo-lrI?30Wz!$``?PcTT!C8XunwN~t6 z^J3t+AVA#EfCTo-`2z%!+i^LF-&$?j0o-iRaR0!fy_LVdX3E8ck14aWdW!+!IF@ND zb?59|E*5>%$5?*DH5#nqLiRVmW@c~LMf;Bl`)%8op*n4<8G{$m-R`-5geH!=iBePQ zP_M-Jfk|=QJN*d)H5dH2-?ukZs4#S4%$$l&c%``+n4n!Dli zJ^GY8iSdJ)JJcI0Ot%dfU``pX6o@L>)fGgW>yntFRJV_%BA^iJ3E z-(ktJ=_jSzK=a#y#Mr(?RZy&VPr`!?{qCrb`x%0D^dka)({&S)Jk!v6?f zGKY%bt2afq`Qxfk1!XV;1x+uEbff%FEAC+sEFjU1S4)ssL;deKjmjB2e}`~^Ujl;T zd^Dy1%7Ii+{qI-BsS!2%qI>7fd?JL4$oX5UzPP1nz4^GLco>lYJrS$(ka2<^Y=*Ht zn{B+WR?IP3?qp2Q)n)TwP@?Go*WBjw{pw&wrHtp*QQ<`AaYv9nbIT4_+hkFpZawVd(e4PB`kq|19AC7mV5) zWeK5dA&4|CSuHtpV}m!ix(tqe|D_#Zq40DiizJ~!3PJwunp(8UM|C{=*I_iOr^F3iMl z;55RpwDiRzzc#^~lUN<%LVt)-^%Qy=dC*duhde7~gCNuEzp#2e^FZ zq2c^Ik@2I6$q?kUM74Bbb!d+8ZnyGL%F)rW^)U!#15~cf*8Dj|kZ2oWXev2)lDOyO z;(W43Xl5?4?RmYX{Ne>iR+enXt=y5Q%*m0`V!$qCU()kGmq8_zd}XCHME*q4Vg_O_ zmhzmU&A6hFig738BaEnK-!ddqKY12}-cZ7Y_J1}f2J)7$C0UAzi5a~|6zCGi76FTKhE?)n2VSHd#8x*^ZYtuyL@M)w@^%KE*xK0% zvy~$K)OIWqUc|B7L}0k*HjeRLc8ugo_oZpe4VSfO9bc$2vS^W)q#M7l7khC^dE(jj zF7^9H-6z;^v*3+S7=kQ3q^7n}B5;uUR$j1)0(YgR%@ma6=r)rk3&8%9(FMS+5J4e_UlZ$t zavB?>J)q95-WLnf(!RlJrISztVtgJdGy?LhnVj=e))|_c8TGW>cPjr(#ASR~!E3zT00kmc9hFL3YE-X|@F=X_wj+1jKLiKYwvYZzuG3nq}znzIiiiOZy?Asi{u6&SbOiaaG>Z!#{4oJEuz{{%!+} z9PhyJJHxAMvn%%CtI<2Akgb@IOvZ;*`N1Z_jH~&}wwU1q&E<;~tT$S3-c~M@7|?Uv zEpy0s&9pws-d$4oC8$7 zXKFTaoT%u_Ctx9%dy{1OUzCPpMAW=Rb&3IjWJz}#16bgddMqk{NocZTd&{9p5)dD$ z&&I7#=5cZmZ-O1*$N5F~qLzr4o8vkTq{k&&@zSicW~tBwR@L0BP&3t$mTCf1F?upP zzwfr*E2PfxsW>+Ji8@EOyJC^3=j0@s3M4(3?)(#lg@avUA(8MwE0Sm*%(>a2am?7s z4G!GDlp7Eayq^&Qp6SFsL?UlPLhRjFi$m}kA8gnk81Gn@TY*;G{BVC;hoYs$^9D9h zW_IrDvP|3Jq=_dK6luSB5$3kG4YG=eAjE6*I!6x+j2@LaW)3hz;)Q=t2YVGn;ggZoasNWok>dfK|T|`WMQ+Rl3=1px;i-{t*-F70=E7{+c&GC12No z75j$Qwq|}~qTV85LXxtu)602r4o?26fKBdr0W!04EPu-?q_WkTXl~is)x3Qp=~}A$ zM6kE&cXKq1XztWlM#2@|D)i8rKFwC$MxxG@J`H7veGh6_Se-I7-R!QmS_~Nd_*&-- zA`y%5yf{DglFHMB4cn{~cksljkH|b+sLG#y1Fw+`I*S4TAbLX?`F;f%t=iw>bOpLk zc0LFE+oi%CPZ9X>yS-i!7)f;V5%(THtYpf?)7n1v_OK-;!z?Hrx0v;sa)Ns{6%9tAvhE+e}ce73j&WZbYGexUN_WW1nEepOgTtrJj)s zlD(Xq|C(r4VJ#RV%MX-xAjXlLkKR6Jn-iNn`ke#^-Z?uvPqJaSi6+lSPd&5;@UO7{ASec=8S8`=^Nc4TWrlJDJH1v-=v;Q zYWD!Cck?}C;7t=UAdK;$`D{abF$A?_Hof$%VF|1McWqP@Yh=e|AR1>(sYi{GetD<3 zVw~J@iB-hOf-gfy@XvAIOA1?|Hf(s<12`x0V1h zL04wSm2xG56QZJUIt4a1jw#;MbNC(-j-EO*UJK+0t#P68!_}D`WJUY2OnzYg2KN+i z%Xj4=z;`zbDd~O2seX>wW~-@tggSIE4tu{hl;@+t<-&msevh#TMWGu#D|-}gE4E$A zq)7;^`llHk2@*kLr&L-TT>bHmDZhlg5fTW0(_Z)S(5r5Dr-0W4G!Leg zqYDhp$;C0$ew+Ko6$m5SAkX+g!^+vc0wR+>l6^3l>J!?iIK4`2ax&w@QP_FR zaq_)S$WG8%$8Dm1k}1kZRgsC%vA&bw0yikhrx5<;nDMEMn_T3vRmiWt+Q%rYvRMyBDfG zy)|F$bEls~t^cIG5ROc*@ag1XX9(hV_CL|cw*i0~FZROsT$!ipgPLX^%^CMTLVGL^ zUpXqbO!3_>(K1J*GcewEm-?=pweb#(PVO86p7o2;li1hOwyuw>3aZq!w~x%vzYurf ztEriUPS#yT<*q-qgpO78DYd-i{AGZiPuqtM3|l)}Nq_5D@A4jjI2sb?m3MC@meB># zEaLE`PgYC7~a_4U#2nx>ebTuw|x z@!U^4wki{zwb$q}V~}lHnPEXzLWw3JE+1M($}1u4<8hU~cLy{sukk@OrllrjMf#Qt z&F)L-pE}r;!76m8YDNFD5I0NOch{8xj{y&(@@F_F&o)PV0XR=ba3~bV4!mhpp5|@R zEjCsUv69O6Q{>+UO^ZM9xO{-eqWtda;1@G~GwaFjh@BRUt8vC_;Wt|KbMuQu<3Bu4 zw+Phj#Tvu_Mjsctt)cv-6qW>vo1=(X zu)gMPUz5$wCEi>$kBuL(45BMdPGRNg6-GO19Y?M`od(B*ph7)>-HBgyIrt@%lbtl) zvEVMZ1DJ^3*w@jd=suv_el(#GxE0Hh>Ck{iKq)FUS}jwS$19jRlwUbFxtXT#NdxoI zVkBMpEko?zE*fa z3MvYF*XsaPgz7TmW17HT;QwhWMX_qJIMflCUtK<~+6nf$t*$9QY+T;CKU~9aX6}aJ zHyPJsGa)Z~f#1G8JC+#`4?chrP(zD^oDCJ6@5Q`7qS@ySaC9pU99uL$=1C zSj(=o>+x6v-q{em(G@vG09FU1xpYx&=c%m2lvJHVlz-dEhILXj9SQ4Agk0M)07?-Z z!K`o^FAi`enfj(J#LW{jEo`JHYl{M%0NWPtf7E0KOVFD%R)&}C{mp=McviFvWeea7 z$#tu*wBl;BL=E!e$BMit&;11ZO@wC4zdRBKpBnkxpj!yq7XYGtf%Oyc-iLO7uvUXc zoa&EA=2JWpvYw~tTa?#GZRhLocPHNxymqAfL9Y<7t9R=g-5Cqn#8$}`(pJ)M#{C%* zDY()I?EFRavrfedybN5Rwp5xU$us5easbdofCZyXU?-y?rw#J$H-9RF5FvLF_G646 z4nN?hO!w4kN`bUfh3+q6o}Q~L^`3d265&0Cps>RAE_1)nIeBsZ{q=4ek2OM(VC#xZNX|r^Qhzp#}n8T@?!B2ftcTjLlu`_hWY2v60x zp2#pJ6q=SXMVdQ!(2ky#HCEJfCc#pPV{#=ulgzH`%#gS3$d>CE`Rn8>MDSh6>Ke41 z_a(zd%j0YV##`9@<^2reF$h>Zx3f~5XS z@L?^W_ux+Jddg*!e~C4#WkY#W6&UA5+;eHW6wb{YYqfn|bDQUf2`M4Rjs!Cia_F`e zBmFibnI%O`sFK7za`6C!r=Ij5GLdJp!MLq&cK(Trixa+e@wwZnvz1TRJLoo-Sk#m8AR!v1KJ0fo1M1}2#^lQGr-+ctndZSI8OCG z;@%zehh?|fHwiPmQa5M+wO3kKZG1k)N~D+|h8>2d=5US+;jphY@t)VNNuu_B^Jaek zcwr3g_>#{Cg?!>zNX!tw$tPXEiinam=X-< z>{*g;(}5a(Nyozw@Yi0qAU1z^@&XHk{l{xE(wMR8iU9xn5|kcSBzd7L51D#(d~1&j z)3lROD)~COo7lnkT+8}-m|#=XVvCT<b*<`#=a=qQ!Tqq81*{r7naJ_Et0=1ay&MnUu zjek1oxWBBaZ;wW0W*&@2GV20{aA{lxOB0nMxO`FJgJ(*Pusmy8gAa>Z zObw1dV^}>k;0~d?nha69IaeNhehiS&{!S%aTc3MV=P)HW!5xS|-kb>GUR}6eb3rDroq^VUC?f6#fmz<5M ztOhW|#uEmOnpz?*g}qohEG{LNv@%>8`YyCG*s51GDiNwHI+cb_r*Fs#64^DsPW)zX zSfC0Q07NL&D~l0UkmKRfDzG;P4mK_WVDFw?I$}u;Pz3v0yTHAHp-a-`14@jMA2*EU z73KswT$J9*X;JItU{j^h;c_i{eFq>;zd}^oY;zi%7JLr5j7lIMmnHABh>6qHg(Q6Z zt)ER%1CnCZps{bQ5?69`{Bv_qzU=Plj=K10Ke}ONz$}f^kXz){$@4oMA%Jl}S%9MY z(c;_Wra9yPMDiXDLy3S3`bY2E#}`E0i=THT_}j0z9}n`cF|svt+!;ymJ~{g?M3AyT z&22phV8p5dFK82e| zX-z_rODXj=8cFKVH-(k#9B=dvep0gJJeR=70Oc|fbpPm4;B87cylZ+os}UywG8WNa zH_7`rkDl83BV?~@34!0bzYzCKV2 zSzB&FjigGLJ=QUz%`k>mRC~fwgYJ{ErYjj`0*I6!Cd?~|J~tb!hR2{ep)aKGPZSOs zbr=R8h+p-`z#&YvPh{eM@Oa+@A0IT(M0}klT2r|A05gHk{iwm-_iFxCSy|K66!kAU zaagn7r&%ONbhpmrklSh@-wLny&&spFxTp*fTFn=M8hH%LPr6n+qFKgMf*bk-;>rw^ z?$oK|`!l+y4Pqo1Y)#)}L&bNr@cM_2z&;P+LYNnrp}o=U->3$xQE5GUQrW{Iw2?6e zxTBZ9OFqz!5XC6fSND#mnQjT-P>JaCv+uRt?c#Zz~Nlv$FZ>PM%q`ipwT{eO9I=22SYCRmD;gca4xCfj&_1Eb@H6y}OC7t_MkG#0qhVbbJ*~LHLMjTv!1?FHz^D4p6TPfn=4QlD0?$w^>*~2dm4B}(G=@6IKaXxK%5?YOyhk8yZC(oUechOy$oD3d^ zi^|?o&s~;3tj3PY4;J>|RPghkK1W=<3|!O8U%fhJ^_@UdJ%gZz~f5u?PxE1W$>k$IZdlX zgGS(eDUNh$$PsnU>LxU$uzA^!8?<@TdNqBDJySFEtr6TX8M)ttOR6A}uZ5U7goWhl_#sHPK(V zKSbnNQvn%R~h7R7h zxGz%Y5HWd~yAgJ)z2E@`K^pG=j7sKvitk|bG9bkGkoq?ZoF@1lp)GU&q*b^`Q9kRFL%&a`7PYot8O9B-JDT(&UL zp&u+=laVl>RV61C&pa)EeR{q>F?Cba=tEkp?vG$bZGW_@A|_T(@E1j1`m^B7D80}d z%i*ADGoMB}`=;ZPcP3njEP>t*vcM_czo^nwyc9ZJ=joosIzcagq?o~|egq|*_b1ey zmGJfSOdB57+XsFzExl8F;@ju` zKq5S9+a|YTq01#7(o@g+__z2vnQG}2*56Yt>3g~4_Ya4b0 zJ40V~%0PT(Eq~m`?5sS~v>FD}9mB_Un+w?l6+5B`Gtd@{8m@vCg%H;PFh#+865FmC zfhaoPe~KH{C(RHLSqcgM#-^iYAqcE9=|4MrBc{#l(HLW4EiIPD#x+@2O7(Ruh5GXO z-&s#BVx??E3M502>bkv3`Ds>;jHHV}39qY2%VGRNwcfJ=H1D~Xt{+w{;cIXE11uEo z5$}2XXXBde;Bdz62XEqBW7P{YMxT(UQfD#TKHY$H{?`yE8Whpq9SfZ-ffLWtzuHBs zrL8Xmv0Ohb`nRU*VWcf=#=z)Ei&s!`kIN;FrrX1`)_flF;6W7ki3>QPu?dlNz5xmfGduf}^QL{8Sa~#W>#CH>z=V)0PFaLY` zK)8GX0{&;?b-3ycDGQ==dFYU4P>^uTMek=W+kXx?`p{u%pre|;oa|r!yUrz7@33XHov?R(Nd?jFBnGxM2~HmX{sK<4}F#Idl_URF)7xm1H!l{4#| zJsMuk^$KOCFac@tc%+}q>Hg_|<_yhn69>+@e;zuL@wobUyPhlS6Bhi-sQpgLUH^NJ zy!VEH{OROlZi_a<^QL@*uLcG)zBgG&0Tp3MK@ilIhf8IyIq0YJ&h@);s=(1Cg-U~; z=yeB18^3q0obmk8hkfw#HP`c|cOLu^x(m0Qxic(-GBJv?m(N@@xfXdB4|VgS7Sey# z(GCvs80(IH(xhaE27DbZ)hwp|$S`Y}U_nOORj=+hPXTAp%c~82hDxUFqE=Ghl*0FSK>u8TCx;az)$TC z^ApKhBd|C*3hfl(z}CrSV&m+y&gBl-#aMJGxj#si#=<7Qc4|p4d%;;ZxVMz&I>L>D z-r4W$jTN#>Tl8jne8>tu|8jzaD`!nkqT|KT0XZve=)biaWz%Tg#r*sj;GAI1OiNzK z48A+H4+$<7nwNIRq5}%^t#|W|*c0nL8K#?8)x|Epr8rjliuv$!(gz>08>WcRgLA5I zbt)Lu@P)|vG@H9f$0tprx{hM_!%Rp*PlS9=3uAzQ(r=n#ohS4rAJ#ncA7#Q&dX)w* zA&Q{_Vs=6fD^Wv#)XR95b}qKPpNk=Cu-;)IN_ES}o&N2o|L`Zy<1At;T-ZtJCP-XX z#^jFTwNs4OD62}k&<$R9I7cg4*3QrS2XlH0ABni4p@A--)OD^gOt58{@Lyp&qFkKR zhMA}Q1J2?Ky>GWWXfvp$6F`)9zzh8y4dyV`&*&70YKXZN2*K0rZ`1nVG8fSBJg1+h zCvCoZCh%C?{VsiJ4f*AbWXaj@E}ld09>0iAO=M!xm#i#%2ET2EP9|%|@~(~UNFJ;C z*~i6ejlk6=>Z5XE+%^*QTqwLj;J}- z1_2^hu0+`R`=`FPMao z@Bmo8Eo{E7_-5gl8kGTJ81 zzXavmT{W^G^0wWx3=pMeeCMr?hyLxpS}e*PR4#V($|7`{48AKOinQEQ>fR<(>isDB zTOllpvFu#vIE3xjG=910^8JJBN?x-3h|is&eB5-LL)%v{j^nVHN#tF!{I%=2%2Q=Q z9s0?=^Kq3LH*<(qsm9D_@g#LzI<3J(d`l?(+X+Yp%8%W*`V6XxOCYT@aT(~}CRgrA zmn$6-n+Vg~o%#uV;`p!T{A&<0b1z30`9<2JzUTzs$BHOcHxfL?a?8mH%MrJ~rh1cv z$4T}A9|Ll99GRhMG!F*cVUc*TzqOeM@(md6kzVU46fiTV}nVw zh{E}p>2CP!Wwy<>Cr$Ee3ggJ#HDlGv=h0#DvV&f8%9rl{G&2tSCcGB%g;wnO2NJa& z{BW#uctcc3^vRRdWvvA`+0H*?q4t|Je1l&>O*no{Kk4LFFoKE$Cm2;0J@=VZ9Aywm zJZX@a@oay`RK(rmW5BeS7%1H%%|8YW#y8J@M0Oi*o%gG6B>P8x4y+hkp6PDf&N3$ zt+cdw#<=i7&qw(i-@rqgH;&xV9o1c1eR&tyz*-&FXMxm-(YJ>(=pcylCe_@T<E`KXQr|f;vSL zgsqkF7D>;G&n3vT?ytmjxlfNG2qsRi&yZ#-vdQwV>F0iGG)&q!{O-{z?fX|?CI(SX zH#;_QDBp*eEuZW83YNU-@k6}orDEy;es!mGadw?NxR4MC2}S2Irl-Yuzr(A(3z6#D zr;qrN>5}SETAt~Ax74_NC&oq#rom%=WhvWUSNC~ZOuR98{Y8XJhI-q`S0xSBc#VjZ z`oG7v;4KZN26?;`q0xi{=kVX}M!GOB+rJ9x_oBUb70~s;Av^#%%8=vU^7y6ELr)#S z4o&Qe`I^T>-%}mMUiueKxXjgiSAsMLu{skYypJ}cHCCYKmS0g| zuitdw>3vqu!G4dKlY*RE<(8^CJlVG%^v3|3*#2lglufRwY5Kddk6DA4+-Q|PvLJ9} z5rrI`Kb+!B!ca(P8b%uY9h=cp!&9vKl7;46G6q9bifj9Eo0maN5e%;!j9)r=i%$Ws3D2$1)8Y+6sFHVR#az5Bni(8-AhhpYX?F;J zck^{*KpIH9Xn@5ONe05;EUfi_h8`aq-nasH@F~I#CbitkB8y7}AT}y$t3Q5T%7}$C z_4jHg2j`-)!~7%Us7KKFB_L*MY6^30lq?bh7TrT~cJmP(NiCb%L+4%Ek>gGxS&%Ht zhYtF%obGj+g+L09*mzG^i;EJLDkv(N4ThUOLZoY5)NwG8WHl~&#$;~m5Lb8p@)-$3 zx2MWlHQwRcxgmrjjv^Z-c7G_Q0R3AqvuY^!K-rf;@)jnp!(C|NN=|%RQGYnTwEXI4 zyH)e&z*oIv2Nz=?Md;L!KUOGtk?YwrszmEvSBbSYRUyyLqlR_UND1{mOCe0rfOF25_p&|uogv>jAFS29;m>E*ZlM<9Vk#<*^^ ztKTL6Hx=D_vNHQJU(?e1pTwv3m+5~ckm(lG;(6)6|4kTM7iVQ>D>_P7DcaZY9A~H- zFi@;LtAO`sTJk!)eB|Wf?V0KAeIaf*{huo_LGeagOQ-UkWbnS)PMXY)q?AzXxE`9> z_4BEvtzBD*i8nO*-{aO*Db}FP4u?3~a?r|cX2;?0V3p#$q*D()pCz(UOG&p}%9d*Z zx3$@)kbqTXbWk+NxbZj<6@n*!>nT4vzeN&5Z9BXCVYD^$anI~g`i{xm!R0Gk(xROS zZN;ZCJ3G(B?2PoWuZs9mc?=*Yi`w}*meSbP_rzFVr~MNTHZ;J9Wy`GUmjQ~lEg?Ve zHtTTTzn30*qg`Fs*5;_h^}s-VORdqxO>8{5QTMm6Enmi6#*wWGDjS8ont7I$>_S)Ks zl-@@bV39>PIzwBtv}feC`j65F5ky`UKkB*uyCY0$!nuE-(IZ*x8MQo&gG{YRV)bv` z9{R5d;T?8|9rWi8R1~;;7Tb1gnSf61_mLCK0M?lFZlUd zd?5>uz}u4Wzf?k}JM&tSpIdwQM=Mk+ks0hb!F0+*KWV*b!N|e7S#qwQcKKb?6epPN zdVh17%I5xLIxy%Ow^|pyhPLXkK7FG&6|}qjiUdjJ$Emk?jWaPG8ussZ$yFJ1m1w~5 z^o5vST3Vz<)T&!m=~Li2_TTbJ?=xtnc&u~sMRf1OZN_e3jE!`=W3XZClW}p3*Gyyfyz6aZ%TN%nEdkA9y#%3W>M$t zkN-VGWqwP?)`eKjME}qZB|k}0aRQ+^uG(x zqSFexY_oU%-(VMpC;lbd8^PI&--{@f1zWViN8~v-S{|QGUS{%i` zh#hn^c#8nSZ~v_EOvC5Lt7n+|x(~nXqbb>q4T81Pt?qR;wP!SgiTClV{M*#w2p$;p zWF1pSq5fNM?aSgtTN|A?MY{B7zCt*4YPd@Ay&n)pR%AW;f%3wsE#SwIL1!4|*{!UF zmzKEm1T)nO)kmmH@Hkn?=+w_CBASMb+xPppHH?k7q7V+kHzF6FYn)r1QSoRZ8_%YG z+|hPfRomF#{W{0CT%pdSdPo6cm{GilTx0J9Ll9wZ=84q{) zoBKTcRn661vZY!Aq5&xdx;>=azQHNOBRomRH+v!H{6h5UNJ=MHR8>t)*Xx>r?rv+` z!0Pxn>7CVQk^~jO-gmxPCku-Trl&L8OBL;W5~hdNlPQF3d0I0g*}#Z#PMUC8F^l4l z1IAQ|DyE$m*2lsLjug}Xc15|{^BY3!DB?~wd>;IK_@20-(**l#)Qc55=A;{vVgJY? z71WH%3ep*BZr^hm5bslL!ZmihzbVoaSJl^B42ae@NCsVgtTlNVf6T{ADgD;4si!QZ zGj(XT5X=+RUb%n6BaM-j|F~78c^xhSKZBr(;gXuT%zQN!pbP%Ei z)f7J({9wO)3r6)`!k*q81t5~9;~r1V9%W**a<|ab@@L{R!_l^lByF2&-!_Bw%KJ@t z2UaPHiTIcJ4pr&GW2Z778L2=<7ggN^>DYU;AUioa)VZI_MD1 zjx%qUjmr{;@r-(Y%TNHfFL3=7Yim_J5|n>#L}`0F{YhHXr;#x$qNwA^D6Hk2mqI5r z(D%a1*n~n3_SEcR;)up_*@@#pBNd8?Y$YiYu>QUJmBmRyn&mXyq&$Vqy`J@ey|`_K zrm$E?Z8alZKFO*A(fFs1PTXE>SLR`xHPS-uCfqBNHB^Ll@rqmebhtO1r+n|s|6aFP zjerK73>k5lqN#$e%q4sPcb->QAHFUhp0kosWpkeH)n~@@X_}yOw%^{6rjyoooMkw z5W3QFfx}rlp!9|`Gc$LkPT0;~EL-1E)NqZD2QJtQ0M7?R-ej1db6aC2Ohih}j@h!_ z{j~%uepX*3glT4e=?P#)2|@0KZh4Zd_&zkFC1xQX#OH9V8qcVuKkWib2YPeMi(7S` zm7Z39QJ;Vm*bF-K<3FaJOIPy1?Yqn+Hl~E_j%7gGc<4TW&Vk`=AwNy;vG%n$#E@a9 zhNc*fLN+`0dC}SB%T`lYHiebr=ZKrcyZzBe7S!!-CAv~|(X6>yxMYXi$v=>xd-T;6 z1%FkmWCsUx`V-QnfZTvXDJ_u%r?t@?^IT2?mx}7@x~}uhJ@hhLy%9Mb-DGjq z#s&9sQocCDf$&iID;6b;Z1-D#yBlQveDD*K#_}Jrkl@@4OOKK~_22d*<715< zOZ6P|c6Z0;F3J=Q9KH8vwgI5aSjwkvJwm$NbA7fI8LM|tjSnsUc|L7>?(gBB&rfw@ zAhm6K{BVzGJ4iqhI-X@@WNs0hWMTvz|DjVkV=v-RkDVF(HHWR3z6s4~y3jdQ>AdHV z;4Qxn0deWU)h-Q@pXVRlolV|y+RiG$JJBX0I;y?im)yRIJ7G|cPSI`eU55mp&s^_T z`irZQGJ2dlOV8EMIUJ$UNX+x~ylo=(41dX;>fTsOo6m{EFwGH&%?vER}U!j?Nn`f)MZT(zMdUuH+MX7>u3!>p;KA&yp#r6Mix8uZCHGrR1u zKv%z&S@5@B-kw|{utBWQd_5B^ohZ0)`ey+398SU3^@#Ma8JJl%>xbOn2s~D*Nwf5zO#~+Q9pt9^{2~6eyLB3GFV4^XCRIb^ zZ&1aPpNbw_?BpWWM8xBC&#L^6Sa z*9~S3thC1>)&CmBUMHSH^p-I^-Q?s~XF~+~3>9tKJAI#W?+lIlgMz!Y|5FpZn~aT& zz~QkO?QA^V+L*VUKDyG<(q09oWPsHf@~hHQ|NAHp&6nsRpW!iSq+$I(f+~1lI%@Md z!F2Y&0!FW&=eIgPxwVBd=+!;^NLqMXb#;x8HcpTD-HzGOL_7$Mp9%8KbBk2GmHb~( z*Do^-1ID@`TIVnFAcic$L2>u5>DACDeIg_Os9;RRyY|M+piL8ExmLwr5UC4=LV{TLo1+&o9LTLQ# zC-QcWr5OA**SBAab%Ir!>zmMguiSIPw5d>IH0k8>yxE+<6LcaLl>VZ!H3|K&`AK$> z=uW`* zi%Q9MR4(L7__GDof`*LhrSJU9q{{~bM#U}CuJkHQ9_hgW5mp-!JP%t$V5J0T_mw|& z#p0A9L+xt8CUvuIBR%plu|L3Kw9H+~Px0WRWEawA%EsBN{*;ZaU_DZ!awVq53?<%s z!{#_OePJ)k9-O(lc6K#0O3J_x%%~dhZVT)zeb07U>)X4BpVyRIT3hDz(x_wgN`T%j z@gmn^Qx3~ojW(|W9mq_mst|1IZXWJb4zRTc8U@eXWFL>C0zNLG{uk}hofjQUZ1#c= zh6oBY)$9VRhsP;2Mgs0pN5(!t>zd#jZstUntNHTy=@FY7IL3VGw7E4vAE2>;SN*zLo44Nk~k8dz1O~LWwDbZ%Ycx9FijwjoH_AVQLkCP z@!$kXYCvQ@JwF(|vbwf^e`^ikU-AqBE+&asqpIweIX1$xv*P4>>oH!83RkZXWjKqb z;+?-~6U`@S(}o-_&*~Zi(#rGwqUZ_&QnBb%uKJ+S=Ioj`p7f*&HT%r)7aVxM7#ST5 zXBt}t-dbLW`sV62cMTGygcY4V`@Rjp0)L^r<=%|NhX&YIfV*N-+`fMa3_3L@qf4X& zN+$gS1H=<6f7FGba7(6G4@PYs^vQ+KW-hh$)SmiDgKM;D)DYRat~d+c&W`xq|MARp z{UiKNWS=YS2_UHBQ&Yt5?u{G4AJDlyN7%qz24uf-QF`WcWDVVmmUFGXKfW+P%~EN5 zZFGUmqH+3g|D{r|f053C#!pLN`qe<`MdJ$5!p)a5`szRW@|liar6tY7XUoy0Q&%6`|CU%`)6<`R z{3vh#2z?Ro-C)$*UIA&0Rj5BbfJ){EQez0I<`z)lRmVjGXXQWzc4ZSgRB}Mi%fi<; zyGp0lb$7@WSbK*uiD{>+&DC5^F1c!r_b)mV zd&`DQTDXx7vlUW5S827sEEx)aMB?ch8k*V_M;h0xvGFn(*^+TVI#4<4S1&pYGJb?&)Se>C zlKGLqFgy<>TY@?Ky9&%7^m?q{#&8h)!yTcR{%|FQ3Wz-uoytdVCXf`P(RPp}Qt^ed zq{@`#aCPZL;tCY+l?72klH1pLKwEj#h#z+a?_{|>mqF1t*whLrU;aMYO@F#{SR&cb za813}{SSw6DJ@Z~JJAoRFBB;BkXX18NY<6Y_H5!%V@b1Llwsrl2i`)=L?>iK? z5_uV{m&FboB^A2DWiS%jxBTyS_6DPcbk|CKL;KkGvfynW*Eu3?#98>BUYE2p?bEPnf=aQ)+?UUE}+#% zx)+IOY-aBMJ-d=L!)|!^15-Hs^MJ25?#$`Iv4!xKcW1p4o0+yR04Fs!1CV3M77;rS z&*01quPe6YDC|kyN|&~E{15f2ZKh$fH*`=XN^LTA?DRB`(euD<*XsZtfAEFp=KD$s z@VZLbMqWP6C~6|iGLd798sT`)(g-s6*LbDpbsz0b_}Es9wG8(eCh~Ea{#9gY6?-w^ zE+Gk)>>wF-(+9LYd7S4x;(D0^hjJn@O{(JdZNBdRq4?9SvzW<}{B3rLZs~~+)7>d^50#pd!0=i=oQdDjYP1(&r|Ja3?o|iJB zWX(ByB9g%w6j_A!hPnn)_t(HXnlF>xo)!RIN)(pU@V zLF7*`9((qhT7e@(X6p59ne84&g2c4fcXPVL63rIz#Gcz}j z>tw?=<_RI+pRAK=vK$sR40Macn3Enl%CZc077e0VOi#{4NyJ=psbg0zyyT1Nq4%~| zJ>ocFS#fl8{nD6%WA~YjE~%o?u9q5T-5yss1mAw~{Bm-sbRm*_=Kq8U;A>OS#rTfI z5|vtZ3^Wop*Z3n99Oga9-=jev=Pt0ro`;+to$+$&E%<929Vbj>Z69uFz}VrDYOk3B zK`H0o_S{33+~SU77!>M)6M=oA)x(f~6kb=;4RosiLw4qCq6a@d;+P@N~?Z)cNIhy^Ax`6_nC=G}GA7F!8&J&xYre z+m1)S!3`{XmwV+C#ItLmRi_6pb8lf|V|9wWaK8djqoz<;GE+xI{Xpai6T+oFJp zqqd-T?ARowDG2zU!ecd{)NXa+tnUmqZJmJA!mf=eYZ2`7_-Z%p#sO3p3rTpixBVUi zXD=RyU-YFFF7$j*%Z^@1dtdZ>hhGP}YASqGPLMBE;iD|7Ooq@)eT%9;CXc6XE41vT zT_YGHc!%AmKf3jw6v4~W@Jlq%+5Dh}Zo?;`m>YjCx0jRcUUorzN4`>0tfm&N(>m=Tcxl$NxaIxOix87x!SGIcNp&ms@C@ zwKjMqXjI)0k*L!Rc;sJqzXBjz>-y|SVUl)mtogzpPR8lX4H;fa8W0Ukkt#9G>O*2l z5*u&8d5=n^8h0dTVGRU=Em!!Dt2InX9wwxC4k+&+W^$MBpF+GC9$j4vJ-!({|FZN* znypjj>nuUI3w8XyJY(btu& zC)c1oASk~>3FYRlLd2QnDI+{>#@A@PuAIY7F2>26?H&_*EC`D4eQD)>*nA)l-V1(Q zCl>RI;7>e$fU_|tvV+>16o%M?L_|sZN+p-%dOv~Fa}}A1Fqr)G6s{}QNeBB#3XiJf zPWEthw>Z0K!(H*4Y4vl$YgpgmAudyu{nYf#nJbSn=}X!-0TKnK76~S{V8%o;p{d9? zJbYQ`=4g!=a6bw6Nz z+*v=K1YgfyzlK;zkxz&8r7^RR?ELDy*xl}z(W~JNz1({e{o|B*f3LL+2J7m!1I!zf zfpO139TC7+;yvzdJz-pQKajp}e%ztye)&>2)vmYt1CN1(){y_A>rS<-R)cL%3Yl-} z_~W^czCJa4TPK71dUJ6(-UZ%5jlKE@0|9C7U*T@YHh43QldcBv4pbanUjK*(g9-+t zlPrXK{dKHh0?Nm>?%%|Q4kj~gGy^49&HWmtOOm>y%|})0+SU>V z$aeT`%frY_l1m4|2LCcX+Koj1j~C!+A8v27e){J8&c1b>w>6yfejI#>ACc;CGy#t7 zPZM=b1*&Xvt(}8RwOwIHzEjiF?WZ)K*HTMZNev3YWLFDJ)@_%Y8vmMP6?B>pM{YQQ z-Qi?we~=;M>X$FuBm7|F^>2C)`P4E0O_5CCT8?=07Vnml8E47rf%L26( ze(!hB2y|kxAZGpTpUD`wl5U6hw_Qi!TT}O^U>j{S#)irNil3KH`IkpkTem@nsQD%( zNA;U%t1+i{ni(}geO{WTLci*>iA|_-OqrapXef{u(}1&dxbVN@_4bz`M8b2y^BBh7 zyEw7YhoD)xFZ$~MWRRg>AaZI%Xo?q1JW4F&8b(j(cE08rW!~`Itd~F){q3sM;^1)Y zmr#y&ku&oaz(Q^ACSoJ zVIfDaIaXWn2#sJh^ucX9OB1N4j_qoUV}r1cbIyaV5&_S$~ie9_X}s&B+u3$&$qWG*~Dw3&Zz+_ zxk_D(aGcF+@0XJ3#Kpxk3=poPZx4A^Ze}^l(&6@ePB(P#k9^nri?effypFsEW#Lpv z=+-9~GKj#005k?BRvT+Gi;Fd5^lEUEL|)Nrjrn`+AMp0km#e_F8Shqw+t0f>21?&p zRDB_075EfIoJQ;96b67=QY&~e>pQb@XC{g98V0}MOjm`6D{&`=Ln1;`$gJuU`I*SK zPL$B23<1o=Sn(NV6w_^+ZR$=0YtS2g`FFhPyOvqX z0O=b}5MZl7FqQdy{Ve>xA{Fo!-4g>(7AOX-A%)|2^9hPd_+{_uYdrPf=q=M@=o=!G z!Zsr2yh$8QhgDQrJFH3`|G?co_qpsR3hdy2(eL&_d#%BM((QyD-8`G#rWsiL6-;Kb z)%WyReg8b>%{-e1vq^XPowLKFwF&_FNd2hbAU4 zmwp(4SMxG40a+X2Rk#!o{MrygUz#n1{tSZX+tB*LH0Ft9+pB6c0Xx>iY zI%}a}|3cpcG)(`ZwznRIF4Gas|Q6r6~A&;T>Ve6lOIdy_>aUes7Y8VRe7{ zdlmOz&thsIPDG9{9Xs0~9#B)G0a-KF|2e;P+`1Qm3EiFx#Rcp`96dK8WEOtc-1Ueq zo)RdS3F4ztN=-2ro6^q4Quo?w-C9b{1RY?Ea30~sBJF!y6_t4>o(fGU4}RtHps?j7 zO1Vtj>?|9#N^ToonBeo;cbTAD@1StmMkjOQA{LE=dS+e(3CvL?6=kd_3hUYY`ng>U z!1H$fU;Yzy*BOqPEw7dhz-%e?e{z~4wfB*-ai9|N)<5g*j#zc3Q5Vfu>n9-%jyzlK zi0+g2@dKx47sZc+W!+2J%4x6o^#T>e-EUP9sd&jjNgz#GbwMwKw&gOX-g!`l$da&g z3MZ5=)zQTaSwi3BpbQ&6Y=|Qe+T|$(!x4l{WL|AWo`9S2A>;WGYLb9xxTJW zx<-2tjj-u7wf9};gR}S9z8BQES;y~bio-&LM+4KW7haid%WB*+@psM6wj9(=AcpYY zxcwgpHK8OK>EjJ_UYuIfESo6kuH|iK7xUrtmp$^X6hs%rLE|p`7Jhb|RI&u9B?}y7 zx7V?pg5TMYVJ$WdniZc&DBU&BHlVZLIPRfF4j^Ug-%rLG22#$|2Z*2b&*J9FF5%tO z7b&F)(mE^rZNaRlV`7vP5ZKHX&(mw0N^v9)Zv2&3D^=I!K64Ad$G~8)!fwQP46l8a zy-kg7mT})hmqVznqjmkqzUqfC_?JQH1s$_WYx~iAtHyT$TW9{l1WP(lhkZqbTrq_T zO3VWF#7vA1qlB$KrD8gT3btDH399)ruh*B(XTkYr0jqL7Vo~AQr6KB$pwz#247f+A z+rEUewd$3&??=54eC=*~fHcx(RDS$shFoN_gpZ4BdKElV*WKKFn&Y!zZufIqx^w)W zS5i6wQ-%lRR#$rtgL{rW#xDv{jk)3*JaaQheElGOgD-tH__7#6d5JvIt0qc@HxRLd zh7;ie>Ru#lFWw4IraBhshfpK_P$^mcYh_~(`olR)Wvsle|@C*_U#8o4V7jl>4CWaH+oV`KOB$Z$J&p5?_`^G zYw~yx5L=^9>#B|0@tEl^!_Jw%f9)z$Q$YCIK95Dw{~5>YPtZ;!p;v4YA@mn)F!!Gco?)zkmOJU7N1$4>6RK^?A%$O(fK6s=Ix7pLkr; zbziFExqqcM82tr@n8s1j z3+Z;~D8Rw~_{JbR483F$J(Q8qq^?^chZI{sOVs*epP83Qy+(lUnBp{uugxc9Ao_xo zcUtRubBsBPI&Es#*o3Rf`6r(|2FLWbb@}>%T<{${kQ9$ChZ}n1rc;%X$S*jx0@Pu4 zLc+cJI_nDYiFBtziIz40R}ff1Xod=fs|?`OUY(CJQU~@*h_uUJ`V&90CFg zn4=z@hDQ|VGpgdE2bCM{rVO3w&|YP_AG@FDG-W>w^MiemjpP?xBrLd~<%Ez%73NJ2 zNMl?KFlnX8J47#2q?q(7Q}zfOyEM!iglN1AQRIuL(*_unRX%EN85qkHxeo~~^D+oq zT3T)S^zQtjyZQhn*-U%U$r$VS-)G)}$Md8HACs_guW+n~-tZO8vuRjO;vzpGYL)Q} zMPkOX7%Z7x^Z-E0rZ&^ueA!%zhFc1lb=!Kn2C~7kw`X`p2M<9X1VKA^!I4|<2L+?Z zQt1l;rjD`AMM=&MX#UN(HyawWw=Y1QM7BGTop+B}dXxFUHx*cdGl@7#a$1 z9bLFzj4OwTK&~*5?7da zgzdHS?n^0Z!5DgA<;{_JVL;|Aw#evP{5G8Qro2a0R!5&-dTmK}6||ncq7L7haOpYm z*e>6=K24R^D!c0`c#F0jI$qrJKu1rX(8}Cfzwz|`K#(O~5FN@KJN!N5N?g3WG2u#B zG4({4uMFE1|He7^37nnlwD+Ag4*7w-+oP80Xw{1N&$`VL7U7Jn$os?Sw9%d-I){pd5HT4qVg{KZIz(h0=G+Z8oq2G@WfF|CAneb)-h^JhDUrf>Y zz3K`xe3_#;Hc34;_^S7vf7)s>uk)ZzaS#G1E$hCLZ{G~Zng61S2c|T@)vP)cH=Fr)re%(TLYNE*X?}dlN=;1{ ziPU@&VHj14O|?`t*>~>TJ>T_A`8DsLNug{SRb;62?e8h>P6d6G>d789PTR|G^Lz~F z#~dJqMu_~}a;0nS9Q#bzPP*sx^IW%;scP|b-maz1b&u8*ot;Za>hH6?CElq0QElo_ zpd{N55dme#Lwb3~G_Px52mDnlF;vw%u*~6~G0|t)wY=WmiRb$`;rk_xfSbjFo!`Lk zSbek1?ut!Ds6_C0n|o#}7lHv^d9oVQZlUdLIeg{rsuQIyA54 zZi82ECBJQVmHD!xVy7n@0Jvfypbt+Q3>{Aki{!g(H*=&Jw@?-@3$UC=I192qF*Zi! zHj!xu>eGfBlT=KnpQvx4kZ7unS{2JM>)dYPOz}BIEU`koIO73liP)QauSz!~fvi*_ zsaWK-Ba^ckw?c2)`OWG~!2yKBMgcW%d!~o;&EKlptM*wjU})}EY2~AyhjVm5C0AQR zT|!S}q$BMcVcG^4E=XgzI9f(qi@qtS6bKK6KQL3M1|h_tF%G~`s3W}3Y`v{(+BFA& zCx4vF0}mPjFzGZ73Myj+S_elYYucHftl=cc0Nbvwmt9OVMTfCi?p({n8XXrW_jx(l z()P;f^j;fhA?gT){Rq)4E?uvBbg0&*JF}HV=#t;kgL8e{y5QMWBCrXNJ+8ArB9JGu zM1AOrhB2im;?7RfRwd`MsLzuW@GhhHp|R>i8j4{2JK6mL@exb-Fi_bDVBG^W8MS<% zC~z%I*W*%oMV4rzMw${^{s4aD0#X_Fcpsx{u1)Gnm}#nX+A%f}TOXQkZ_qa&J@?J` zeTUTsYpdz$&hVWT6QV?42#DjOK#rmBgs%8~QdR5%rI}Lt9=ytE&-MKY{oeH-@ED+qQ~B#zAQ(KIbVWeTg{jToNpG*{3I;&SdqK3*DMdHbnwXX|Z14)LcJ zAJe=Qw+7EucnH990zNF7*r+q3`6&2{-spqxlkGQ2h2bsUUJbG&$a~XIZ_O$VGF6cT zleTmbrMvu(&FUUPhUpA`5MD^ms6z{|!+eQdCDpky2eUopk9m=oJ@Qh}_5))t>@cu=^ZrhFf8qOEJGR{kkM>qHThg2b}AkLqc^MXGE%>OzQo3TxM$SFvA z`+tv#LHygC!*ZG(a6E>k+8Z$ks4YXFxo#`!EV1k{ca4&URu}*Xrt#zCmvcn)RaI`c zPlk2=W1!P7=T(@Lqfm5|;w+U`XK(n?gd{qQAXu?#beMane#@_9n&?DF>=FrC$%^3C zFFig{-oid%Ctg^dR}voF;?Nm6JJ#>lTXZN=Fh(tErM`e$O{UxE=(+h+`j=K)+jx0W zAlp>Mf~=)|c_UNrE_|dKn1It|iiKVn@MNp$&7VJj-0_+?hJN9Ru?P`5E?oQ?I46!t zlXHVu-E-Xu^`CDmHJm^u@8-m?U3;V!F0YFm+WMu^M@<{6`E74~7`g7WBa2V-oedr= zCiHFnEpiXVTO9=wrqg*jYqacPlmigL01m=0mHgWv(X8v;W-X7UvfnoBt|pMSas5LR z=%3(+TvJD1V`x>lWgp1{jRboK77L!W1m8plT91eLK`SdO#am?jcx&*rQFoG1HHe>m zWFeu{sxTrxRlQ1(e4gusEbiAX^*tQ7{*sfwz3n0IaU*pMX;XqAQUL5~4~XnFC1(?o z-D?`;2V(Q2H^}b3?q+pcxY>pEBhb_LE{7TQ>a=ab&E672CkD!%rr$6+QcM)}ORn|m zFySbkl%Yg%>sm1ZR;ZD!86x_b87u+3p^DV}Ej@Z2LBm_? z`a-(xzkJ}ET!czC{)lAK5-vtKl^Ds{DwkiThOov|q^ZbEu8*HCu9&i1Xs}KTVHCp2Kx56#0&;J1T*b*_im(Cyt+!eWTIou_LB!Qyd_*Zp6v0rM+oG14`) z?>tI&0EEevFg#&}u;W%<%z(wss?l~_*?>J+L9f4sDF%{&pfNNe|~clvG1O#H7wTR zt^2+C9g3%I9Nw^$<^_8^llQuGuYu^^N~Iu=T3SJJcOcb6*xRlmp+%@yEvlRITJjJi zcHul+noAh7+UT3e;2?0NAlFV{2{H=dWwkH(C&W*c;R-3w_r{uhV|Jwr57IqF|SHr4h-KB7P;<@A$7K`#|5Nyg8~xKecw<30NR+pcN{9mG+# zn1ytqRsurv%C0niN(D2IZLFl^mQsokwQtJuewa1fMii?Rm>JMPv7G_7L8Y*uvQ4uI z;&X*;sR%{*W6^bAh*jf}gd8@g7o>@#`uzN;Tq-WqY5MG?iV*m)~u|J&FzsDGiK5-OBf@g$S@goVJyzS5u!~ z=H-hKX5N+I^yO~w)5`~P@5A+$xtUqm$SbAkXNkJ-n?R*gb`6|JG+{Te#Eb*8`_8dK z6rYidzvu|P=)Y`h-&v~iuXP8a6#ew}4g+=>|9wv_e6E`iW$t*QimL~oT7#>`@{A3J z^z^`D_YmqZ)dLr8?v0E1j$czFf?A`qv&K4*DQ2(nnad0NIT*_`3f16jG&T=tFj?HG z*ahwR9LXCr_x>5gia^>PuByV%;3kJ<<0bn+t#a_AL4?wI^Wnqx%(}FF2UR!SCV3bH z2>|pi0 z!`|5`RJiLG3_9D#x!8;?sutlZG4iF4(F2HxqD^rkNWytUgr=1`qb^?v#w*do$Ptb` z1T{4ylLF5k+Uf(+#NL5e>w0fgz-1f4bFsfl2cscW-V41W3={J0oW+VxZ)zF1qUqS4 zzsn;XguY8O*q&L?j|>I1MRmnu9D~(fdhbHcJ1%%QgeJb)Zi``v&teQOdI;N94|LF$4hdzA;>UY!0 zJX?6yH=zP-2fD$H=VWyy-qJr`1goI!%eL4;w1{=qX@dD(UteO*rw$7X=O) z(A@Oik0)J+2me*Qo(o5F30##-=khYBg&L4T;R876m}QR_jD%Qf1Rkp!eyn?iM6%wv zRp_+4&UIFy^Hi4}k7Q^-fu~Xqo~(n|lO~dC1ve^G4$NfzeOg}jlFea^DAcR6^2N4w zv-mM(U=kzVky_(nzQ!Dv3UYJm#@-=diUcjJ`d@r>29v;flX~*dcBBo1d=s4I3IR%`52mW$SG_*~81MQxhMDQiylziJtw&f2 z7aA?G0}uHpk7SqMD`A=nyx!OUxQAn$BalbAK`cgS(S%H<-t*g6#m7DEnYg;`~(GR zo_;~m8?@@9@S6q zXDjhu#g|D1w9s@FFhlxM=_(Chw6@!BiC9XLhvq{}d!=v`a^<}!lg=;DDFU6U&qMCG zQk5d2Q|597q?y`f=W<<08}?2YDI_27UO38=W*0yG^vTamSVSF6z6T6R8*TkS;`-;B zkk8*mzElDYs}z+3%I|G#A;grKj?8w%2xu1CBMK2)Xn|smY+F+ZpWlL7PA?=iZInxl ztR2mvPyT{W4sbCSa+Ol3u`N_qS(@&l7S>v4?iKzD6X@3f0l-SpWvoJ*WOHxUHEW-< zV#N27&fplM$@f1tlL{vN2%V#2p~Fysx>j;By+t{_E8L8T-4?guig470nI`CO5q1v< zL{_u+NQ)P z=#VBJ#&-xLb9faK>HR7(M}TVc%h>$1E;Lj!QcKfp1@K9%6OuN@)J3iEbq}8fI|7n2 z872ry*6Kh}mHO+GoZ~+O`_dNK*#~MTJ z1dnA50_sTdN6%1A9!p-f{Xy_cfv7M;P@`0n0%?a#sax~-eCJJg#N zA%c2{b@@d+4g?{f!`Qq7NCPN#B6W?=K_|K}McAFSj=Li{SaePg%dKO#IORyePm$2x z0fO0o>ND*BH0zq-pBOpeO zlLpndY{D|2=O^6-uARfdqbbeXX&2U;?9@<>v?&Y_hVqKsO$C-w0dCW>G8&>z2gd@lkhU~{G$2k-BgxoWNs#UW9>5pg8ugB%JpEKx=_9mprz}qz zTUsZeFUUgbY%~MH>0*Zjd-hv)5s#Q*3G=PWoe(pZVDfl9kO?K)Yc|Yd@a`pltbaTPX3_ukVo`K~j8^dzDIjR4sIei&E%8O5oTw^C94w*5% zS?{!-HNg(7CKF^rZ1jPBYcEZ+9Xkx%BPL9x!$EtwY z@y97Nc=peo2~=9OIboWnh(fbE;Bv=chy>-@J7DW6^jWQa^0G#iBonC%YP+;I;6P<~ zV27ZJsiAzH!B3-jmyQvempbO=c4>zfN79dKY*9$Yhn1Wo8_B*|!HA}1dPvE?|1Rx| z`{x52&n5sZ)dD>9M=ev>Kga@1>L@&!>aFsmNb~9h$wQuGb^TK(I{qq{+EU2~}?-plab3t^#ZixQvKpZ1OBn!xxb95CB!c z!U@XPG{`|BYxE2VRhwNutPJ`ew11n3cuMieWkT>^$c697X@#$~vfdddhVWVBQSeVB zmO@V!@y#p1rvQ7|v^?ZG1<)~ovCZ;;Z{(1`L-H7wI|p8T4Q4~SQ^gw{!=JRc*UH?} zbX+!L8CGYxF@~YlCVDW79O0_;awP~GaNtwZs+gtnAC63aXAQM9z*6oBFSqP5tFXLf zSx9(mA%@9j$~~lr7|Y5fYzA3{1c-U?3HBcNONc!Dg<|d=@#S?(l5bBJCyu^mpnd>d z2Tvew=gh*GRo`T$h7a$hLe=cWi_^@uXDuYX@mTHS!`5!27DGA*Be1)1G&3YwfXpJ( zDcxz#^({~t39eCYD%n%5N-Xh$^uV}@`08~3-8pvb;H^ga!}}aI8Ini!^LK;7Kh+o! z6tW2M=su#P{@1RxJ7F?!&_4(H!laPCJYhKy8HEi zE~HJ?Vowg@7W(d{uz`E$-V2j31o!eUy*h=TSA(@k~{VCxTY^_T~kxQT8W0a0jC*!l^dy5=fVo#}pu4FAg?B{>E+L3@UCVJVcm=kA3X5`SO*RER_Ye5cQ>^}+33HkT0 zJA!##e0%EhlEIFAOBZvu1I zvR*q#&Nn;W)4bUdjeX!33-l}4ke3?@6+qB^pj>}>ONV9WpB<0Z!g?Y#jZegU~6YM*C$ zqv4^~ab+ocPt7^oH$za@YUSsbQ-|45-)@@_-NL4t3e$^uHAnR@e`yb=P%y0{8md#n zv51r{;FJ4Bn+3JMDx{9bg^F4h?rR~4``C56zZMowI8k)BQx(U!=YMRs~W_J@M z2IA~YsnMd6mUFnntQti?mvbaYp`&py!Z}uu@JFHp@#TOB9qtOLT`|4HGtY5NNnoff zCX-b6DqLps3?GL=?$8}Pbby#RNCA@$P@Old*wn~thPk-*+>J@rao^UaMvx;k4wIK< z`V#7P^0v>*<9X^KexA69{ek{dyvH6lgUkevrF5o!Bo_qb{$j6YwLFvw*EqJ;D6cU~%RA8dp>i(;pqK9pO)@YMD~=u0-dYx1?Rkal_;J9JBjxEPD0 za~kkPJZQ4TT6iT`>>T}Pw()n#p+&!|-Ccf6A0%WMiAgFZ9pA+9&Mfn)dG6*%BUNzi z953<=nkvE$AS(I zsj}(?1I4nSZQ9w28WoP>{JBP};Z*eJD+48K8KRd4LhE4X_OvO@7=pRyGogpDf0Sb}f`0{y&F@sL9kE-GI#|ltG#Jlg}1V?Du zF$P?>W-TdaVeDw8)Z8Ui}dU{1?F2m z>obt6wMe4NWLbppazx>qn!PTY4jiJ;&Mz_ITz@z?l6h?)6s#NlnTt<>mzY(^AK^^U|WNS3v=Oe_&|rrH@1%@uHKbSk_Vwyvg(#wPfai zJ7Ed_`J+Th$(h22zb6~@s@8(bx5(JzF_*Q$w!EiK@XXXVxs*-oEJ}jgnky$F!=+yo zK2f9oGMp+!)ZuNqxQwuejpCTN%>POmNjUxxpXU1IrF$Z@^#(e^*&Tl%O*h(D;R&{r z34^M@0EMIJ4P9w@!YM<9WH*)8Wm3}%_JFPxa#;E#FB!NN*`r9hQIV6h-Q)V0<8r#F zRNYVBr1;N|-#I4kfeG|6EZINmWoiGSJuW+cU}*{$d>KCT(Du155$m5iBOWb>Mpfd; zHsqgB!ERjS@OVZ9nP&TypfZwDM$rDlDkXKk`y5qviM$=4IdZlF|0gog|jV3hxfylzE(~-HkSUfMhMvq;pxgV z?RPT*zo{{fxa0w4$3~X96X)m+=5JvMxY-N#CG)aHYPuT8I4=+ongt5d5}Fs=D&r(v z5GRrv3aRZmw%xz+q4T>dT|KQro!u zKEW$=cML_6j#wy(?Unj`d5+V>rI6VKF-JnHXV|~Du01WX(;dBdkD4lJmo*GZYW!`y zyY!vddi%}ExYrd`?Po~p0)r_k&^*g_%iOs4|x7!Cr^?(nUdavJn&Jp3DuiirZ zcuIAVuauP<8YP;VC7Zh8T=7JXQ|`b77tH3Vq{W+sqVDk^M?z)sjjfR(jKapvCo8J` zo|0Q7W$yM(9EW@Cwc7fBL%q^IpY4^>(A8_ePoZM(38;Do+x?2%>+6PIfP~o^y+I4UM9KC@$JN1gAaeQ3Nz&H5292r^qB@9GMigJBm!Y=bmEe(6iqYz^ zgl!?4UW-5p)u!3E7-}9QF+OP+Ok0JS9^@o}?sDkN)&o9}wdB+J?Ln?0KFODe*=(>5yZ4ItU^RU+XZIh^p+!{Ukv)j5uBT0M|vSk~70qHk#F zW=B|q@@6{3t{{&ole@xul4&e3STsx%#@@6VoN4_(0CGW%zDYf<$%%=Kr~_jYi|KvI zysYe=P;P~FB}wT^u3Wx?02+;EPQGbOb`6x{dC&zaH=_(XaUFwVM5#51lt4s}8iSFB znm3_5Ie>9YX;F-OVs|NU7i?MN%Dd~oG3e)_M`X`m+n+n!4|My7gUYnWI_o*hsjkU; z<}FWvA#os<6yB>{5+}_8?D~99&}`Ou;DP(mO4Hfi0u8Z>TsBz}tAw{d{%%ekIYt}{ zbY1iECqKsT|Hi-NssFhV&EW7f%us(%IhNFaEdx4VW?* z%DVb7D{E`qTwbL;F^NDD4P%sRH%{W1UVnhnifT0^@GX0f?+XX@wYR;|Xt?Xm*lW4x zJuJMov)w_t-h*mbDOCahOro>?j^aH|rO5qY^d2SOw9=C(_LA%qZ*dyqPEnXQV4%|F zHfB3IE@u}uX(`Z@mE5FVtr;6~{=8LuQ}P<_l-v;yU|hYm*p6D{uTK|99P5nu!5G^w zFqRX}F$_;lO>yYZ5|=JrVc_Vpk|b|5>h=5lg}?k`OioTQ*_#i3*9W0U~2$N#v?g14ZkJU_f{Noz`AZq`0=C1G-k$Jqk*I9v&y@d-bY=8#g}@Vz zNYvPKm+9>h5+Mutig8nYBpJ>^8)JI_jP+GiV%>d|DJiy2EWpQ-p`?b}6g*p9VTkcR^4eEK50Zu(eC&*IcQH(4gFSAiYzRXB@coLsF{dFQ(xCys|)zI-Vo*ibsL zc|`-l^ZDC<xV(WR5RqkyXJWJ+fLG)n&RT-fQ^2PqRPs1zsu?ueh1Ij zXj$dbxw9lm!r%K_ez$ke@PTG7!0|7{Tg$# zb5z67l>i;HjZ^;VNylca((Jr;uD>aT0M=NiT9-G(r1^lgwRNPF)T%Yh-it;Vg)Vpk znL*cOZ@>=fNVyO8mT~UCMD9u)W>DuMop=`Xm#Yney(R>kvHvc`^F}x(ppo+{DE4S< zZ^)5==~OBE+x*c?0tzgIx7cyDYXq3{tD?aWgk(63OXQX5d=^VnCCDZPxz9f^KhM2) zpW?OG&N3WED5dQ#nkbUQq70ASbr*l?PklebL^9EuqtjjC7k=U|@yoyXuTccN z&aCv==qDg5be1o3=F>le4mHQ`dX#GO04hm%>?=ON+)O*qdpL59IEvZsbU1tFEQ4Xh z%-jJ7|4m3#f>JTb|J&YsM#+_2XM$fuJd-}l7rblO1{y$jvmL#L63L;oa@0tq%utjl zX(VyvXO3pi{@Gpaj#evCly)d-BvFtBL@4blF zA7Ng+mstfg*#w&8yXO>;nN^wjOxzpSeD}Kv$H`NtP_NZ7)U1OsYEgSs=SnC6N}=H` z&^tQkcK28JBM$;{#JNvr&YVRY#RxRtAdh1UyvgGM%xi?D>_fii4_+W5^#Wv)^u_)H zqK_10u;^i(LVz*P5}B%!pu78Hz+=;lrs2-g^Z=;8v!y><0U(*5eu744YLmXNQj&~E zbhYKGQ-YaxQ@~sUnZ;rgl8%pt2?HdONLgGi5-?7{i30don5iul8c+v?&lvXY+m8z~ zGkE5i1Gx3pTP$m^fCTXa$VB4J-|==l`{GM@{DFs1YYbt2ZWecc?Dufur6=+3pZhJW z8!2PMu)xfckF}%2c;oJkxX_9*b$SL~)IqD;M(@%hLgt|qmQXF1uzk}cc5j))c(Vd7 zfnyiDm}y7oL;^yT@bY7K;pp8T1w; zu}MdvK|ew`OdL|hzzG+K;{+Gy=RgQSqtQSd_dtoswi}l>z4wMrfX6XNKtMRLwQ{*k zPDdRxQ3l{Lda@#{*8S*=@+13;{2%6%fKoz;M1=zeRm>$MRb^_DGnh74z@Jjy z{UYx8!T*ArZhk$+nj!YA_Ed{;#Bt-Asv_DD0-?_k`X0(5Mb&4@U5`1=E=8DLiqS~~ zVnNY~Lp=M%zr^u}{~5%W*m3=h=*cQh9X|%f7=Gu!{+1?5Nl89c-9N_c+yY*F@el|o z>dhu1J@r>;P)-ZZE*`mk#2kJ3oxYi_>791PdyN zNDW6`dI3TR{K1DmjNwK#E&1`ZnWo$8;rzL?ICbg-8qE>-VE_R&jfZGj@7arUXtmmy zoScA=5;(h1OG>u~vTL z^iV|tqW?&p3!^rBFC+&D)7buH+It63qDcUP091avc>pd;s?*Hl&Rv&=8e6Kt62707 z3VXc>WzC&0KtOG^fWZ!OkW6_9gdhw5gdBvC$MJM9_+a7hp>M4cY)O^X!vcE zeFlbDB^Eso5CThG)nMLfb#eNo2XX4@FW}PjQ4k_gE(M4ZAQ2&s9X^DxT*XiS)CaJB z%>)3zons+{M3N+!oxO+y2cOmahh;q!HFk`I#L1J#F)}g^$`}%!pj39|0O-)FQLib3 zm#F5VUay;B1U6zwLQ;butZ^1nB8n3nn>wN0|GM_PoN}T;ExI9q#@lnw;W4VfLgwC^ zKPCc#=9+yjH@5Z0~`Cs6`GY4?X>uyoIh7f4CJ1CdRVAKQW9B+NgcVWwh9r%Mk{J#+Q2$;vQ zecLYZL;$^cJo54XiqFpe8k%FPvF+w}V#9`w7+$jjG$?}#f(s{}1_5y4 zgeNdMK8kf~Hy|cuy!`SJ2zaQ5AwKd4zl&<6Y)eOg&KASO{$0HM@?jh~dK8nBt3jxT zB#QKSD*?(FPE4Id5R?#>Rd4^Gc)H!~U~*#I`3?@w2Tfy=7?k@XAhs*+?AfzuciZrF z$yLomNK1eKkVvUJ?z3(#V+@Qi-4&Q!97GeX=8eE0LbR;^ou|MRzgAD{pH=kQOT{5U4YM=^EkD7J6jhIO0PWBulJ5L}>p z@^Q>{j$!7xd%=8)hzo>_f-_)g?jp)Q!R9U7P_0(M1w-Q1(d9lUD`E4d>+rw-Z@&TG zXZE})CCUTP@psgV@WNMLz=4AYP%2kZtJQ5H3WS0(hUp8_h~o(3;}c*|*Ku-UES>SE zYuKwM#^L+Eo|tQP|K)J-Ipq?>#=mjGapvrKNFgyiI%0QMlfVU3QqsECI!t56KyVJv z^O1mD~g4D%VRBK6kZtgL1 zb)O8qSZ4O3c`Wjsfo>Q;UU7fJt0`B%3SjsjpxjHI2r$pYpQ+nFhzNuy3A`|Xxdl-a zBk+}*DaPlJx{OY}kPJ|Kv~LLm&P_jE{|C^{O=xQlQ)IfhPi0DdBkm zJkNt)_VDg^|1jS6wzuP-KK+k4e{mK^jvm4I#3Y(SLm<9H5Gnvnxl)Da`-)miN_5&S zbXu1H33R$WREE~#=#eRaE@5Uq{9k&=Kz*o=3=xf-OQb&oMMnvGeokyZhr(_%C=2sYlg z3rHeQ1!g=Y``m#AnzC?Sq%+}2Jx{R;eYF5*zzGMp=23E?5}5|0G+-w;p6POV4k0u| z;Tp-+p9~~Y)ln0Lyy?#Hmu45Gkj0B4<~Z`-yFzxK=j5&!+q{u1B$w(r2`=qLa+w?5_xd=`P1 zOYi~@p%;KqU~Fsx@A;7*$9sO{$8hG%IXwTuvp93=IL@9ut!T(ZfLeWx;{Nwbs8s7% zy=EhJY+aArZoC2Ik~&6%@H2~mbJgs`xlmmGQG#>R(|GW~hj8-bX*7n0P^;DSPN|e| zVQ~RVOG_9U8b+y7R{axF!qY3;4-~+r(~Hoo*U+fdEyTCm>jKbO`2oSc;<`^AQ|Ue+ zz>#A|Ah^Kjs!`3Zqmi4=dxR~SIijYEsDRQx_j9i>=%GRm7uPMT8uW>eiVG^OrQv)QqmYo3C z5C>p+9oVpOqpJ0Ci5`y;#fcg=Qi{NshjLf~p#+}iVdKUP*tBVb zJ{RRSyOj#YJPW8XA&BjZw;5ys!Ff7PD@hQ=G0vSki-#V51kXPAyi)#ZO}FY&Bt4GV z*=fXFpxJDqR4Q8llxI+DjGBdgdYsA()(8rG81&=a{4);FJ;d3<1hg=q+J1?a+hr0Jsp!6A;1)9wb~64_EnJ zW0UY?fJI1O$hh-)o8&0J`QPZS!KbK7gIk)Bs^!_)@!k8IIacjf7{w=f>alBE1h@ts zfJ5kEIrN=6>~inPJQo~XQp@e$?sgCaK0Hqi_e>HF5~vc3Y8?;|g23~bQ!Z2sYtQcM z@ni4(Vf@`cd;&N3x>&nrEyA#@fF6*D;|Ng{!1oxsy&g(I0M82`I0t1cWzp4k-1nI- z5t+I)(G5M?v6O1@Dz`8_rzBR&f8^*awW`lqqStFs3ChdT<%w^|sY47XU)N%B>T}(_) zf)QmXgq^yp-k&&iOf!JfgaCxlEGIxN@t3;bZYYqgo#(|cM5``Rfh;0WX`pi7k+BAD z7;2SXX8#9(IB~y~fJ>1X`8}912!=5&1-FU*-w#^fS5vO40XTE^ED_);bLxz3cC*Lo ziliADIbc+{=`9cZ0Np4;)CHDk8~6pPTz{Hid)>c+9i0e+E(K-ha`bH&>sNeJyd@ zhc$7B$?j)ZhVov4Om}|?i6FySp?eF6sZ1$DZ*xyHHJ(Is1G?+hdJ9m=T0*ZK7#Fw} z9zc?Ik^v_1XYlzVO%mlN$q;iv(}ZD^Bw&;wih7Vz!t)te;_KKiQ7$c0F0sna3lQ7? zPQer97K2gj+qW0BdL4iC$NwD{XD(vxnza}m8$+dBhUbT>DJkkIQV|lN)9t8A0rS9o z2H#^Kl*02o+kt1#QSXAr@1<02MFJcm;+Q&d0x!MvA`TpQ77L4u7#NwIbFqjClsi_9HYfA<0%GEbN zE)KvcLk)s*y2%yu+!db02*MD|^B|-^r_}|c9+=1UFiT-kb&{y*G9W53q@o1{>PQlW zAGmJIX8hW({xbgJul^P}eMo&D~g; z-TCvN4gJ0(j=>m1k|gN#x?qf=T&X}(6_rvZRZf5~NJc@K$_*rmW)e2I1j*6sajcr0 z#0P)j=kV7b`+H0sJ%)CtgR^IWMx%-0;bBy3H3UHb-}h`CTS@_Nf&>W&0a~ptVn2Z& zcsALl2sI^UXP2l6c^p1;1gB1)MXTLHxm-ca1*XrP1Lta<;ON*mDwP`ifLSH7 zr9Og8iHuST=6Tq#ZY^%wzYl~kFiO$w_CN@=%AdYL=Ku%+(Y12vz;~55pyK~Hit+4o z&*9Rg1#H~35v5AShDUJf=O)&-DRiWU%H0(WX^0uw#ko${vJ@8psN|rl6$2GtW|OLY z>&*uB!YaR!%dv^M(}Xo-FVnkVs~@s|ZMy%b>(%+J6=o%3u#fT$F$&i#05O(S2*;{A z$*e3|N@m(c^A|RWV|ZSGUerOS8^QAfgrTooKdz?FP$&)nCM5(R@a*?!qD;*yoFp-- zl?s0PeLsQEe*R9}|D`Wsd}16kGc&k&@d7BNs8;K!)oQ5KYA9DKnstYO3T+U4fJX^h zZABZ_>qUsVUCb}c;pE9vc=_-VT$q^wkwCdpLcLx`k|^(_Qmvz0slfL__yGg+Jk>oX zQ$-@Ssm38dDV4DGy3N?TXE!|0*94t0013}ynNY#a{sWre!)XFCzcV}o&wcd;9GyCW zAPli#{aSd0fOqnWtlN^CxLNDq9O9YT*gr(5NlS0E)P1A~U zHHn&SM^&{Ty*V6|QM}`A-+_tIQQUdwUEo5X(P$uwd$>3^hl?|_stZg=u)u@wG39bo z2F5(QGfdCSAnHaqdGZ7Hg;Di+Qn~BI zaib|qZ<`bx^?Ds!w`{?tjqA{8Hgpao)|q!7X8s%{R2$P3cONT)3oI^P!lREriC(XV zJ=b5a<`C+*o;u0f%dAn zGTcPqdGP%pv-1N^PC`hVw)X;M2#Hh}drFyYo6d(YMpRQ#t~BVn_HuB>U&_IRp`7PP zO1Xq!L>C98X&}`fomGD35hRI3$W*RKNU2JI5^%AF%jE(3-26cmEx{qBW~zaWHIo%Wv#os`lSjKG$T%!HMJVivFB;(~x$^nqVOSdxg7 z9@;IUhE;gl2*6l=nF$Fb)l9$Abc?Bikq`okQ$>;7IuB)FJ>CI5BgxIidJ=UyV3*V;*!T_~; z6;T{3x^BiS>d{qxA%%tiW-q5u9ugPeLL!bLJn{4aJpaOr0Dz4f)`58*{IFm7&HXZ% z0LXN%pzHbzA>hH+*Thr+OddvBvXDVWz=*5-X~NIs65NEQ>>KwbxMH8O%I}`P)3~Iv z`k4k>;gW zZI?>=$P!_deOjvYOYGpA2ua$*(g&8FhK*Od$o0V>rLT_BC$)dw<5a>=0n zhQT2DbeWJj@uD8&A-I4a_^5;dRS#OX~qUP4lYdCdIZ{y2XfVdoF}K^dfw;3uH0+k5CjZX)>qpo z*!Nw7Du8^d)#<#eQLkq%isyT(qbwHMUGI011$A-)&Z%48c&aARP)XqV9y+bAWfCgU z64K2`DZ9xH7>~dh0`5I<|{MR0aZgk)=BoXW`pFjL; z7PkMKY)dCq$)9p1M61<7uNR|HZ=hB!!wVKDlfNFi5^$ zqj2p)0Dyd=+wJ|D%l*fb1c^q``9T0g5%_=>%E71LToR;>Bc?sm4}4r&Y9WeaNI8UR zwF-}UP~-tb{jb-clMjO8UB{H0&Lm19_!bw0RzFp zr9~{Y+E`pr$;i0dLA727V?G2=;Q2nhzy~8LRAH1N3f~yCa04wbO~ZclR5JM)iF3T549Iyi~x}L0{XN38O3treWz@f zCOtU>XPMWsOUQ&6LUH_=&&pgUnR(q(+1YAU9?O!#-Y+wK$td+@kW80-f95vlKC90l zTy+DmFgJT(bbNfV)9E(KnzK$4Ac`aSo{v(fDXrqz_Q>aD`C0DSaDY&PlJ5hxDwbL; zT$q_d948nWYO1)LQe6X9&|E^ycjXgMYGF_YP(jhC*RXZVW>CU#?!tNSm_taRW(Y!} z(X88XV5&UGKnX=R?!luJVOWCaF;K$b1s+O%fNHG<-)Hcc2j+QtdX1Xm%eg=tE4MN5 z0(*YdY8BO5O7fwgDg?|DTbjk&uly+oqgroC9OH?np2ibTK7}|=uxr;2R4Nrz>s9zc zV7vO%7nxpJ{k<&BQ!tNZc78w&cVUEqFg2yeR5FMjI${Vj44J4g0@=0QulTNk$=`ps z8!yQ;6LFY4gKGm*~z#d+&8zCYw{J=-xd&*7INkJ}nCJf*Z z@SI3H5geXNtKtGZh(zFf7-}>ydvOkD&YeT2+r#k45K6ue!HA+}mJ&QtH;NJpK>*KT zo3*a31`JgyW$f9#6Qk!xaPHiBTv}QJpmtu5d7y-VFb0oOg&L$Dntnqu2!p^6ecMMM z1wjy~@m+?ZOOg~{9|m4#T~I<$Yt&IGg)kKhQ@zNWF1Mw|B>#-^+o`~Dj3=KyfIIKH z4{;n}&+eTlm&zC!YQhi0tn!%+}n-4IGuK1_ZCoPTxtvtRhWUbt0pnjY~t+M zvsh}i5GNdz5X(};s0Yf_b4D2mqwr`76cSt@2z;yjYS5@s6wgbOlIH#gzK=?^Vm&1| z%J1wqeb?M38Z#s$0&yJS@h1-8Gymf=0Abj+eJe^~2}2{peacUX%ADu3|5?{xtx+?N zkopW13j6~oM4Z|EDam)s31r5g4@jOl&+K{TCj`6C2_<$d5QQwuKygj^SE?s{p#k$W z@=|6M-%LEth9FE0i*@oZ%P|qV&0AXNiZ^h1+~e136bJxvEewFXICJ4;KMWrLnfMOH z?2}#;LI~oxhh9%*&#RRRdc6n&!n*yQWPJtzNU`EB(WTjOJY8Cw7$3vj;vz22&7u=^ zF)}=aN~we(2oxBHP&MJzStRaPQ3g=LAgJaRkWx(o+Ik%pmzFTUu!vr_hfb#h>M<~? z5PnoEKO+p35qOmK^$HL@!;e6X5+^Xk8A@4#Qh;))VyVjPf|M(*k8J$!F4{Pb@WfL} z`Gp|ZwQC#7r4U2ILnvuRp-jwc61U4LzuGAC%1=ECM$Bk3X*&Yl8G|WPPHKz?yUn>& zT&9ZA57(7K+5serStvV+dQizOzjo9i5k-q&!a>qcr7pNL_izwLfb+cr#5Djb$+8K( zuSKqf0U$s7Gau;v{)hkYKh!F<2PVeHCqNWUmbow<^B{;o6vvpIn}_FlsxgGAjx&!k zrO-0<1kBCKD8CKZ(#s?vF;uGq02byK5k(P(n?q_c_H zoLg#xl72?{iAOD?uWAvXY3UD|r{A<2YkmkSs5bIyckfq}{#f6LSPq2ct_SnjFiiD% z;LiI@IFd*ZPh|QVqy|eZcPxW2Dua|h_d5?jj90#+uLL2!>}Or8W+3^izw%3`KKQG@ z{;nVVz8|=EVq&b}UJzRr^nJzRlL&OXT|_ZQA{0%RrxQugI}2eZnP?k0RI3$G>Op975zk{_22tpQ_Yx9Bs)fi{ z36ql(xOm|r&R>|uQfmp#W)t;V9i>vBarEvbBA`qQ!SXm&zC#R>Y$KQl?tH@ZHj1UitHnRqL_x9+*!RwAodDv$yJVQKQE= z0M9Bk=Uk68Cj)T{ZrC8`%0QZY(lM|6g!D5N4@^{2okS!^|2H8~qGmLxN`m&X@;wL+ z*ozE?IeW;uAzw>#Q2u?+l^!hD)Bpg8KlRB^96tQ=OYiyh|NNW($G#i(>^C^`%*Aso zE@KRpN(Gfl82~}I+e5q4#r*stdc7`6VHxF01*KAeBq0bx-|pb{TV=Xi_#VUf#26Nr zmM}LvhjzP*-e`nX6JrQUq1FM77a*!)V98gekI27^}qUvnl%-AdJjp%cH1^0|%eSeP4b6Gc(heT)i5jLqn)k zD~ee-@Ut}Bl=SWVMy%_v|219`Ar#b0cYcqU#jdIb6vVpWw)qNxv}3+gg%(m+P=*b^ z+#0)6?&~AkG*^gFz#530i=Rj0xeZvz4zN*wrV^GS$*oNxZN7**q&6u7vFv*-_W{rx zl?+)Az`e2k_0G!+S>|zO!CbQt07^?D0PTYZ54`-oAAj#JzW)P1_l}=@|NDNSS*wp- z>G_vRA1_R;z>Q3yY8%P1k7D5d@)%@tN9TO!pn2CIk;R8Yl+==I0kN zGc$v3r-SkFQPe6mgkhkPS;mufl;2)iJ?)rzs;sBXuC9rjVW^Zk$uq4elvyJ}2(k27 zTq`kihFO{b$1vNu#y#Efvx+Z-#O%dc-23JG@$B<2001^_*oa1>fl^q)$jAr+-%~vT zQYz|w0vq$2grE7}9=|hCgi@+mkpsK4rpm7jhDT_s{FG>iCbh~2{_Em6jO63{fy(X} zfeb5|P{TWHZfKBdtuUUuf0~eft8`{r4kRMUf`69T^)p|kZ*SVy+`st0o`#^lvo>FP zEyO($4m}C%nWvsS@mGKG(a)7?&C^4}!{b9k&9VF&MGm_SC(%a;QC)GhDn^Ef(X7|O zJRj{=2lI;yXti44QZ2k7@GYEEmF*aO&qJwP0$~*GRu^;g3+N?^65RI~JWKnXE-2z2 zhv{&mL{X4wFp|Q)n08pIv*1K0&4^8&sgJSysy;9ESt+KC*xJ4TfrM^t&J4s*gruEz z7mq#u6#n&#U&PTPQ)o2m7#$l$qh3d&QOC&e5W;e3OK-~cN5;u;l^@UmD?)7huTg%g zLl{WF_o z_uc))KLXHm^ua7I*CWV3$AIUTlg!^|lTxnhYYE%Hsbw@RYGDLG5dJP-AHfJVIm<`MLCxX|fzF*i4da=C&q zRCMCX?Pe&KN(h4hL$x~QmoA~*YU5P*6spx4Mn^_atCkT2K9;kcrll5uB_YX+0pPgF zrSx~XS&5J!BD;%lyVGU){7m*aNn(8U#ltx8+yNXtat!5i1#8!>fgkv&S1PDAYN%JM zN=YTso!=}EXa6yTp2i3m?;q?KlYV}4+HpbZ~M---|#)(_x<0!XV31v<0Hcj0o^KW z@?)BvM(s$pF+f{%HNq(@g(#Ooy^B$FI$a3PF~78gZo7jpEFla$R4NsOr4VC*hfcYI zOG`^wTwKKB;v#C*I>yIGQLk3u`Rei!0>uoJiQ7|2D{00p9E=Pzk}o4!^j>a+mjTKc zL(*=yF*S7(Pdxn;rlyV~2tuq{y&3>e2}4wBRn%%VlmZ`Avla=?RYsa%pb^L`zfl~U z1S6{QL5L#ybUXc&QB6GubH|PHo7Uk?8#m#(g9kuJU_blo6_dwI!8@YQyBeIa&+h*A zb?O=rV$qQKoIv{bgO%SrwnC{fVk;SdS85Ef%xiseEe(KsP$nNBpxmGyfB?WH03m?t zJ$K)E@t(Wyd~{-Ba(v&ueY^MHeA|tCuHUt1+qUc0R4V0A4Qh1f$hkLw+VZ|pegLRe zDj(Xla5N>L6& zgkgYMy@pCyQq>8-D!-x$LmK-#hw8fj`EnoC6$)GKGeDnQxepk;^Xr4a;-w|*y1D4)ZKugTqma9NPMJ~0JjvFf$k1?ypp-h|4klBc})#K{vd%gB;Zg+prem*5kLt*Fg<<# z!d-XWId#`vci!XsL2cKrT^rV{U9k3&j{pri;!0iYE4 zs*k^3LA6}g2}X59X0Qe&G##`%K>3ZN*GVhCReA>MQFv4v2OSb*YW>dVW|Ut`)azl_ zj_oLwLNyd2M->2<_n+y{1-+?$3}MS*s*cTmMuH>-+asdT|2gKTEAiasPFsC3=DP0 zVFQC}*+CG%^F5TpGMbGBgb?U-BJ_G4^!ymzs0T(F;<$q(kvP?AA-FIN-w#w-t9Dk)(ABUbqdG0LL>OgZJZ zAS#(tewRoC5^sL*ABbRfab0?9yyQv)Nr=u^RIz&EyJ@D!r1+e53>!o~S{$W9kglpu-| zbh};5UYrFX1ilx5GJTQ_1<=ax zmiq`L7U<);&MPTD04yvl;wS(8kKs#Sx({)jfPq>UeNb62FL@lmU|c{ymAc6jkQKdX z!>_1Nn`W*BUuI;T*kLc0{z3#Zv>2PWT**{Mg5uoS?>8DWT5%1*Ng`+@LD&Ni)aXWdUwjrZqzfC=ZQR4B@&5Y6T=IFHe4chK&3&|YfU5mJz9C~2>& zdIH*=rOXK$Uj2njmolzo5QLC0(~c8>z#<%zB!Q4Zlc)GvzM7J_j{xbO|9?SXjhRvx(pP-QU4) z{HNbU6h-#C4P}>6XzGj>Be|U#$SS`wNEALz$HHgMdl}{D(kTIIV`*XGi~`QgK{qiw zsOC=`?8LH6LCUKMk#1~e7ta?!2eAeX@({>n{>B=Y*Rlb~T&DrAx!wUq>KzzkU_68n z%CeRofBez&k3atCfq(kMC+@1%>Wy1&x#haeTQ*;J<4w2j+p%N&rp=o+jFih|udlJh zd1@5EP?-_Rk?;U@=Al-tK#UBd+l$a?chPAtq0{Z=CdsOWmn0FS-C;HCl`x2Dts|hgq-}%z?k0SVsiklP{u$gL$g`O;^Gn{H;GNB)Jsyp5=)Q4-MoyF=0gG3&8N=e{O<-S zy!&H*_nJrozEWAv7yzkv5F;(8w2;jm_y9^vOP5Ob-FNTF`|iVI_~=LfW$oIv<9qhp zuzAOh9Xt2ke9H|xw{2asdiAOX&21a5wNDdkTusRp6kI9=Er%gwvkn1?PP?NZ#&Hjw zP8X0;v;L@rmd8>H6Y4fx^<8PaYg>a28HbSYm>SO6S0OMcKG9!xw2K;pV}6_QC(?eW zQGU1FXOBxO|K-Yku2?tODRF{QoH%(3Bg4b^o4@)?{Ka4YE&la$pM&T53adeaWfdPt za|HHW^syx(0m-X+?sM|VKSuhM9{>b6Bv*q{<$&w1YWxh1S{0!mprZL8eVv05j-_?& zMyu62hO`P`HZHTK-5uMdtQzDAq+rp0cR&9cfNxF%;L36VRUS z1`w)h+JX!C%@FlEw-j96ZUoK~w0k{>BmpH1ekrhY*#rc!5VpoFARrPB!YG89dQ7Fo z{2Q@k9Wp!XkLr=zQmU>+Rj$ik!9mJTDan-k+~XrOb^9>@<=3bDxr)nj{qnQ3vzT94 zz`y_T_u@T2{6qMgzyCNMeBjGywOYEbL*-EH_vq#!##mo>AfWL3E-s%k=9KgFJ>=*^ z|CwVo|9d(IARO?Oo7uNG4WjPT%-kGAlAuwqXN*W%)ktfaQh*|@02ulw^Cs>*P8&_q z-x*`z=E~r_W^`dt4f2~N1h`VkTSRvW3Z%IMla4o)1>+%v`v2;YBS+30IdbHy0PY1) zz3sN!H?Lp6e&gQ#H($SN=Z>vAckWnKDurHVPN5)>&ULn~za9o+7EDm`0qLVuE-Ajh zC_<~yJ;tTMF}V>hu{%De%Peen<; zdHivF>E3&=wA4biTDE0PLoh;}euKVvIk0R#;G5n9xSU)r zcVOVh=7Jjwynr+-TLMse^wCF7Kl(*}Cd*dy;Z`{9k z)B5!rhJ4LQ#x(*>jT&=z3C-f;ECfa=Xb|dhAV(}XI;{@6Q4h&dY~66rS8!z^Qst*0 z5L5$FG#YV`xXC}^cKo4#h=+;$0f2baD!)Pbxyo_qqSTx4r>z<#OHupp1aQ9W0wnTw1zRe(0eGrvOwx{_&4jM@PrTwr$(G zVe{tew!h)cZ{2gyAAJp=i3qZ9!{J*g@eyOk4GPV42O>#LbY0f z@B8V5C7n01%}xUj#rOI>hwS(=4M1|{SO7qx`5)ZRT$rCzE!f>I!g3j0^d}4L3=05J z)QymOp&rt5o&g!SjP*wO6J!lStY33~@@v1(41GHpfV_OI-hpw|0w|+UzIbuw)WwT4 zhaP$4kw^aFAO5a3F)=y0Wy|J`8#Zj*^47P#eebsGt{WR4AE{)f9Su-^^SeZ*JBA+y z@B$yDIDnKuuiHbM#8_Hd(&a!Oj4}ki*9V?)cYd4wcg~!$bZ4W4TAj5Se~t2^Hv3L9 zwf^*r`jy{}@!d|x{3tCq5oqDbAmC1nOq`M9=KG_#i}TZ6P!KSW;SIOnhVOpoI{-+$ zeCRNqf8ixO@W2C@o1Ihh4!O{C4f=O~$_Tgw{LDmO(ig7eZCH9PX>|us-dd}rO1^=V zNTMuQNU;~IKV~2}clO+Qb0|pb_&}=oZVAxz&H$+)i1k{Ho!8tozAX6QRcO2TmJ~AJ zvGEVhO)`lai%f(H7s>!C`lkw@wqe7@jjPwJ-mw41TX*fhao^^BH|!ZFlzCV|`6ZX& zQY8)z-IT!!nC7C0bHv>qdP#y#y8}SwQs&iZ-A^BIu+_dOqvKlLm~&dQ zYBk2jMsZ@~Z|HwSOg2>-(nk$^2CL zZS$7~^e}xM0MKf+(Q3C<&(bw1tN~xj@)Ym_|AhOCY_3VLixq|iU z*Pz$y;qcL8;BlNC5bH=1C!G^h#}<$VC+6n3nSHbK8#Juxlj-WUXm^wg=7Pd)t5gLjt8<>ArMvGtp`Y}t1E8{V?>*4N#% zc5H0C!X@w9`Aq_fo8gpFs*EEPOxW{%c)pKXxuT{mMLom`$5N{ewA%1IhDxanPpV1; zA=2rO=vRK@`e&3M4s1HFP_H2F&ntgA!!T89#wfrAz*K3|V`+OaoW!I1eJL8%UHd4`!P!{*QuIVBzR2neP*9gNU96lwE zc>Nz{%^t8zW>2je)2755T|YJz>ce7{0~A>aeZ#{$vG5aAVMp5d`rf9U!XT&#mjQqB z*9V%c2FxCk*l<<&jEu-Xc`llU!uEKJ_KB5mH-Ymm0_V+!J>(TAFp>W80RaI$3KV+S z?#66m+``|s#i_+3R)r2I8G*a+uN<268vcrbJP{QD+!7!`L@tDAY)&8x-*b3^U-dqh z>TA;26*2dvsIE7Ulj!vREq!?&b;>1oTg1^0%5dAHyyC_$K~#g6RrV4-CA99Bc{kiA z>^ruS&@3Zt{;s+G^LB#^cUr{ltEY91ug$St8-tFNp6-_S>W&1wYkH??e<+zgoV!|H zPXO||s4;xhewMe5lKN)=Nz?=H7hvJJwSor2S9j?mp_@45%D5kOyyCN5HgCkoR04O= z)U+dNqB7HiH5)lJN;F#cY7CsH^gXT@;+CpNJ^Sy2=2vKAJ)hE|TutOZT2WM;T;py` z#c>NtDve!zyH@l+)C@W+@Id7C;hm>*`3oopWU0{$qXza2k5RS+1k@dYVtE0xl;FFH zR6E%49gSy(>dHe%12>eVUvd5Vd5`02sSyse{pJv*Q8qz%`+~f^*zVSuy{fK-`mY1#XJ$SxL`29*njP-k zG8|*1rampY-?H(u*`Jcxy59DPccd1WPmN7)0_ zgnIgy)uu=HR-}_v;jTJ(cb!ub$*4RmSLaoa?8osoiqh=-2?0O9APuP)Wzn(|F0@i9 z1{8sOvU_H5JXmon8LXI>%^vaRXk_gETF&6pbI!-(p`uW|D_4kq3J-;a-xhrG&qh%- z$|YPwH_XDl!&drwsYct}$%;KIF@deje68)HHv;h~e{FU_1Qwu9FHhGG4-YFAy^5V% zX)xV^Ym0V&wJPh}tqY6ej7&#udbUPzT3!SZr2;y=v|v!_oC{~5Bae46=JMaIr^aKh zUC(G!0F32FL30Jx)qh(br-X`lwBbq>C%q`2a~!vYeNL0$gUCyhq?Hi@3oxA{Cn{~3*3ED4B|1{iw$y$Zy2$#yY1Ui)@8eq8 zxF(?WRu?KK{=A?IVrefX8(2h>w6_xLpSdH^$ndG57q650^wF?)DY|6`?Itk1XwR|h zxxY1FO?JP$)ZY`umwFL=K~H-`U;M$BxIU`WFQyEVOI*Ya_sq&aNr(*B#+@7b;=xTK#s{aNkFIlbH$lY zMCFgF@Mce|8gMtuc|aS+MYfmEg%3*B47klaE#?b&^GS6lM``1#eA1knhuzobeu8F= z(DV|2R3P9)ubPrUyoHoemk`BN#OooHsjQ!;zGE=pc?{( z7=3=5{*D8-E6@4X!A{X}x_h3M(8>1xPxib#zHc~l1n2~4)z|d|Fbmofy)e=+oiM#d zX}j0=L)+3{X2CovQKXTaAZ*#tS?F3ljk`EyoF(hoK7CdC>Y!?#wR*u&zk%))*^>j) z%s_Y`kMKQ<9XTM@9{gy_L1h}wpptF=r+h;EHQS`zS9w$O&Py{?<67|(AFG)vi~KF+ z_&q5_6Ql(Bwz#5nnz8`4{a$3(d5aBhqnvKk=6*NH?Be6~eg}0b>_{Le2#2(rvF`%K zbwUZ;aPhjF$;zC-H-rkSmp3GGFq$qnh6reN)UMGxEW?My*{_TKxUEe9=)ukqfMaF4 z*W6$XN^^j+CA2yLizWZab|f>)&b0}#B%$qJBm53v4;*L~^WLQc~_C(W;=aL@U| z2-z^z2xlN;%i9+$`1v9B)XfsJdju%C9D9j0b1m?Rbh?NN3Y?myY*{toe*A0e>v$$+ z*)D$f7B)t(O9&K<2lGrFsXoc!tdaV#!Q?I@#5Uu3O-`7y{Gw7}6u9-<-J(KIS{Ecm zGcWi{qP}P*aJ4qKl2Lv2muGkWwl&%$`hG7mthIn^^(B_T2m(Fh(ef`Wz7u0}aoZ`YKiW?N`sg(=~jk$T!qp$^SK ztj`The8gb*FN@jB{ikGx5DXD{8VK&s07g8|az~>#h})Hub<>XzvzF|MzxZOiY&#h4 zR3rZuFEjqLX>!byO~~}i=d)yltTX|J53o;Rc4;HayXdOecOU2i)^TcQ&+1*iT(vLg zS|rfsNEONBi&?L!dbHT@5ZU2XJQ6)r@`_K#aenV>&oZws*o+y_I&tYp#opN$oBIH1 zNSb1LDZ(Dgf=RUS<8*DP%e+$I%s;pQKlwpXC%lBY4BSA%ri=p=d`#Og)bwtG(WXa2 z50elw%t*6-_Z~$x%5L6i?p|&4d6*PcRjX#&>Hz|q;k|32=P+9req9qbM2yrFzBC|; znUsYo3FX5*2|-5y0<%i=_Fa>fx7keiim?6E7XZpK)rpzInpQ6IF7*XIHO`5)T;kanR(Cv!1;;FI}-QFcJ-_0tz|#1yNt z_7Dp9(1SM;-5IgwF?&!su>Jl82p%FKtU-FYBao9D19$^6r{?cQ6Ygp^e@*My5(TC* zShj;pox~oq{4OrfrPFF!W{uNTF=Ppue6z&d zC`;SWm@ldP-IsMnu-#Y!eSx@J%Ot4vgeAfz|J)YQ&avohrskiPVf;)H zyWk{m5}f$W5^_R8!Gl4h@HWY<6z=|!*3Qjd=-^Ly{^04YfR>YUS>^`UEk-YOkn2x6 zWgj*VB7po8EC~pDoosY-UHsThVHS6^BF5uU!1t@h(As}JwGBHQZKWNwQkYqf?@zwfbm&D;MzKRn9(Mn1$?iPbv-#wZ;r-2$ zFljmS9PB2>gkRye5)Ju&LNh;HcxBRMP382EJfD}>N7|6&+zk79VKMgVxQ+g^&Z#N! zIufUtgw$VsY-g^)1?Nc_i&X4AZxc&=*{edRxw*Ta;&^r{NFv+rMm-8hV?QuCB%Vmabi`p+hg^(W{?Wv9)8qpFr0{ds zj+Tw#k{Yy5B4zF#XJK((pI$mcw$e(SAXjCjsGCDT(_V+xaf?-XpP)KA1%FTJfJg;u>y!_mPv)6?z~{ zJdtkwGVQ70=e!eIh|Ht`r3?^6UJ2`ZxT%7qjT#ZznfG^TWUn(FgIEeX=^GXO`4KNM z_EON^s(}c$XTi?&42?%mFkq1rmR0jK{Zp+8`E(b?)M%RoE4n$yWYuaHk3o&)KD+A!!7M1)DFA3ye`PSy-O4Ykz zTt@JxYbYMe+YHSec2NHeD@702qyI>;iR&^-q7#g&fjE^4Zx5JPT{rI>nQ}V*6nBI# z@jbHa(yjsTm)!2mBhE%`*iT~Z5~q`XG@P6|)XQ_9Jfe;Wzzs>OuwTM__P+2qXp*WB zmj5Awr&uS_7z7VFI+E046O&o6+xbJm5dn4a z_}f5K3nShOX%qGp)eO@UyYun)6ccYSK$YOnSvocopUf$m8X<3c zY&yL$eaUEj4Hm}bgvmm+OvhY=h9ja~#%Me2K1!}5B+;VNnR?%AnnJhsK|nEJ0KWf^ c*Eua7Y!}j9o}Vq^3j&_&S8x7VZ*eF2zay`^$N&HU literal 0 HcmV?d00001