From 34863104b3f5db7cc6f19aef86f53337f68ccd92 Mon Sep 17 00:00:00 2001 From: oleibman <10341515+oleibman@users.noreply.github.com> Date: Tue, 19 Dec 2023 22:34:35 -0800 Subject: [PATCH] Chart Axis Display Units and Logarithmic Scale Fix #3833. Among the options for chart axes in Excel are the ability to show labels as multiples of specific powers of 10, with or without an explanatory label. The Excel spec seems to indicate that that you can customize the multiples to other values, but I don't see how to do that in Excel, so that can be a project for another day if someone figures out how. The label title can also be styled; that is not part of this PR, but I will look into it in future. For now, this PR supports the use of multiples with or without labels. The axes can also be displayed on a logarithmic scale (any base between 2 and 1000). This PR supports that. --- .../Chart/33_Chart_create_line_dateaxis.php | 2 +- .../33_Chart_create_scatter5_trendlines.php | 2 +- .../33_Chart_create_scatter6_value_xaxis.php | 2 +- src/PhpSpreadsheet/Chart/Axis.php | 43 ++++- src/PhpSpreadsheet/Chart/Title.php | 11 +- src/PhpSpreadsheet/Helper/Sample.php | 7 +- src/PhpSpreadsheet/Reader/Xlsx/Chart.php | 13 +- src/PhpSpreadsheet/Writer/Xlsx/Chart.php | 166 +++++++++++------- .../Chart/Issue3833Test.php | 142 +++++++++++++++ .../Reader/XLSX/issue.3833.logarithm.xlsx | Bin 0 -> 44024 bytes tests/data/Reader/XLSX/issue.3833.units.xlsx | Bin 0 -> 44069 bytes 11 files changed, 312 insertions(+), 76 deletions(-) create mode 100644 tests/PhpSpreadsheetTests/Chart/Issue3833Test.php create mode 100644 tests/data/Reader/XLSX/issue.3833.logarithm.xlsx create mode 100644 tests/data/Reader/XLSX/issue.3833.units.xlsx diff --git a/samples/Chart/33_Chart_create_line_dateaxis.php b/samples/Chart/33_Chart_create_line_dateaxis.php index c177de79a..8f05684e4 100644 --- a/samples/Chart/33_Chart_create_line_dateaxis.php +++ b/samples/Chart/33_Chart_create_line_dateaxis.php @@ -335,7 +335,7 @@ $helper->renderChart($chart, __FILE__); $spreadsheet->setActiveSheetIndex(1); // Save Excel 2007 file -$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true, resetActiveSheet: false); $spreadsheet->disconnectWorksheets(); function dateRange(int $nrows, Spreadsheet $wrkbk): array diff --git a/samples/Chart/33_Chart_create_scatter5_trendlines.php b/samples/Chart/33_Chart_create_scatter5_trendlines.php index 7467c8206..2912b7f7c 100644 --- a/samples/Chart/33_Chart_create_scatter5_trendlines.php +++ b/samples/Chart/33_Chart_create_scatter5_trendlines.php @@ -270,4 +270,4 @@ $helper->renderChart($chart, __FILE__); $spreadsheet->setActiveSheetIndex(1); // Save Excel 2007 file -$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true, resetActiveSheet: false); diff --git a/samples/Chart/33_Chart_create_scatter6_value_xaxis.php b/samples/Chart/33_Chart_create_scatter6_value_xaxis.php index 94f602a92..0ec7902e1 100644 --- a/samples/Chart/33_Chart_create_scatter6_value_xaxis.php +++ b/samples/Chart/33_Chart_create_scatter6_value_xaxis.php @@ -131,4 +131,4 @@ $helper->renderChart($chart, __FILE__); $spreadsheet->setActiveSheetIndex(1); // Save Excel 2007 file -$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true, resetActiveSheet: false); diff --git a/src/PhpSpreadsheet/Chart/Axis.php b/src/PhpSpreadsheet/Chart/Axis.php index 5b20e91dd..9b804b2ef 100644 --- a/src/PhpSpreadsheet/Chart/Axis.php +++ b/src/PhpSpreadsheet/Chart/Axis.php @@ -49,6 +49,8 @@ class Axis extends Properties private ?AxisText $axisText = null; + private ?Title $dispUnitsTitle = null; + /** * Axis Options. * @@ -70,6 +72,28 @@ class Axis extends Properties 'majorTimeUnit' => self::TIME_UNIT_YEARS, 'minorTimeUnit' => self::TIME_UNIT_MONTHS, 'baseTimeUnit' => self::TIME_UNIT_DAYS, + 'logBase' => null, + 'dispUnitsBuiltIn' => null, + ]; + public const DISP_UNITS_HUNDREDS = 'hundreds'; + public const DISP_UNITS_THOUSANDS = 'thousands'; + public const DISP_UNITS_TEN_THOUSANDS = 'tenThousands'; + public const DISP_UNITS_HUNDRED_THOUSANDS = 'hundredThousands'; + public const DISP_UNITS_MILLIONS = 'millions'; + public const DISP_UNITS_TEN_MILLIONS = 'tenMillions'; + public const DISP_UNITS_HUNDRED_MILLIONS = 'hundredMillions'; + public const DISP_UNITS_BILLIONS = 'billions'; + public const DISP_UNITS_TRILLIONS = 'trillions'; + public const DISP_UNITS_BUILTIN_INT = [ + 100 => self::DISP_UNITS_HUNDREDS, + 1000 => self::DISP_UNITS_THOUSANDS, + 10000 => self::DISP_UNITS_TEN_THOUSANDS, + 100000 => self::DISP_UNITS_HUNDRED_THOUSANDS, + 1000000 => self::DISP_UNITS_MILLIONS, + 10000000 => self::DISP_UNITS_TEN_MILLIONS, + 100000000 => self::DISP_UNITS_HUNDRED_MILLIONS, + 1000000000 => self::DISP_UNITS_BILLIONS, + 1000000000000 => self::DISP_UNITS_TRILLIONS, ]; /** @@ -149,7 +173,9 @@ class Axis extends Properties ?string $hidden = null, ?string $baseTimeUnit = null, ?string $majorTimeUnit = null, - ?string $minorTimeUnit = null + ?string $minorTimeUnit = null, + null|float|int|string $logBase = null, + ?string $dispUnitsBuiltIn = null ): void { $this->axisOptions['axis_labels'] = $axisLabels; $this->setAxisOption('horizontal_crosses_value', $horizontalCrossesValue); @@ -166,6 +192,8 @@ class Axis extends Properties $this->setAxisOption('baseTimeUnit', $baseTimeUnit); $this->setAxisOption('majorTimeUnit', $majorTimeUnit); $this->setAxisOption('minorTimeUnit', $minorTimeUnit); + $this->setAxisOption('logBase', $logBase); + $this->setAxisOption('dispUnitsBuiltIn', $dispUnitsBuiltIn); } /** @@ -317,6 +345,18 @@ class Axis extends Properties return $this->noFill; } + public function setDispUnitsTitle(?Title $dispUnitsTitle): self + { + $this->dispUnitsTitle = $dispUnitsTitle; + + return $this; + } + + public function getDispUnitsTitle(): ?Title + { + return $this->dispUnitsTitle; + } + /** * Implement PHP __clone to create a deep clone, not just a shallow copy. */ @@ -326,6 +366,7 @@ class Axis extends Properties $this->majorGridlines = ($this->majorGridlines === null) ? null : clone $this->majorGridlines; $this->majorGridlines = ($this->minorGridlines === null) ? null : clone $this->minorGridlines; $this->axisText = ($this->axisText === null) ? null : clone $this->axisText; + $this->dispUnitsTitle = ($this->dispUnitsTitle === null) ? null : clone $this->dispUnitsTitle; $this->fillColor = clone $this->fillColor; } } diff --git a/src/PhpSpreadsheet/Chart/Title.php b/src/PhpSpreadsheet/Chart/Title.php index e9c42a4c4..3cdc4d1ee 100644 --- a/src/PhpSpreadsheet/Chart/Title.php +++ b/src/PhpSpreadsheet/Chart/Title.php @@ -16,7 +16,7 @@ class Title /** * Title Caption. * - * @var array|RichText|string + * @var null|array|RichText|string may be null */ private $caption = ''; @@ -39,7 +39,7 @@ class Title /** * Create a new Title. * - * @param array|RichText|string $caption + * @param null|array|RichText|string $caption may be null * @param bool $overlay */ public function __construct($caption = '', ?Layout $layout = null, $overlay = false) @@ -52,7 +52,7 @@ class Title /** * Get caption. * - * @return array|RichText|string + * @return null|array|RichText|string may be null */ public function getCaption() { @@ -68,6 +68,9 @@ class Title } } $caption = $this->caption; + if ($caption === null) { + return ''; + } if (is_string($caption)) { return $caption; } @@ -91,7 +94,7 @@ class Title /** * Set caption. * - * @param array|RichText|string $caption + * @param null|array|RichText|string $caption may be null * * @return $this */ diff --git a/src/PhpSpreadsheet/Helper/Sample.php b/src/PhpSpreadsheet/Helper/Sample.php index cb23cf597..2f7d95b06 100644 --- a/src/PhpSpreadsheet/Helper/Sample.php +++ b/src/PhpSpreadsheet/Helper/Sample.php @@ -111,13 +111,14 @@ class Sample /** * Write documents. * - * @param string $filename * @param string[] $writers */ - public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls'], bool $withCharts = false, ?callable $writerCallback = null): void + public function write(Spreadsheet $spreadsheet, string $filename, array $writers = ['Xlsx', 'Xls'], bool $withCharts = false, ?callable $writerCallback = null, bool $resetActiveSheet = true): void { // Set active sheet index to the first sheet, so Excel opens this as the first sheet - $spreadsheet->setActiveSheetIndex(0); + if ($resetActiveSheet) { + $spreadsheet->setActiveSheetIndex(0); + } // Write documents foreach ($writers as $writerType) { diff --git a/src/PhpSpreadsheet/Reader/Xlsx/Chart.php b/src/PhpSpreadsheet/Reader/Xlsx/Chart.php index 32737f01a..c1d0eeb7e 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx/Chart.php +++ b/src/PhpSpreadsheet/Reader/Xlsx/Chart.php @@ -494,7 +494,7 @@ class Chart private function chartTitle(SimpleXMLElement $titleDetails): Title { - $caption = []; + $caption = null; $titleLayout = null; $titleOverlay = false; $titleFormula = null; @@ -503,6 +503,7 @@ class Chart $chartDetail = Xlsx::testSimpleXml($chartDetail); switch ($titleDetailKey) { case 'tx': + $caption = []; if (isset($chartDetail->rich)) { $titleDetails = $chartDetail->rich->children($this->aNamespace); foreach ($titleDetails as $titleKey => $titleDetail) { @@ -1518,6 +1519,13 @@ class Chart if (isset($chartDetail->crossBetween)) { $whichAxis->setCrossBetween((string) self::getAttributeString($chartDetail->crossBetween, 'val')); } + if (isset($chartDetail->dispUnits, $chartDetail->dispUnits->builtInUnit)) { + $whichAxis->setAxisOption('dispUnitsBuiltIn', (string) self::getAttributeString($chartDetail->dispUnits->builtInUnit, 'val')); + if (isset($chartDetail->dispUnits->dispUnitsLbl)) { + $whichAxis->setDispUnitsTitle(new Title()); + // TODO parse title elements + } + } if (isset($chartDetail->majorTickMark)) { $whichAxis->setAxisOption('major_tick_mark', (string) self::getAttributeString($chartDetail->majorTickMark, 'val')); } @@ -1533,6 +1541,9 @@ class Chart if (isset($chartDetail->crossesAt)) { $whichAxis->setAxisOption('horizontal_crosses_value', (string) self::getAttributeString($chartDetail->crossesAt, 'val')); } + if (isset($chartDetail->scaling->logBase)) { + $whichAxis->setAxisOption('logBase', (string) self::getAttributeString($chartDetail->scaling->logBase, 'val')); + } if (isset($chartDetail->scaling->orientation)) { $whichAxis->setAxisOption('orientation', (string) self::getAttributeString($chartDetail->scaling->orientation, 'val')); } diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Chart.php b/src/PhpSpreadsheet/Writer/Xlsx/Chart.php index a3f27d1b9..e8e6ea2fd 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Chart.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Chart.php @@ -158,38 +158,40 @@ class Chart extends WriterPart } $objWriter->startElement('c:title'); - $objWriter->startElement('c:tx'); - $objWriter->startElement('c:rich'); - - $objWriter->startElement('a:bodyPr'); - $objWriter->endElement(); - - $objWriter->startElement('a:lstStyle'); - $objWriter->endElement(); - - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); - $objWriter->endElement(); - $caption = $title->getCaption(); - if (is_array($caption)) { - $caption = $caption[0] ?? ''; - } - $this->getParentWriter()->getWriterPartstringtable()->writeRichTextForCharts($objWriter, $caption, 'a'); + if ($caption !== null) { + $objWriter->startElement('c:tx'); + $objWriter->startElement('c:rich'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); + $objWriter->startElement('a:bodyPr'); + $objWriter->endElement(); // a:bodyPr + + $objWriter->startElement('a:lstStyle'); + $objWriter->endElement(); // a:lstStyle + + $objWriter->startElement('a:p'); + $objWriter->startElement('a:pPr'); + $objWriter->startElement('a:defRPr'); + $objWriter->endElement(); // a:defRPr + $objWriter->endElement(); // a:pPr + + if (is_array($caption)) { + $caption = $caption[0] ?? ''; + } + $this->getParentWriter()->getWriterPartstringtable()->writeRichTextForCharts($objWriter, $caption, 'a'); + + $objWriter->endElement(); // a:p + $objWriter->endElement(); // c:rich + $objWriter->endElement(); // c:tx + } $this->writeLayout($objWriter, $title->getLayout()); $objWriter->startElement('c:overlay'); $objWriter->writeAttribute('val', ($title->getOverlay()) ? '1' : '0'); - $objWriter->endElement(); + $objWriter->endElement(); // c:overlay - $objWriter->endElement(); + $objWriter->endElement(); // c:title } /** @@ -587,6 +589,14 @@ class Chart extends WriterPart } $objWriter->startElement('c:scaling'); + if (is_numeric($yAxis->getAxisOptionsProperty('logBase'))) { + $logBase = $yAxis->getAxisOptionsProperty('logBase') + 0; + if ($logBase >= 2 && $logBase <= 1000) { + $objWriter->startElement('c:logBase'); + $objWriter->writeAttribute('val', (string) $logBase); + $objWriter->endElement(); + } + } if ($yAxis->getAxisOptionsProperty('maximum') !== null) { $objWriter->startElement('c:max'); $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('maximum')); @@ -632,35 +642,37 @@ class Chart extends WriterPart if ($xAxisLabel !== null) { $objWriter->startElement('c:title'); - $objWriter->startElement('c:tx'); - $objWriter->startElement('c:rich'); - - $objWriter->startElement('a:bodyPr'); - $objWriter->endElement(); - - $objWriter->startElement('a:lstStyle'); - $objWriter->endElement(); - - $objWriter->startElement('a:p'); - $caption = $xAxisLabel->getCaption(); - if (is_array($caption)) { - $caption = $caption[0]; - } - $this->getParentWriter()->getWriterPartstringtable()->writeRichTextForCharts($objWriter, $caption, 'a'); + if ($caption !== null) { + $objWriter->startElement('c:tx'); + $objWriter->startElement('c:rich'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); + $objWriter->startElement('a:bodyPr'); + $objWriter->endElement(); // a:bodyPr + + $objWriter->startElement('a:lstStyle'); + $objWriter->endElement(); // a::lstStyle + + $objWriter->startElement('a:p'); + + if (is_array($caption)) { + $caption = $caption[0]; + } + $this->getParentWriter()->getWriterPartstringtable()->writeRichTextForCharts($objWriter, $caption, 'a'); + + $objWriter->endElement(); // a:p + $objWriter->endElement(); // c:rich + $objWriter->endElement(); // c:tx + } $layout = $xAxisLabel->getLayout(); $this->writeLayout($objWriter, $layout); $objWriter->startElement('c:overlay'); $objWriter->writeAttribute('val', '0'); - $objWriter->endElement(); + $objWriter->endElement(); // c:overlay - $objWriter->endElement(); + $objWriter->endElement(); // c:title } $objWriter->startElement('c:numFmt'); @@ -796,6 +808,14 @@ class Chart extends WriterPart } $objWriter->startElement('c:scaling'); + if (is_numeric($xAxis->getAxisOptionsProperty('logBase'))) { + $logBase = $xAxis->getAxisOptionsProperty('logBase') + 0; + if ($logBase >= 2 && $logBase <= 1000) { + $objWriter->startElement('c:logBase'); + $objWriter->writeAttribute('val', (string) $logBase); + $objWriter->endElement(); + } + } if ($xAxis->getAxisOptionsProperty('maximum') !== null) { $objWriter->startElement('c:max'); @@ -845,26 +865,28 @@ class Chart extends WriterPart if ($yAxisLabel !== null) { $objWriter->startElement('c:title'); - $objWriter->startElement('c:tx'); - $objWriter->startElement('c:rich'); - - $objWriter->startElement('a:bodyPr'); - $objWriter->endElement(); - - $objWriter->startElement('a:lstStyle'); - $objWriter->endElement(); - - $objWriter->startElement('a:p'); - $caption = $yAxisLabel->getCaption(); - if (is_array($caption)) { - $caption = $caption[0]; - } - $this->getParentWriter()->getWriterPartstringtable()->writeRichTextForCharts($objWriter, $caption, 'a'); + if ($caption !== null) { + $objWriter->startElement('c:tx'); + $objWriter->startElement('c:rich'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); + $objWriter->startElement('a:bodyPr'); + $objWriter->endElement(); // a:bodyPr + + $objWriter->startElement('a:lstStyle'); + $objWriter->endElement(); // a:lstStyle + + $objWriter->startElement('a:p'); + + if (is_array($caption)) { + $caption = $caption[0]; + } + $this->getParentWriter()->getWriterPartstringtable()->writeRichTextForCharts($objWriter, $caption, 'a'); + + $objWriter->endElement(); // a:p + $objWriter->endElement(); // c:rich + $objWriter->endElement(); // c:tx + } if ($groupType !== DataSeries::TYPE_BUBBLECHART) { $layout = $yAxisLabel->getLayout(); @@ -873,9 +895,9 @@ class Chart extends WriterPart $objWriter->startElement('c:overlay'); $objWriter->writeAttribute('val', '0'); - $objWriter->endElement(); + $objWriter->endElement(); // c:overlay - $objWriter->endElement(); + $objWriter->endElement(); // c:title } $objWriter->startElement('c:numFmt'); @@ -950,6 +972,22 @@ class Chart extends WriterPart $objWriter->endElement(); } + if ($xAxis->getAxisType() === Axis::AXIS_TYPE_VALUE) { + $dispUnits = $xAxis->getAxisOptionsProperty('dispUnitsBuiltIn'); + $dispUnits = is_numeric($dispUnits) ? (Axis::DISP_UNITS_BUILTIN_INT[(int) $dispUnits] ?? '') : $dispUnits; + if (in_array($dispUnits, Axis::DISP_UNITS_BUILTIN_INT, true)) { + $objWriter->startElement('c:dispUnits'); + $objWriter->startElement('c:builtInUnit'); + $objWriter->writeAttribute('val', $dispUnits); + $objWriter->endElement(); // c:builtInUnit + if ($xAxis->getDispUnitsTitle() !== null) { + // TODO output title elements + $objWriter->writeElement('c:dispUnitsLbl'); + } + $objWriter->endElement(); // c:dispUnits + } + } + if ($xAxis->getAxisOptionsProperty('major_unit') !== null) { $objWriter->startElement('c:majorUnit'); $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_unit')); diff --git a/tests/PhpSpreadsheetTests/Chart/Issue3833Test.php b/tests/PhpSpreadsheetTests/Chart/Issue3833Test.php new file mode 100644 index 000000000..669e23306 --- /dev/null +++ b/tests/PhpSpreadsheetTests/Chart/Issue3833Test.php @@ -0,0 +1,142 @@ +setIncludeCharts(true); + } + + public function writeCharts(XlsxWriter $writer): void + { + $writer->setIncludeCharts(true); + } + + public function testDisplayUnits1(): void + { + $reader = new XlsxReader(); + $reader->setIncludeCharts(true); + $spreadsheet = $reader->load('tests/data/Reader/XLSX/issue.3833.units.xlsx'); + + /** @var callable */ + $callableReader = [$this, 'readCharts']; + /** @var callable */ + $callableWriter = [$this, 'writeCharts']; + $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', $callableReader, $callableWriter); + $spreadsheet->disconnectWorksheets(); + + $sheet = $reloadedSpreadsheet->getSheetByNameOrThrow('charts'); + $charts2 = $sheet->getChartCollection(); + self::assertCount(1, $charts2); + $chart2 = $charts2[0]; + self::assertNotNull($chart2); + $yAxis = $chart2->getChartAxisY(); + $dispUnits = $yAxis->getAxisOptionsProperty('dispUnitsBuiltIn'); + self::assertSame('tenThousands', $dispUnits); + $logBase = $yAxis->getAxisOptionsProperty('logBase'); + self::assertNull($logBase); + + $reloadedSpreadsheet->disconnectWorksheets(); + } + + public function testDisplayUnits2(): void + { + $reader = new XlsxReader(); + $reader->setIncludeCharts(true); + $spreadsheet = $reader->load('tests/data/Reader/XLSX/issue.3833.units.xlsx'); + $sheet1 = $spreadsheet->getSheetByNameOrThrow('charts'); + $charts1 = $sheet1->getChartCollection(); + self::assertCount(1, $charts1); + $chart1 = $charts1[0]; + self::assertNotNull($chart1); + $yAxis1 = $chart1->getChartAxisY(); + $yAxis1->setAxisOption('dispUnitsBuiltIn', 1000); + + /** @var callable */ + $callableReader = [$this, 'readCharts']; + /** @var callable */ + $callableWriter = [$this, 'writeCharts']; + $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', $callableReader, $callableWriter); + $spreadsheet->disconnectWorksheets(); + + $sheet = $reloadedSpreadsheet->getSheetByNameOrThrow('charts'); + $charts2 = $sheet->getChartCollection(); + self::assertCount(1, $charts2); + $chart2 = $charts2[0]; + self::assertNotNull($chart2); + $yAxis = $chart2->getChartAxisY(); + $dispUnits = $yAxis->getAxisOptionsProperty('dispUnitsBuiltIn'); + self::assertSame('thousands', $dispUnits); + $logBase = $yAxis->getAxisOptionsProperty('logBase'); + self::assertNull($logBase); + + $reloadedSpreadsheet->disconnectWorksheets(); + } + + public function testDisplayUnits3(): void + { + $reader = new XlsxReader(); + $reader->setIncludeCharts(true); + $spreadsheet = $reader->load('tests/data/Reader/XLSX/issue.3833.units.xlsx'); + $sheet1 = $spreadsheet->getSheetByNameOrThrow('charts'); + $charts1 = $sheet1->getChartCollection(); + self::assertCount(1, $charts1); + $chart1 = $charts1[0]; + self::assertNotNull($chart1); + $yAxis1 = $chart1->getChartAxisY(); + $yAxis1->setDispUnitsTitle(null); + + /** @var callable */ + $callableReader = [$this, 'readCharts']; + /** @var callable */ + $callableWriter = [$this, 'writeCharts']; + $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', $callableReader, $callableWriter); + $spreadsheet->disconnectWorksheets(); + + $sheet = $reloadedSpreadsheet->getSheetByNameOrThrow('charts'); + $charts2 = $sheet->getChartCollection(); + self::assertCount(1, $charts2); + $chart2 = $charts2[0]; + self::assertNotNull($chart2); + $yAxis = $chart2->getChartAxisY(); + self::assertNull($yAxis->getDispUnitsTitle()); + + $reloadedSpreadsheet->disconnectWorksheets(); + } + + public function testLogBase(): void + { + $reader = new XlsxReader(); + $reader->setIncludeCharts(true); + $spreadsheet = $reader->load('tests/data/Reader/XLSX/issue.3833.logarithm.xlsx'); + + /** @var callable */ + $callableReader = [$this, 'readCharts']; + /** @var callable */ + $callableWriter = [$this, 'writeCharts']; + $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', $callableReader, $callableWriter); + $spreadsheet->disconnectWorksheets(); + + $sheet = $reloadedSpreadsheet->getSheetByNameOrThrow('charts'); + $charts2 = $sheet->getChartCollection(); + self::assertCount(1, $charts2); + $chart2 = $charts2[0]; + self::assertNotNull($chart2); + $yAxis = $chart2->getChartAxisY(); + $logBase = $yAxis->getAxisOptionsProperty('logBase'); + self::assertSame('10', $logBase); + $dispUnits = $yAxis->getAxisOptionsProperty('dispUnitsBuiltIn'); + self::assertNull($dispUnits); + + $reloadedSpreadsheet->disconnectWorksheets(); + } +} diff --git a/tests/data/Reader/XLSX/issue.3833.logarithm.xlsx b/tests/data/Reader/XLSX/issue.3833.logarithm.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c2560e3b0462335fda5ed8d7a93ced3f922aa513 GIT binary patch literal 44024 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�fWx;>n#AZY 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 MEB%#w-mkm=0+6+!YXATM literal 0 HcmV?d00001 diff --git a/tests/data/Reader/XLSX/issue.3833.units.xlsx b/tests/data/Reader/XLSX/issue.3833.units.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..649fa808663b8a549ca8c11e7e538bfe2abf3b41 GIT binary patch literal 44069 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%0ACZBg~kQuq3# zg`u_B6(=ey?R#cXs%NN`yMp|p{z1E_YY%AnB30Y%Lvh6{FlXn#adOE6XQ#kOA>GDZ zSvA#heCZ#@_1O4rusTtG&rdQfA|K} zTlqFz-~FbAZ5ZA-y5{OoDqy3V>ZeOrI$=szo=(Y=EAZvcVX8@?z;{zM=2wx#kPc=O zycz9tABEC^twKSFuOh>63`v3FrxRBR$$VD*x8dAz&gYq>_a686VDvo~^EVOWVQc1Y zWvSumZs%Ai=L&n^V=hq5?+RW>bvEkY9PGG}kaqJZhEQ%+Rh=rbOr_xS6>#9H61%mz;(XBBnNo-<;UnY82vC- znYb-f-=~pF3kH9t}Wii zp9kt%1(WEleIq-}n9_?|N5{jDsaa&Qc565dILyJnxH#1nAAoJK0;aZe=*dl8m0>7zDo@!A8Un&yIx6hP4hsOep@*@YC1GHr!W#D{6ow_dP_Rgx6 zDk79?s{qEF@{y#3>@=PpR^NLW_h^6|*IvLMy^~&dp8B!bJ^O=cnQ^V->K=DVA;is9 z4yDahQYuAJsMTCQdOZsE^FP< zy4RD^L7!_gq*{zu@;Z@|047S0`F6>LY{5G;&NpBtacH^4iD^wZm~W!b+IA|Z{A6zr z7Mo04;_sX8-I6rV`=IYWxirKCta1r;Rb8Al%NNeKbJfWq|7`tRy)UQ;A9Qf;Vd+BS zP7+$chTv*DZZJm-8*T}qlk*M1&-w?odht2!=1gE$NRXDN- zFGt0Ea_^(L7jz|aX|Z)&jKF+u^VkPpJ;IR@R1;cR8Rahp*SylPtUAabb77sd&n$}S znY$6Lx$--T*z`|ENiT07lENSJw0RqSbO@sTN{A5rHi>0nf%`w z)UC`c{oF>aga82S8F?vjP2aVP97Ip8!Penvet9_paXvI8iacetma5M2t%e8f8Y2X8 zGAi;@iZsQ}iuegnqlPP~Sy5lN)TXdwuw4~$*5GhW#AO~`4@xLiW#*p&;BV0Cmk zF`)Rs#xn}%Fl$Q2>d!|J+JrryrC&83Q(FPn(;_x+hrg{4*Ez$6hK2w!QVL4531SrJ zAS#R)0Bw>S6km)KMUOlc22h0}sUg(l+igxwMYxj~{IvmwTnx0Y0W3v2;C%oygm0o$ zEhZ=inos;bRf1iu4^ow^F{lTAYw3f8*n88dXPrRE34Y@To_xTUbsX5>p!MXQ0NrMt zmWAXVR(;Ii#W;`xQjg??u6$KhA3uGNWs8@4=u6f5m}IB^`0n4CeJLWcHY8%R6ZEcZ zoPf=Mu8u~-KnNjrfQ!!3ENut9oBAD5|50@C2w;0%io`6z-VF>}HJe7;v(5{0BDQA5 zS%4WraZ}?8fw^n54*d=Lnu>RCg$6Q#?6ClPyED>J%K%D-bZ0xFS>e90>SL`i?!&ba z9^=BgBzzdA2IlsJ1^@-O#M-oAzoV55ikC&ucwSEBRS$)Z-@yMifVLuT8?gNv4p3$5 z*$gLk@%_`%&!fEvwa2@g*RXRN@iTS|e?&KK!W}VSwg41_((l3kF&p4Q8u}Z$y=c9$ zOoX`>e!w%Hr7n@h$$zV1;fg21fV#VfbHog8%A81qCJ__lMCxkL;*@teBXP0L^&Mvg zxraE2Az5|j1%%j-3-wAe+t*{vRMX=?Zh~d#i0>*HO3MeT3l${6;UU3UfvQKDQmLD% zo%Uuy3i31)XnvrLWtDO9iHth@&1sN9x3k8n8QE#HUp6wHQ zL+(o>M)1Rdp7%=Al6;lACvJU&SCd!Ns&8h#+wmH5ijWiKlgq=mrcz&Fo~hp-&Oe_HpAPCUVv0s)`y)99S9TK<;TEz&VEIsm_XN5q25af_odl~ zt8!i61nqbJmxK;OIAbmZ3pP56dG8quhB5VTY?g4`*g*4QPnfAqe~74#+=M<>7#WW^ z!*&A)lhO8IVu9&4OwsqV=+}4#SbpR;r*94@8if-oR%|TxF<9`i#(jhl{pt+%rr6X94%UKlAk!6DguWnyORWfjSl9N!x^kFknBJX?6CUTUD*q9=MBV}1NyLWf@a>HPeWilMC(>l4cQu<&M$itdjNS%Hm%y5%+7j6wbcQc;mX=ow*6 zF$*;<^VAVaMw9Z$Pj$JvPis4TN!v3gqlnRy2upBfV!Q^P5!^>_(!CoqHDE}VcM)~` zN}zH5-MpJu0SA77Zkh5I-9~bS@);c?L|GvIeYPqSy}Y1vgIbthK+L=8^_-ek-Pl;c zJmq!%R9EI4CSwm%elo~_na**7Kn@K`dU0+k^y%)X2eA|rBpSRwB9VAk5Qw$S`esT6 z=(|>h$vSCC?1HRR2NOsP+!6sM^cnH-+LbQ(d$iOIMoowK`8)N@;4DZl6t?NN-EFE0Zm*JPH)S!y~aura7Od)+x2W% zo9{tQF-~WHz+dH;yB@c;hw8mwO|D;WkEXAp|Bz`3B+=5j$k-}wDZxA{3C`Rv5lNC5 zG7Ix({gbGJcnK=1#C1A8MpfuZx?IP_d<=XPbbf_&#sjwfk)c3f8yP4b=~QM51hDV6+)EM2;vHr3_rWm);xh!QTC@IOe ze;md#?U~oRwb#l9!U`*eHV5@&HFOuwBjN*wtDjpADj}VWJ!(^3Z?n9{#-XDhiJi8* z-)_cP2~~21_(LAD>m9H<*E2xD{BvKU}?pgZawQ}tVkN~UsKz#D1N35YW`-48CLJAXjTW+U%9 zA0oQ-Hi&C-K9I=yEyxwhIsd8kB*}~uq9X_pJnPSjlxFn#lY0A+hRy-$P_>`OnNw82 zN!vB4V50+2AKx9%n}fIp_!4WEp!AHhg^C?{ZcRDz+m^`hA>kcenX3-s4Gaqy^hNzF}L4?XS3t*~>w@C=V+rXL8xaMc!R?}r#)N7BZyJG~Ha^AI(YLkpcRZd)A0yHAH;#J_R z13iJwXaLrSnxIbmbOcvA*dBOwJ<}yzSJWP6$lzahCzBAD<&7azE_1i9JFp1_?st99 zeT_E`XTa3#1&cRExWgE2tn;6~uS8^|uBy$(=OF^KNUoUsb-=%{9|E#w;}Xp6*Y)!O zSp2toId-O~aNszMknD2!J*-nlz8jp9Ak_=hDK8SDI5}d2OgHQ9VRVQPAzv@Iw}?w1 zHtqzx&yOk0I+a67MFLx}uGYIcf0>9E5S6HW_t(NEgIs3eW<9NS=nC#{yE5-VJc=4y zeOp*T2#tt^tL8!SwbY%U2Gv|(jOk7d82 z+1rjXs~6#!D}uZNTt)0~(8I}iB0LN%8FxG&=S_ zQPPZ1COIO3orF9W>r<*!HujIEayH5I?rFl9TGV^`E%5@kMvFfirW|0^7No#{w?M?l zeFp3sGv7jYqTE8VFG2YcJ{BXZE)7?sC22;|IgV6}J@NgPBg(KBX6TMjhY_E60K~gf z;%F1~_D3BswGUuDsFvfX(brn*`^UOQf2Uzg#;8>2=Fr>?H4Lw->FnS8FO;m?*C>uQ zAIuCGnnm=Z$3L_-dWLLG%n;_0Yp9b95NiNLKgS`Kf;b&hqLw__4^&Q_%JKH=JW5^j zFwqK5K`%42L(|w{gcSEbUQDrPk!%A9qecbh*ziZ6YUR0R24_%U#f5%3!@F-XLh$)4 z>RhBRgFIhmqfoUGT0Wu>t>2biKE+>EKOHmnkXAv0KN^?&2mWCAr3_=TXci6V?vogb z1xi>PxR0=cH380-qg-VzWR7hVBV60{g~9dBMC#N1c=`4R8CHqd<=HBqHa$Qj6+vLwIwjZ(mS0eYFRho`#^;(Jd*UB=va$MMaTI}m#AHJ?~ zI`Yg-3fS%Nii>dGiMG+sGyTX4nY62JB4Ign{|RhogfM{R6=qSehiR#2-m+Yo7|eED zJMc$4e&(dW6yeG$w>$p2fL>`6^s{gybeh{!f2@-vm)oaMNpbX~%^tK5cl3I0)*vBxMh;jV=6>fEa+TF+u*464@s z)f3(xdu4@s7?G66W72MnM!m;uwcz-6r@y$w*a|7QE*qB^aw=_sxG0k&LwU~=)nk)) zb;JRh%~9sYlJvHFP?Dik%XHk;XRh^->x5!-a!#7f@xg$2-&x#d{G?i&*_RF61?G0# zrZMR0loQJp%-8s`-8gJGG3>0agIMaNy^i3V$&&%_iR>7y&A{A8$vaY3?9^*?{P21{ zGXV!`x`F(CK10!65#5&E-dO=TVYYbFk7AkyD*lKH=jt;KE1SlW{H>hX2VfMQ!)mnP zSjEw_HX7f51kD?6D1Ip^SyGJhP%EV_R0N?9vyQyc;E4{r^p6Llh@_z}u_%pLLmSZp zd?-y4r;)pk-FGBe<0#g~pgd{I)H|eR^AF*8nMLG6e}@^uY+6r(N8R6cNuYy!LcGtW`skOjn30?T z&k&ngOB?!g^omDD4Fz-9zoH-6nR&JaSqz~+w|FrK`%B{$G0jDI99+tf{u7JPAo51I?u z4syzY?Snh-bCQCb4ZRI!lzU`*ZBmpBrzOmJpOTU4`mdoql3m!f1PuRVjHRbtKa%SI zkiXXx2L%RCPIrF(My+-I`=qDI&O@-b3X&+7vJ@0Ptq0+%@sSKZQ-)gzh71k%W0Cup zFY|u8`Rc~rXIxF8S!B)7o0woGedjip5$3@u?(O_JAhKDxP52I1`s0h+>mTvB24W`0 zaLov}%jr!Btp`=Ch6(f3Y zJyYh^p|(|fIW(Z|P^DH-Le$Y;-vuYKZcCeo>}(EaO6BBA4QMpvlIS+~Kze(z48Gd^ z1KS~y$XFLlG@%4l{q!;|6hB5G*%eP0qV=4|w5+IR!u*FcX!dOhw=?bykK)wydgx02 z?a$+rHzuesX%Qw-;n{{LC)$i;vZ~2(@ZgFPOIvuN*@hgoKqkqU$Y9SDC>_indjU~y zSk^a^`~|Tv5F*nPIN3Pz{CUPv$Eboslr>aP&x3ZwDb$4m=3vvA?2*Fz3oP>(#NJ+G zX3%;D35X3C>F`_!cva9$5*}$@bcfeIwJjiQ+aTtByrG65VkS0J$S?r z{1dMB?Ad1q@AbP*fm3Q)s15}$-hw-VHkOxbea@v>mJBK=X7u?6c2HlD>>p@pf%@`-{A6~Iv*7hB$WD}#GABk#0*TbD5 z+bLfpN!xxPM!0$r0ZovPY5^~9P!)!kMTQWib%6msP~Ek6I=4dB1uyn~ucLt>!qM8$ z?!q-lkycZn^-HM(z47Uour%QG;rC&(apY$##WxRn2+mMLLu?Q=kp$2brQ7Z-$qI|t z5+}TkL~lUGvhmujh$z$0E?@;>7eR86Dikljb%+4UhJ|(8R&!Rf&_h$+Pg`y>q81u- z!>uD9I&Qar^X(H?Fwh6FUFSF@{o|ws`|R0Xet~pvJM%buL`30QvpU3!J@ktr|M~8% z{wpo@^*vfW&iB15iqRyt^n$1=Jxy|#$k;%7*Jmi`0 zB}+5rb_m0jHLtxKF1^SI$D;=qR=b5xl|8yV%iIKcn-vl}8DKKbT&%{fPy?}{nVU-2 zOtg zgQXEA->^K+CT~3TzSyIrg?13aHtW|X4j#9=21rBC;uc-R0Z1ve@GRcdhziIurk*f` zziX-_75YV7TOYRNyZ{!<*<5Ts<^aaEhQ)uScC$FgXp%9x7Ah(}jzqD?1IxL^q(?fV z0!$YP5BBZ7te`N(@yRqPHPa`rZY3E@kB#^Sg-N9|DbJ}z>a{#Ai65bK`l{%|Gv1)}S5C6vsYgAS& ze=Xit-cI{GTH1<^Bi|93ri|fMXg?V9(r$_yDnHUI$uX0we5Z!#BV$e>KF#@h8H{K8;V^p2v+(AKo6m!%}AIh>m#UrOLuwya5J4haE(*-oac=F30E2)ol zl6ONLnE^Os_NEotq9mS21ePC+bm#)NtQjM;Ln+QV7V4GzPo>N8Y~wsB6UVcqd)nsU zjL=j$d+5o&ODTY&m5*h~lHgo1Vx&S-U2*jRY~5H0~O9swQ!0UjPP9xfg(Aq^=m0VO^j9w{psH7z|8 z6B8~eJ2x8xH!UL*JrEuN0R;(#02P&hiHekpo`H#;iJqRGiS>OPJw5CD;CK4l{*Tsw zE&mz8^wtAFhXXVK@gRW|00?v-Bs%bI06_GEjK`SGzaG-=yPr(3SB!>t;t z63g?;xQTB4-tRf??d8c(UhEX4{n+rVB0a{_{WbkLi!Z;GM+C06a|WLnhfq|Kkbk)B zn)FFzR5x(V%kgzi#`Pdu>{*3>ds2`vmI4WH&O9XM){8Wi>_B^+Oa@m z{pL4777=$-$GwW+Ii=~Z7=&@C?Qre_@T;EM8^E#n4Isk0W&BgIG^Vzqn6}(^`htN) zMU`!~Zc*p?`VH`0C3_Pf-Fi>iFce~DFh31)kd>EKUk+e#XonM3A88Hy1&OKBfbBly zW6b`L4h~GaAhzaI{6o^6W4p54ZNfs35)SKL(aZh!I`R*AA*|R7Q^++xP@N~eBQV>g zFNYru8dV!S(hLPEqi#3)r+czt4DUq_qU#^^xTQzOFm%CUWE(`igmAkUUjY(mp=kfo zjlU-uRLD>%ra&q%q(87izM(oZoW#3WY$!XENio}(yO1L=>Ni6L+ACV}*ewaEl%*)t zXyqd*xL`WEPbu9Cvmpg9Q_pZmR<+i6>C1zq(^GX&T+9UsJ8g9LhYP1HCb{WTD1?vE zutS30q(cH>)(>rUxsOC93Je~OPQ`Y+D+SHZKf2F!OJ=g|9Z%V6OK<^ee7Uj-T!=nmrq+w`zLTW6DzgmN0{*$ zJ&_JlMq@%ztR4eVe}(s1Ty{;$7ct@^rs~QZ`2F3qZ1@VN4?MFtD+afh!uQ)1>y2`H zDlYKSKdoj;(9z8=A5|V)un=dJaBWT&0lD+KvDd0p6}FnIvZy3U0dDLB7?g z*w}KDP0tudOtQ<>cO|68ok0$mv1}YC)+AQN)ZJe{#pudxS|5G0?G80amm#AK=a-ZCu3L|2y!E}vr*Ndu1r)2{J^`M2H z0<}4{IEA4$@7KTgu-S@MNS`cR(R~vmmjZTmnlikiQ;LfL?r7@r!hBNHk5va*w`dc2h>+(lcc$E@6&%&~ia+Xbe> zk&DE4*)blJCB2@r%NQy`61`*vhT_`7THn3rny}SIuTrgTE1j2X9ZbBwXEg6DbZLIG(M8s#68V*G}HZ|#J z>tnTU|EBbgAvb2#iTg2ePxjro)4J15&P|LgHGYtOc)3QeQbnW#Tko%iVU>`Y#156q z(areq#wE4c3a!6R-l}Wi4t=SnmAU%7+-v zp<;TaqrQi_!D`9^@h0=3Wg>67;DlZ+4K@0`oQZ(Osv63kc5y1Jz;o2_oKokcp;P;o zQ;Lyf61a_rq!6M6Kf~4CGj*;AuzYvcgsvrnZpfg|*5a9;$YAq=jOc)9OLY}SAh+gu ziVkmM4gPnl9`xGF3EG-nykPok(b$7!))WO<(Ogw_HIDKxFWeiVW)9l6JZ#4s^NhxG zaLgEA5(Q;U4ZSehm`oF2R5_n&h{Gg;Q8QjXOuod*(jkcygtn-vasr#>_!_(AU}dg% z8&Bx>2N()JrkxN%md@yJ#AW{xV*%j40mjbY8=NVaSOhNxd)G3fqHd+qv+%m+mZC7% z&A!LR8>khUNZAh1;AP6A58=VDN#d8oH@$>OB$__yaKU>uPA7sss>^cApI8K~7d6y6 zInl*WjkAPu!~AKs2v}Uwq8v4OQDKeKA?jCLn-5sePFkwlww84U7om-Q;TLHbF5|^K zTdu**ELZFtuDRAlt+vDpRmsO<>!F2x0G?%6lCZ+XdUEXdVqvW5%mRQWzTW`+fER;;E*v&@W4Etx@ zV6tddI4`6*V*I8>%PEF49|P5{`>VHV@ztQ4)hQ8m5vA>(vfj+F)M+V*h>XaXG&YYJVlnM)&6ObrbQR7YI}sxKK? zwM4@=8w|bD4QCO%=n44JvV1>(<&-0S1F+>^glxV6QVDzfR0imY5E(23e1_>chGda- zvfDo~c$q-?Mz^vnSV!^j3J9dTd{tj*;qTDhl|?SBp5ML<;ywr-nJsZWK&Z&;?IgsMc{sDy z`vy>Xz0kPF(DJ=hy8g84rp)KO&JFsWH@rP66UD57`RT|yev*gM=z=VMz!((XWTf;h zyt6^yOH*CSiIS+lcamAej3zTV!sMSm0u>apg@4&G4m4xD$lYgKV{}B-DU=#Y`VGChgg2H^;)LotN0E*QqxEPVf!* zSj*+X=jrETD$TjJxje^+{Im0mW+B21k#R9OliHN-j&}-~)i4^BFBJ(RsRk{m+X)Bv zhNk&9=ZoI&afN1x(rA9Oq=*>1#b07*6@eZw19T&giVPH8eY+PLD_}+Wb4C&9F&T0> zkVRQya{!fFQgmtK;?qw2TX--9wpK^k|BxE0FGDnGHT}KnhpPCwp$i9!Zf^)~ucrT!xssr~$ zNS$xwA zhlYDWN8Yr(HJkMbZA{e#RQu(v?xBgIRsP6zl$m33OdZEQ&m--cM?%AqSIQ&uxM1== zeA9c>=XJC9c(f9rQj<2Aq^1-rnFe2U_WAB7Mn~6Ce zF3gv^+wmf+Yq&f@`m)`GyHBhl(iJv|PuxbIG=uH4vWV;3T~7UKNK_5q0JQq6m`aNO zi>`M7lcd?YMyqYxw%t8FZQI7QZQHhO+qP}nn#Q!IH8b7)*SzOD=iL8(_eMrmWMx!V z)$_#Kv5~oUU?f@UKAf9Lfu0T60qiF23_T(hBpDXP!=+Uz zR#`#kZJ&V5z>+Ih(4$+%($mr978icl?$j8S{4v^zXUz}GUSVP~&Uea=mr8pIWLz88 zy2ef!`q;AAPXJ6UfbX;iq+`b3Ub(88RyK)W!qz+Icx)~jvUd^Tn;&I*8OZHhNk9A}{I|oH!v#OwMTf-VX1A-@*C;0ga zHx=ABv*m=}$y5wa-ySgq`LeV*S;^zV|mTjr-?4 z$aFuzrP`t?kUJ;GV5=FmBy?D_Pv9T8VK(64BPk(}XlV<@Nhv9jP48CMxI)ZTYa)b( zUbAA|D#eKztY$Tp|K_6)?dN$0yh2f7^videQc61D`<~vE=kI?%Bjp;UlGPgFyjkl6 z$0K@C{gHl%P+DIZ7rWw{X5l^(6tIvW&6mWHGkH#EmzbozaInkDX#+#glzkc&;tCz~hYY_n?Jjy{5J zfg}PJ9(94m{Lk}Q`xUe*Nw9LdTsn_Qy?eMd@2T#>v+98ZAO{_>Vn7=QS{NA=IRt{| z54p8uSxJb$7Tx~dm{t6fbh^>Pqw3GQn9h!3(>`lKMScC^b4Pqug08W(w}-}lr=0Jq zdB5$jp3b_uOr6C&xp9!{*@Jp%=+=0IV9@5)*gJn%YjdU}Lq*EEcDaiY+%h{J4Cwoa z>svMD7*A7Bz7k0R9V{#C&EDNeC@ya5dUHFM@o;45cb!|=jgUz08HF94Ve)AmfANiUG+HxxjEI5IVP-Y z@Qybmj*6r92JJ%Vyn^ep@-+FoWy39J*f#>PCen5q0)dhD#VB32F39`ls-Q#$WNZHG&U$U9+HTF!kGWVpxe({8&l*-2SP>T}qG3VBv5 z$KlFKFfVU0eGd*EU!fnl&E|+gOEys-PQ=Vw#MXvUX&C1T4u0G!8GUbl1w^4<#3Wm5 zsdt{cH9@YR4Z)i9uwyW^HyjSVa9cE*qsLar<8beAYS| zi#uyUG@0ekcN*8@E$`J*Ds&({hLIEbZqG zYnB_H&Ds5YuhcvpT1dymg|SaS+y=sLXD6=#cJZjVs66c|M>QqYL1ybc?TKUe#$>l7 zgvYB*o9Ar~z>J}4?+;Hx2wBJ3+6X5xtrBe&wQo#3Ds&}oW3jOoycvVZ-eFd9g*|DL zd{uPzGU7Ws=dl`-4@QPF`^VZljOEPVH8|c0)8cYs?*|rcOZ>sNBaW8lZY)cjCpMiE zuE9ulFpdM?NahbV##tQMGB!5If-u8Gus6owY}6`zL}!!>HQjB^Ns0;hpok!kyn#_C@yAkCvi5W^HMQ z+rb8ENGg7(ForaW{PoTHix(rTG1T}DkO2Bb~A0! zp8z$&0fw~3?X_}Edx{m74QEIVNAH{?e^KOp3bvuUIft;eS!==G&;Yyuf=vk8(jpV1 zSqlR1c}sl}+ir6;bjZ91)l1FZP4P*xGcN_(9UG{pnBJXTy%PM|JawHesuI$s{BI=W zZZ-vuyo3xL8_&oR5Z=83LD1m%5j;WM$eqh*gW_=UZ7it_Y5@miiCb-ajuVVuvbbv- zOc$9NwZ;~y9kq7D`l^E3vapyH*vQ}!zZ4GEuQ>~CdVB3=tT#Zi}R$qf3Xm+%KI5%!puZ)HpfOcy@hC58_qJ6Hr?irjRs{FhJ! zOcmktZyt_JouWmbQCCZD6##xqYya7KJ>}pL&q~hmCPi6T!y8bXz)I*&GmD{nC&mobT_N2d71AN z=kW1lin;0ldqeB%oh~YI>fsTFS5i*YFTvt6;q2L|cw#ov%-V92q0ikVeuoF`3!#Ay z|A{HWn#=V+xe>hYe6w=-1jO_`@<_PcKQHa@o(+68$)LJcc&NM4+r`~&#_vJlSEPHZ z;n%^#VZeST%fAe#cn}JCRK@@PT<+N^$<7~WlVk%U*a>PWI1SVv~#(Tt6&pw4k?nVLJK`vjoRD(T^K=aQW|7{gJS zHMfDDZRlQup1{=$ksspx(YPL-7U`ZEI7)llI&#%r_gRN>{Xqv8U$0kPGjTs^?4=T4 z|A$_l76xT5*k`b@ao%v-crD?f$oUvFsn6CxhGNxCN2v7&=eI-fPk>bPFm*S%4Y{0csP1d!gX6!lOl#3o%=K70DBaBCf-}r{N*h+VU%7;3AeaW_OI>Ygm4-!}&|LNRWC6 ziGl8a0?eRsr;KuXw8ILY0F60MsJ&9|j+b+{_fwHKtFL=};nN+QXzfSx$Gfev_h;IL z$F=S*erLw%LDi?8ySRqyRM*wTBAdp@hiHDoYAjQC7t4g5{AJb6qLPf3csvafh6q}& z0u!GAqN0uWiZl{v-LZheugz_*1m-5@Ll#ll)ZggyKLLo%XX76=7O=^p_nnmu9ii$4 z#i>hK?&me@4ZGJ4V8&fy-9MJNHm!`wHKfFTI84fvq(Dx)wHK{%M*^B_0DZb%%O7MR zk?i)+;HEz!Za2x3T3&Z3&n7n5<4|A1#P7~`=Mb!QFLH*iazdw}lCGkCyY5WZSFDvU z`fB#xW#HhP*TS?I9GeT|{b=6jp3d4DVYXhdSZ2MYIGrV(<+{dn`Zq0;x{Wai;jBVT;NlY~m(x56pA`L5D^ zigLC*ey4|1?4RmyzSlGJ@$4cJ6qlU1m6q>SW7_^L$MDXsfshXBQ7;l975)>zsj#a@ z$3RDL!%^M>QRiTxFhJ-ZH8rg?7kg5S%)hE?{6|V*W%Y^&tAeUrji4(ejvo==Sr>s# zE`T=kLGx{7;g8VyYq1-m`gn`k*Drn4rT)A)#`;HEwxu_-g<}Vp`&P-r;5KaqF<=cX z?AD0Ywv$pV$B6N7Dq+ovRv8D;j9d<_6e1m~Rdwp~Fu zo%%`_!(<(DWec0(77r+X34YAxJReykyG};S4O~e)=snfeq5)S|oy(2lF1X^N+Ek{j zAMIl8yyU)<9&du|X3Yyn&Ao9R5txF2jO1lT!o?UHP69grrgZ`_D&5qyYafaFTF)BR z8T01)=BOt-#rW^-KMmgxelu$H1^3;A*FpM*(Q?U>_0n8AD`XORb-r<@-6<0?vt1(% zI-0-Wi39;_fEtk*vEyKd=h|CH8RsAV|Iyn~Jj@6b8K^i7AY7Vh>s;dp6)pYavWcmU174hGT@lpf@OLh+=bcl=^&{bdS1Q3h{Djw~IzJcPE(H28RX z(ALIxLQ{PX5%~7AQ|s0m8%eY7Y5T6{cC{r>p%Z>9^UMl+dh-43{yuRJP=D$@sI6V& zmNtvM#1#R&0u0%+lPGz+tB%IZxm~9w#OhwkDZdDYM96=yctNG zFn0Mf0P+oW@rtEsM=LfoNmkVTqJtptAg!~wao|O>d`BP8*eU;m%=W_)mM_$hR93il z3BgVH6X0zfx}?$|hO@TjLG=Xjd=g)6uY1Si-UC4&oe#N(~T&S|wEM*Mpr9!ct~ z#XKc9REs+l$_C~joyiS`$v63UVWPa-3dZQg`KkVf_kzxT`FwZ5{T!byEQyQr)BHz; zEx6hFTeG`^#6oDzzi@yRN&8M96>Ye>MiGku^@j&;;)WsNm4TMF`hPFo(8xdWa% zhyzElV_!r6AccK6Wq7BQ_`-R?%3(~M`DhhCxakR27B2ura@%x%4(Tn#S6%5HehEuR zOO3$1m){$$j)TL*b^@Hp1hZr7UFuf68a%9~C1~GeLJ0C`go|ZGk{n|*N~-jYHOV{X z7jLlh!isY*RpVS3tJ`>G1_N(ytZ?V?N z>hOZG!_MTXJ@jC^hlxrUYHvWr&o_gsdiyHzl=faw+b0`aS>fMl{>v(130`EE(UgPx z9REDtoLPQgaol!tgJG-w9kmbzo6K$^1MjC+RVN$!X=4orsm1@LNdStoUrzecQE_k0 zN)9w7hj5R$c}WRY9S_PZ1Qk&p@X(zQ-8^*{?6fMdB@b(BoUXv`)$QUB5BNF97S<%J z0rYFF-GIBM41Q*}0B^B{F^~q3%_I=Xf4pv}I1AEo=88I9c5!X53`bhWh4^g5hR)b) zM`v9>p^0yf0DIVHsU+qDAwUql5EeMW2tgspd`g!!AxWed8LqK&rS5vm_CwBDCxQS> zx8%)6TZ5(lv32&~T|V};U&(#hpWu;~E-NaaV`ems#Z1tP%x2IJw;dF`a6!l*M>fM4 zbM;#y#}Kh?NHmRKu&&4R=jxwNK$vpq9nUJ9`U+Ca#J7_(q9&|*4?vP2m?aO$mWodo zQ4GJG%cGp5h3W7Sm?~ai6;pqu-SUHs5({Kg-GLAGpnLYP;2rH=DP4(#ZQ_);KekbV z1U6%A2o}Ls?3X!rMINpmN4TP&mVK{}4}Q%bQxwJ8R1kPFG{;=7tvOx_u5G&S10XBq zubhNNW`4`fe7aC|bV? z4TT8EcFA6`tLp3|t}FFKe-din_Vt(~Fzgz*)x%DtM{sBkAgj@nc0sfcPOedl^WIiL zc1c_Rdi=w-A>UiN=}^3hidip}M2H$jjSgbFA{W_fbM|$P@HeD2 z2A!3^8Q-$PtZ>R{&sn#)n~2V)YVJt3Q<$BIGbouh1oEDJdo%Ya3%`6O3NKxDx&Cm( zdq!rtrSOqFSXoV2tIw7^SGlbtXP6| z!_*t;a;of)mhbiRXZN_19Nj*@EYWc)LPw1BX#^jwe7nwAA%v7miw^dyZb|Nu(2{+h zzvAeO*09E{5rU=eDjwX8k`LmDY{HOQheM_K7Q-p;g!s0mXl2joo9FmIzpMsQS7lah z@1YVp>!#zdsDZeGP*ynG;`)=#DId_s_9zH4bY{qpt@QXbie%ni_|*5=R(>HpfWKvW zvD@6x@aJokJ>Ew;Yn#o@*KfAtCM!%p&DWlw4)zxwevz3Q5V-tg%$yDrP%l~|0574om8;NOq}@;M zq!D~G3)WkklecMhhYv$o^z_ojoCdYY20Ufr77iLrpk)isudYCi;MjCf;-CiW3XP@K zxuSQDjB57B6$j;Tvx}nV5=)Qcq!J3TlZ(j~Ac+&NCKoYylq=re!hPUFm6(IfTuRXR z$>I*sorkhJ3>xr&PdxW&a0Lwi5}Hw?>wr|;B6a0JB><|5(=% zS0xf#=QyD)m*SML5dIM)7K1tP-34QYiXB0@MVh7vNB=-<+%ijm7UbOYw22|Epo|HU z!>M4ed8yG3en?MJ)*>ZM_%Roy9l2J3c!;1Q9*wi5+#;)^dToVnnh6jMla~>qGj|kY zvI$|s64xA}yw5f<8X})$2hp*SZB@EdFQ(!t4xkJa;Ow$Ns*j&*_KWnUa+%X)isu{s z#3R(}9u!6CbxZ6Bf)Z|8^d8|(m%qRorOmM-5?!}9b zu0@~E;pMNEd&r|BUaP1c3CUe%!F@;MK-Y1_v&ls}hzY*v03zB7)BCoX|jF@g-+^%{`sw{7XJVHy0c%AU~jc&g5Rrj;p9j%(%# zJFSE#faHw@L*WUlg3z1-x~i=I*h|ho{^r|x0qBG?aKfiz(Q|6sKEE~maYzs5*}|Xv zZHk*pte+t3SsMIV2ExEYuRr>v3$(dxm+pdabp5Y8;4aVbs)4seRSi@|>_)7!I(skOmL1x_qa(Z%6-Bka>8>KyeMz*E3Y9VZzNf!jzjyTKaP~n z2MLwm`WaN?o2@&O^d2j&8;73E+If?aLrCtBp- zx7kP>9LH6j8rt-f{<2&zUiEx33b5lE*efr_?2Fvj6v zAX0L{CPQH~^QU?>^rU^%RX^)7+{T$ANp&4Jgs$7%VZSx#t%6xY=vAj=iB;(BA~<1o zcX>FSm7kr!yGuAa5#&-WS#B3b(k?X;{KL$&asc}Eibg15@5dq;D+sCGLZ$>eY-@r9)8JT=_`SINtQ_4WDhz3f*(7v4f&-kn;9>}gS<}s zJExP4rArm#!B;7st0S7RuA%#m5*!JIbaIju(b#nQq!|4Z@aO_*DoUXXg1PdLsPSWT zBl^L&Xw!?p7-Z;q;X2D-d3e+~ffuPMa@);+hy(ft9`M(lM!N~s`mw+{oqX3t!;Uxl zhI7R?vMc@8U*zVUf(M{Mk=BH`Q**5cNRi{xGU>~ZWf=wgM|?>A=E;Ocz~<72=_hen zC`a_b8(cS{$x3OBT+$>&#h8l3s3}5(@+U+1Sa|wJ&_7RiM|rbpnCyf1NFZ+~eqp&l zC)T3(n79b(+>xR%hxUd)3c*~$WoPL%??Z_ErpHuWj==jEv-(DjAk(3pIk7#R{-$$W zFQ&gBBZ#7GFf%P9u%{^72Kv^UpxT%d&o+_U(D5M^Q5NB!y1kf);DmOK2-BWCqW?#i z*%O(Kcmjiq1QWAN*23p~VCL7>1L9ucUU&R$jaBS%|1@Z^qW8IKK#GE41(9s$XnL zWthxLmjWy~TdZ0y3dE$PGN4ecRA!pto4}u17(9#CA-IwqR%x9l;6FH9==ZS^Z{nQ4 z>$}>JVY@+UU|#BaUZ6q%BSwdJFWTa7qi-hNY0|FVrnsNVNkkN|zhckP4$IlF!TEc9 zJy!3-$*PYt=L|0N5Oqzw`kf^(p99Q(sA6Evlu9eKo&73JuIu#MEOLLJtJeFJ%X^m< z2DnkZe9*^o;o4635njBLAi?9PCH8<9_ThtH(0C()t;6yy)Vp5CA~I1Gd>aUuFvQycNLJv3Ox_$UB%WsNz&X3-e%vWk5`T9UBt1qK+{ zIfVfTq91#vP5qgw{?i}VaQ^-oNbmddx&Q9Z!1E~a@X7f2NmuNO`f0!Ag;o9)jrC__ z5G@PLfCL=8kpmun@c*)Ds~pT)DZboX9s3WmU4& zs^b@DO5zT~CpAG$w5Ppf{W_+?xxO(6hyu!QuFg6^?|87mHN!CmE`0K^`e9$D3F{|Q zN)`nswgx$W{sCVlewuLru@#a1j68q%qk#FV=~*Yq-nO5Fry6T3!(1_L9Hz6jDT34> zP})c=i@PQHsb%TJhO+uTc?z{V4h4XiXuj~|7IB<-IQ_@r7=RO}$mnq&XqQDA0=w!m zC7OE5ayNKY4x#kO{T}g_NIlI`4=Mf!ynm3{uWQnz_ED3NiKsLny%gL7~R~+TmYj&F7w1)^XhE$!DH%cWZjKzY=LL-M``f{(NZv+*S(@3p)Dq?_DcD;#j+}Q_D>xV`iBgiyY*7DlrLj8VPxu0TnYHEW>{qfH{(F7cf zn3?-|EkCUA7otLB!3tLN^NBugz1w54?w+&!A-0BKI#-25{4+*0q$VcVC^#*T!!Omg zFrha!zzmB+R)!yPPH*Vl)|!DPIlAP_sx6_am>q&w<&!0frA){a5$R={5}tXmCaatj z*PB)^!Li%yV6G2w_K-UXK}tf!lP|Y z1d2!z$;bOXRxQ_jVVkp|u6V#74|-ez2qk5u&pSZtFnJiOL95+t(^$`aFx3k0M&35S z_E-yEkdZ8*#*D^pXejB@_m!}m5}WIe!MwAWz6=2d+QrQWnQ&%Qj|U|iZq)(d zHD<`=r!&F>YQ>oGWK{a8lp4U#lhEdN9{YNnz^s)p?$v|528h$EAca8 z$A|<&F?|l&TXP?tXFW%zwWvOm3_0>4lI6JNwt4BK15=$AtAuv^yc18^$64He$=+t; zv%P5fVtalF{6CE1|I$S+2&x=+F#v$S`~Rkku>CK(2nawDxc#MzhydWAp`l@*;bCCl zQQ%Q2!PzY&3LWLBqzx#ly$L#Uv#qCnqIk{9Bm+Q~rJl2s}JIGBPq2 z3JMlBkavPjh=-4lM@UXcNJL0TPD4fvEMzp4)a2yk)Rc5|G&FQ{|GE5M2cJWKDI@8C z7%&hZGvnWs5nNy0~{0#0tE6Oa>w7k|1vv(M?gXcklgVG;)w5a;Vw%OSj|1Ki42(<<~3sPGZt)HkzP?X4Omjmxqg0|I_u=%&y-$*L={m za^Uc561RO6FW*<~Sk1qEASbM@-8!~cr{6a<0U+tK8(o^?3V3OX-8I5!9B73)>`hR~ zqidJ)eRF1|sR00-oLwu5S(kffd1+iMi<+#`VuUMJE#`*}uTtCU?(9laK>*}8UZY5B zUwYl;L@u3*zKs;7O7VP^r0wCE$6q~COBc?q`ULxGHEidTu0)+&|SA?{d`v`jHsBtJL!2CA8oZ_X~D60qT$eg zH~T@iAcwn4Xw}tts@)e(nDdUVzEC4jHtl+d&9=4y1xOBQ zZC!He=&E+JZ%@1|0Mw`ZP={-6CQP-~Si?3c0ZAY%Wy}3p^E>ySTs1m@^@*PY0P}ke z4UupA6M0`M#g;C#uOtcGF{E045x9N9&Y4xMwtQmcV+M{uEQj)q+XF>ZmYQ8_DY>?D zbyS`&Ww}cZqF>dO8DrhTH8{F?a{}M`q#nkZk}j?x8w_3MP4agp_h2;2P?{!1Dfz(# z&^8V)Eusu*(gpxxXfl1s5VDzui69Vgwn$&}|G^9t5Rp{>P?#V={|ie{Ag2ix9UK`2 zjg^grg_xO?Ohg!nPiP<~2?PRk^k}X-a_!HRmuWZcZmOMRbt3o=n4WhwcSS{!ZGvUEmlc_Pu?!fAx7Ln@OT=3H|I+QZf9^3kq7SNLN# zQzi?iVaHdgIsG0YEhpDbTqp2LR)@@d-I5z34}Ad`z3S9$d#E+tvMYFc(KRI+p@9Ap zPpOTD9zWDU{HieuWaT&(4l7#DWqJkspYdeZf}(V8VqMlQE2uxl$wNl_Y(g@^w4|cW z#3_BX4;Fco`%OF*2q+Fcw4*ANuq^}KxAF%Q>FGYuuC%@kcQ1(2KY>;|c|5q8n-7WC zf@q7^9IHE492FwNG#`>Fg;Ed5(x}ByGvDB1E;f-pD$z!&N*4*Mu}sM7 zl!RUyr)>NnH({#&8eVrD?Ii}kYNp$V@;iHQWy|ng?qDWcRsi+x&AO1~L^po{L9XS> zbYblJ1k~1s8Zbyc7O zlaxcbGF7(9RE2u;Bz;aZq2%E)uOdWOU6x(xIzCzARF2{+kXxtgi zH3sBoB*{(j9|X+LA=4GR<76fBgp1!Xh&pb7Ck7vi-SJ}=g$fnPT&R!?o~Yl)Elo7o zEcI0Nl{h%KL_wRjM|NE(XNy;I5lU8S+8mm;nzD-6z#1wX2H_}5xeeJ5c}9&{$4oW{ zBb5{`@}~+_>E8903T_0cd&j*Mx;{uO+r@npDDtr;T~U0}mHufG$+Pm4vW~XtU-Ohn ztHC@{F(A{LQ$y%U4B-Hxii<2k(e$L$k!rc>q*<43&T&_%~;5jAFl zi^lF>D$wdewk`24jKwekG1Z0Z!nO^GePOoAbul5c3)wd0_J!FdS1I=NGANocA=`%Z z4ZwfC)wIo}$4yI1YZZ1I1FESwrC>2zxEP8r_C!S8qcPT>n~X~8IvM8z0)=Jt?) zS^=I*h`K+j`u(P{KZUYC1zAO}5uN~xk{4J}Wi8xBVMB6=PoxqHAN*}G6?RDt7Eop= zPQ(ssw~!ghOD(mB>&?&}YTLtraA;w*u!)SQ9(GS`QOBDJg%axcr$}nv#I7K?w7=B% zPxU>I#*tHfe=5SSErO{_vQZmhkh{#)k@}Q%D~wZqvQ~7`E^)HzRL7m_xKokHZ%}Me ze&gP1scITBp8(>nFalFZ+;~{Rfg+?tL6VR|5l%D5@r_$6%##iJGK>r#I_6hFkONZM z7OqGoOH>9ZIuQ?r9Thh2;j>#S>^G9YO+vO2VGxlDe+u>$HNGD!K7}YdgEb#hZ?gWpAWOm<*$@+~`aqDM_(J@Z2qsc72SfwT~U6_s1UEvuGQ z%W7rSa_U(jobjVT;Lsui7b*pZ0EPUoAp-&moB)VPScM#w0>My8nT4GU3lIN=91sAc z0H_~Pcq-$p&D!58yD}^LWES(Ut;179S5nIXfs0Zt}!8{ z(^#rx!8CbSo?kcJhdv_2XIjaX8uv;`uj@kmWusb$@8L|Ga~h1go(T`*)E@YS2PN|H zg)TzyJd3Mws&1?y3l{9S;7LVdq-yL0D3Y-P&39gh)e>(X^P=o^u%xHc>9opfxU!d2 zE1gc~X>_xPKg@JRDkePGa=vCxPP&@^{Fq9l%~BY=RAa9+(|P7t(4CFZHSAP6Q!h2g zBL6y@=)lO#Gs?Ie5uQ0BHqbF}6499^J~pa_#1@^Ygl8y`>plvrV|ISF#boG6yNIh) zimOzHMoY6qznCgF3oKLnN%fom(%GPYWf$V#k_)u)P)Jyig_IKS3>^!J0~-(TnFs%^ zvjs?`LM&(P3x65?X7Qcq`}xg;sSj%hr(HmmRWwz8{`Da%61SmsXwhf^EfS_hpaDo> z9regeua#Uz@3=s`84-{Gl;vUYUSI_}Ru%841>`I;{!G5l5If##sZsW~z7WXF24 ze=!|l`zVKgq~Ot4?tl>PjqXPT1>^7nf{uss(-SXm(bt0>n`x-j@5E(G46E@te`1m> zoNyFPVO!LiQ^s3`Oqj6SyTQ-R$UXN`fJ|PcIE5D)BWmIPEWBNr0L4d<2PQ%FGQZiC6vkDMrAl(G~92S+%Bi&i1=PnTNTEV zWT;0XqmI(jrC;mKRB|@!TX?NX{4o!o4U4zA~c|ab#Q>L1Z7p2L0&kJQE^NuYBd&j=UdU>yBK)vODdDzKe0XR!fNywwsmBC7XBlJP?K@wB3tHp~i4}(=tDmBD&Fm9ZIIY3o9sbg$rHOU#$Q2NOO6cp?4Z~}&w#}FzgEkC%oY@6 z5|+Qx0+br&#{0X&e+kTAn*}*uv`(f;;*co8Pw7qK5a|!_4s?vcx1X>5wMPjLB9k>? zed58!TAk)Y0A(EgKB%C`f5!Dm+G3S&&Op)8AQKhw9cz79Am4#;cbAk`ed7$y702e9b3Aa)c~{YbhoD$mllno z!2OyfEM;7%L?*k;K8x#^YO8BZ`V~Hr1JBqB8;L{4jW`IJ70E6Y3mW-i=4!0SVVy&K z+v$M~Oi8m?Dod5Ejv&lzzcADmp*JLKVRsrrH_Y`Iezsqn)^x|Zu^XHAjI|y%v;AUJ zUMVBV7s$n!=j!aS#~V^I-O6<5eFud`t;rL+``WygAOw!GkS(v&Vv|id*<=%0jOX*$ zRQYH0Kp{cF{s9zlNdITPQ!;c+EF`{T7HSMUy#J4#g6!;2k;ud~jc4{|Jmb^&3Gf(y zFBVuZ|1F!ry6dCSj)xl$&Qcy4TzJ>26Dv-xVZ1U+HCgb+o=?gUqPcV7!=!%Qa`ono zcR-|;*b!&KMwYRC6aC04pC5nDa2wLv5NRSZXeQfeXC@~fAJwg}LKn+FZCWu6GV54_ zeRet5#xOBlee9rVNnVJlfM7nz8^41p99noOQHiRyKZq&`Ag4d=T!>I;Jjupep=GIX zOlSp{f*ZuftT_m?#HC*{DV6ZyDzjDENYLCM1Hp1fRjo>RU?j3)vGPIP5)VjH72c2% zp2kCH3ahZ`FNSeZ2u46^URnKV<;BM=k)b^biXw#`qL}3ps!U-CgC^`Eo3BCYRFbx0 z9qV|D7SDr{o;+}Y){`j`jxy-ZNKYkHtre4^xnZnQDmAqC+WdA>l!?ab=qzj@iYzQ_ zr)(Ju8Fwj%5gL$Lj*8q&Z#)T$R?$QFM1i@XR?ZnW0%=Na$SM`tnY?2ubsq20ctBpz z+8%0cKcu9ctF$#-(s&D}S(p~Iwnsp8DABo2aE+`ajYl~i(G!A9{ma5T@lv7_%^a9+ z9n$5|Fi+SgWC$roD+vJ|4>y#V(=-xx83Eja6bHCr$_yfiH1S3-dGrd~SIqe?&R>U!~tmzdU`p|5>{fcf0y6$q(kShkwRPw?i7YF8L+1vJOPCbkA5) zwXw;`!;A8QhR0V)gp#?nWyd&99*j*Z$}x191;tYr+2S%!yEFgE-@;@_C86(by*rQP z0O-bp)3-&??a;_e6=URh`^6z(Qk2eD z$$yd$1g=y@bXdvd9E+X#%$Sh6ERXZfneV+%|H6nEWGa?HqZMN(kAG@F^s%;DEgFHeFP&SK#C%Ge-s$x zwpjOLi4(^6?C*ys&vXBh>|+{X%}0BX?%vGA^q7mU^YVLi_al^H{PB_C^X-VeWo|Dm z&k%EJGvzmeC}DWH2LqD)J!iYQI)A@scRvzkil~dUe9XuI94A#rUXs^D=o1``3gai> zVQ6X=q1T$wWPiSD-turjIJ^UPnzEg?4=yw9Hth&vG4R4C;lwAo_(7q0lG-YK&ouh% z6zUfbem%$IVB&uL&tLR6{v#g+>xiY_B7EKslw4^s_Py}D%v}FC*B|Hl<6pg=e;Ws} zEkIc-t}6!l5ctP{S*?reIlTv{%?TAo~bemsWWyn=#)ii(Ol zZjzS%$|fcz1|hsA!8|4*0w$4smNEQh3B2YxUo8^_tWyPClD_!la@iGdS(Wj7mht%1 zaeMT0`*ri0hlv{jS9eL2vdt8<&l9rCkaP%Bcg+{~N|yJ{6m-o~^pCc-FO#sZ6tb%o zvS|=>EEIAo6m=>Ub}15eEfaRC7Im!>ajO(_s~2{u7xk5p{2na_$rM zYy?&@&lX|t7E#{@aqkXcj}CF)E>YiJ5&u3h-&R$RL1EuvQJ+DX=yHL8Cho9q{@AuJ zi8TU2S=upKu0aLDLG{9+)#^d*lF^M4VeJ};O(F?xlIhJ-3BAJUo#M$oQkkuyIUQ2D zZF=!trfHQvrCl!JqdW=Y0)az9fkWa!BjTaMVqv4gA)^xE<6=QWl0l=A0i$wZ15%-* z(&1w=;SB((wcGF=H}u<8sjx;t|8jF*8bOW1bbK@xwEQS)7r_yhM805C6gk>)5?W&D#i0^<oTLb6xW%O=B|?(_^#KGgFgu6La(Pb8|~`D?`(Zi_@zs^9xI} ziz{>MYjcYma~oTWbIXhKYn$_{3rq8hi%W~kOA8CD%M0s^ODjvutBXr(3&59^wUw2{ zwY8;{)%B&t&86jyrKRoVmCcpq&6QPP-CAGSUR~Q*Ti;w=+g@GSSzF&(|J$>@v9!6r zzrVbEu(^D=el)y)GjslP`S$kq^Plwvf$%4J0|#onPXPU2QTQtp0O(J^Zy0>ZhJwLh zXf#^giH5@AaAY#+9LdI_(P(TotDT9);_-N5ktlqrrjp5I;40_3lTD@5>CDDcIgyU} zec9a3mph)xW%K!h!Dc%WHff8+lIEkNW$`47YSprtU&Js{)D&`?+=i-J=_*U*LZb*| zIH_60?D2V$M%r$QSWO#RCfo0@DK$LwOt-SXFOo?HkPzU0-H0>fbvanLCyUbD98VxC z&N)4=r&LO3l-shYT+HmSdZr;?gH5y4RICnq7>QgylMFM$q9u<&A`l^x=mahu;(&$0aU!pc z`w^_hne)T&B&D%Qij(gPax-PZ#TUgZn21Y!P0Q5MOvN;4T! zd1WJOYGIx+Y-Q!|GcI)*;>T%vepGpJXZPG@3GVQoAz12ll@~?CDD7I2lYE|IIc5%p zgK%R9o(5K&UC-rlXrN2S@gc&8;AkWbgBMjbR-!u*DK4KzktNP?iIDJEIe-|R8Fm$9 z*X%l@VzY1J*wmqXNs$tT@_&$p;WOK48H)d?5(DR2P+|ZBTyNDTWo!uCX^C?Z$S_z} zRV$p7}>P>Ii0lAI6`O)3a+5x zit{|?*e(zH0Y=*FL0q!F;(032zEJiRc?i~q_?S+#YvJf&nz^4Io(-KvMF^aGT^WT5 z^?)9P385ALaiL`f{!RfDEv9x5X4XjzsCRg%unoB38%HjkjPC^pNF_1S@z8!-RuJ!J zGocC96bR!@7d+02U{Eu>44|wSA&H_O&$Nh2vwfn!>^QIcwhIp-+rA$D!Jk!JlD_p_ zpx1;Kj)+Q@rxhR8G6@`mLR196bM9Lt$932C7Nt5O&XM)*p= z-E@c;u8QOU0>BkXNoP1ih&O=uJlG-iNB~$Qc%TmGKcATi1zj6s8c~C#j0_B6ewool zb{K&1x{t9kF(#lS7pIUeOjmxr3m5!TNcstCh$o~Pfh0&a8RcMzqJyR8 z$iX9Y+N9i6Z8GS6(GDqK?0aGZi7j9d>T5wD+*bpT4qZV|bU+}uA~E*OggB?TMgrQe zK}6pIFoJ95P&0WU*oBlJm?=dVfuDg$&!j5&F6H197sN?6ietYz94BpPMhN}MGyw_W z2@06>DPYqD)F?snowdotRjRmjI+mZvEJ3Jg+RzqokkX1l$^)2_72{v~?m2@mg0YLC zgGDKTZiVP!5%v=(F8U!EZ-P~J*<~3VC$W@cSa1%)q>*sOp-_;TAjuDUL+SHOJ{8h~fblN_hls8R!35_WP+SurvDQ7qwHFiDJaZ(7jy`0B8`xtQ$V$)+|EIk# z@rU~R{vR{Lj4@+o>{|>`R2WOyHAqAvLWK;Goyo53JCPAt!`PRUAxmW6moQ2xlF{s6uX$I0Y~%xR0oWjdq> z#_iz9&2U~D0O)gooB!v_W03`{X28V{E}ONMlP~23C11Wg2RVz6=JFN#z!gQzeKP5i zoX}=ngkU ze3uvPz_fi%=_(f{`9L)cLLSzU<2+Y0D9nD|DTP0VPl1%4_MM1sOq`Uz^cl{d>_sC@3Omv!GE=T_^Son?Nwx zokXA7JPV==B=`leZypllgkmhYGtI1}puT)PE_?g?r=G=lt#OR2zuvu0jTtqh@*)6A zHaoz(<7IZhdL;y5{!p<6-)wYdIrM^x8OY6Bv)1BkNC_X{wM4Ya!v}5EoTsJ*{QbBD z^-uww)~sn8;iBqo>&+`FteVT(k5>Q?g_*X-nWma&>0dn8T|s<&me7;-+e=b`n{RJ* zE2|&+I*}CSFZ7gp^yOXe;gOpopCd%BSROy4oWl8G0xKPU#5@FMj1g5U=?yr<*z(9;z!5ziE zDnw9Rs{eqg(clMa#75_?g^H|+0Jixhn+9FdLb*YiDuQp;*NHGyK|OIW^(eH@Y5HPA z6T@raVHcy#Nbor-LO0D%*CU`2$7FLj6#F8Yz1OGg=@9;0xFAjtK!m{~@vB<}WE#%vU0qMy|uRWcQui5qzw;FgiEq*%(CSi~U}q>~is$q1-ZC;(sr#yHDf zm^x}@BnDy`@1Xc^DDuCTf*KMbM*Rl;VkNRvknCa}u)mO>Tw=+Cv?|L#pjOn%Q(&iK zdWQ!syrCxT6*KOKnjR}>K3{fj7Lo{He0Tl9J1c0W0mC5_Ll*@xg+V-u%@f7|l?fol zU{Fqa$q_0YKb{Uo0K_+txCP6Tb;=R3MS9%mY12^OGv235lXb2}atS`zFny52A_&Wb zh7;&Ts1K%4%r8+TA9O%6!62KMlFxGw7mrkYUc0~EfL?Pf+UzGOH&h^{GASp5N@P*f zrUlF)$?nfXQ^%7xcI=?H0D`b5k78P(rbO`D8_c7Nh{HPQDlAYT7$iZEZkT&`fKs`T z!i>?alGiD=jjcG$o5`u>?Q9Z?y&32{j(VD31!4v8S&;+r&?pqIk`ga#J2Z?0zG49X zOh68zG{3*5xAg<*PE_+#==6Cj&MVbiR4VGZ{P@BxbjlI5U7h|4By!hI9o1q6U$_Q0m>|<%eNNtGCdBNuQZ%5N!kcz zk*bQGc(PSi!`@b&e=)RB3+1Hq2-wCX-WBo#76flYw%d|D4WLn!dRJcPD<|H(JV-Pa zR)B@Q-O+`;Q)>RO-IPyen8|FmqS7Bk0XfW4c;>6Cw*e4pB|~go$C0Y2f$*-a5|8=} z5U4EAG2m)<%xReXd{pV-i>SuMGY>g$@UEsPhlz_1M3@{!6%gn{3DD5sCjNys!Gn+h zJcMA-KFFpwVgo)>-hP78E^ZDILUl;_gE*c51zUj&M_LY$=y-4~wNCkh_tA|5Eh6(R zKb+iD6hcL2Vfn74$PWvQ80Y&%tj#dU68D2Uv7 zL0lONO@pZ*7~72Olb?+<93nt(7(n%|@v2rqvcLD`_(Rm(FZ&quKXt#NgY%y`lp>k& zuyVdGi0Ls8k&YWc$6x?xie~=lTeEeuE$VxcW?b)Pfp_rx#{9=c*t#O3KMJ3zpZq2{ zB@PmagZQ@gk^Bb>mHUgk?21BtJEOoFm}spM&?0Y(;?s_5I30cPz`Ir7)mXHKb8n1U zY5#^d(6rTFKD7U=^65+2$WvsFr(N_`eHVhEqvjB376lp)flpEUwTnqlY^%!r*yj zCIYPKGU5@Jp#5N^vazGu-@e|~7L(k2Q+5NUtQ|e88XS|#ds7x1 zQv=|^l3W==4Q_!48UaS1436nj1}8s^m3e{hAA5CKXDH&qNcF@>HQb(q41kb_9ut^n zF$j6KNw@@GB|wjW^4E|S*2j#V#Rs1u_UjV+yP{kFdGLyB5x__Q zfN3s6VxA>lM5w-Ry>54i0uJg0p9=<`qJVFo8f`;>)rUaJI1q;a9kIyxPe>PoaHu=h| zBipP~=V_PK(*l&)tf3BNe>ynzlej8C8V_Fyre;RWluNK}kr^nnAcE1=);UZ zT|@Ky6A7(m2`xBkpNlg?K+c_e_E{_6v}Y@OkVloo@Ck z4q9sEMF2AuP@k;Z^`#Js2h3!DscRfs82WOdc?e_xU?nlZI}u|<=C_#M=gnWSl}wjg zfq-G47*Xr@gwf` zeHGqe86Yv$6PLvjn2xk8KVDqM?kv~UU{_= z%SMdlhPl`Vv4!O$YW)j#^9x}!EoU>MW%J(DW}3hzNnk7QH@l}MC4SwPCk{Gx zVBx`E!^uW>LM|M>$Xfz0v2eh$z^t}FCqDvxETiK#8N&SiY3x=-W|UV)^2_g%yb<6-lU4+3wk9(3Rc znrZ&ExVr-a{B9c+hH4vHDH_1h|I0SJ2grAA6P_>#YsaF(zlMHAt+^WBL?sqAMN^IE zK*##lAQQqi@24g*Z;>#*6R&Ms(n~XXlw)```J0}TQ|O`Y-4i3QeOFDgc6*JZ=`oo)c$MYn*PUM19d5aAZH1A-45w9stt*(r?Wnqfh4ae2mR3x^1zq?D$Noyw6f>_8Y6$U#GW5CCJyU>q)<`6{NOLw zYjx~shuT!b8JZ)&`vx>(UEfZ7?L774*jsr{&aluc-Wd5A zdvh`@`}TI`O;n*FR<@@VcFr8HWNzug?^iUgdbh7oh)0Bt-sr(BUFA%S3OhGz)S7hn zLTT*@v$F-3z0waGzA&%&Fu<9LsAi%0JS+4Wra%dY4~=vL@;kZK$MqQ#;7qesZg zl8A;M&2(>|0Kj3|Cuoxh!QH{t)7IU{*3)yhH2l7MDG6%_*M$pBIvoaVKV4aB^1?h( zVnVOOw>a-_L{X{NG!?yjh4eJlE)?7{gGAjvXUMk&RSnEnJB^ABUG;t@ncJuyASDHEU@f|ToWmOUV%cK?`9u5uW=w1bw2xkcF4Vn zCU5rB$2rujz{WkfawZ)C+;=N4V^bBg?h5l8JKCNZ9I4)*#%H@7_mML>h5qbcjA=Hq z|MUpk8uontNTS_qwP&hJ(ncxp9+LQ!q^`y>ltIDmPNBZ0&TUmf3x2UK>-Cesb-z+! zzAokC2TyT#A#|;$R{pZDef~H=I%(S5@Y$P0-U#macqb=pSZ1KHtNDcj-9*8HPo^8> zL00UDO^6CdMzPKhGwX@bKHtQ~1Wx6W>hZZBCU4xIs&bE&6Fn~a$$r9a7@Ydn9NN;| zJ^b|OD%6toQDjBw1>UwFps#Hf4EY-O+CQE2$AB1q9tBnW@#)>r zTB-lFpQ9H<+duaA)4OWrd{x8V%E48_*TvcV`G8I*4iz!oL{*Y)@==VvEp&##y(KM6 z6_-?$Pux)f{mL@joyqD-d6Vgqc= z5)_i%_Q-SMP}eJgisWKGgvSwCSk%u(LkC$Op&ZpUMH%S@58H$%6H(Ucr|kLDBMexN zsGkvqDhM7d2oFcG<^_=+p5*#T8}I))FCxP?!VPKWvZK9=rXAF?8zw+;>2`)fR&$Y37_ zjDMceop|6qveBy&mEhs3Z3i)Cu*5r`pM{S^lK|BvHo0}&H!exGGs4Q>UtX?yM$A2U zQFfrB!tlJzd2U~6V?;MQ9;E*)B}P$0>62q*CA*Tro6~P|n;w_Oy&Do3R77af9YDX4SQ@s~!giTmZW}+ejyF{1sXKbC z-s@<~XFWRiz^4Mdls1-FWS3WL(0umz-I);#NZ{5tk)eJk_Z{*TlJcSCaA9V#OFhYx zZ=@6h+;UnTPjxRq=Gfj@THgyFWj!pOc$WLj=}sBUS9i<6`0u=ba>N}!ORZmDSe(1# z_8*RDMIiitKinI7_wMNH(!PtkzJ^X&^-W%TAY@o2X2_0=jWAK^S#ah(n9BwvD?a-F6j-Ax zFJGGStf@%66Bsj#7z2dsRFMR{KN={NPuBDM0410s9;hMPZ)tQE9zLv{5BZt{9|U)>>p z*NbYKg_}+GEv+6q!{27RL{AQEdO>7FT7s&7g8$oT>44&Zz3eOw=KR!ln%g32!NRYt zN55ZY8g8_>!PV39f*--w!{V188|eNHP-BcexJr{cOPhe1ev{s&jfB5L)7@}%zhH(> ze!l|kBO0`pk-rIIApd4Q)^2W2e`@uo!<;FM*6pV>0NSC`e_WBYZB?|0=kJDpk*EKL z_+uxCY20DQ=mCHgw!iaH?Ez8X|L(-U=+_?c+OLYD87M-CrvE0bH(YxVv{%wBe?-|0 zP4}a;M@=jTFaQ8!wE5-tM-fZw9Ze@sds`RVzkl!Yzx@Eb#1z{#S~qUc?1%WR8}c+r z8i0qVpR=vUpX@o46-RkV6LF{6l-Afku1oxXi_%i|*xDF*(gI1lKO*?ph;6LW8VAzs z|GN#W1a=Yr9i;!0sQj(M-cGpuLQkj!2LSNv=XV?2652&^v9)oql5}vfva^+vAh_D? z2iRYSZ%>ms`TYR9Rr&TCaes!gJpi=%ANBa-v)rHbXb%O9-$nV46iE9O*?&TO4}sfh zzaqQm#rFg3-&D8-Y@=pobyld`MiIK|10V-(50u%XuoCzE`S^D K6{+yo-G2cum#`85 literal 0 HcmV?d00001